Jolt Physics
A multi core friendly Game Physics Engine
|
Structure that contains job handles for each integration sub step. More...
#include <PhysicsUpdateContext.h>
Classes | |
struct | CCDBody |
Contains the information needed to cast a body through the scene to do continuous collision detection. More... | |
Public Attributes | |
Step * | mStep |
Step that this substeb belongs to. | |
bool | mIsFirst |
If this is the first substep in the step. | |
bool | mIsLast |
If this is the last substep in the step. | |
bool | mIsFirstOfAll |
If this is the first substep of the first step. | |
bool | mIsLastOfAll |
If this is the last substep in the last step. | |
atomic< uint32 > | mSolveVelocityConstraintsNextIsland { 0 } |
Next island that needs to be processed for the solve velocity constraints step (doesn't need own cache line since position jobs don't run at same time) | |
atomic< uint32 > | mSolvePositionConstraintsNextIsland { 0 } |
Next island that needs to be processed for the solve position constraints step (doesn't need own cache line since velocity jobs don't run at same time) | |
atomic< uint32 > | mIntegrateVelocityReadIdx { 0 } |
Next active body index to take when integrating velocities. | |
CCDBody * | mCCDBodies = nullptr |
List of bodies that need to do continuous collision detection. | |
uint32 | mCCDBodiesCapacity = 0 |
Capacity of the mCCDBodies list. | |
atomic< uint32 > | mNumCCDBodies = 0 |
Number of CCD bodies in mCCDBodies. | |
atomic< uint32 > | mNextCCDBody { 0 } |
Next unprocessed body index in mCCDBodies. | |
int * | mActiveBodyToCCDBody = nullptr |
A mapping between an index in BodyManager::mActiveBodies and the index in mCCDBodies. | |
uint32 | mNumActiveBodyToCCDBody = 0 |
Number of indices in mActiveBodyToCCDBody. | |
JobHandleArray | mSolveVelocityConstraints |
Solve the constraints in the velocity domain. | |
JobHandle | mPreIntegrateVelocity |
Setup integration of all body positions. | |
JobHandleArray | mIntegrateVelocity |
Integrate all body positions. | |
JobHandle | mPostIntegrateVelocity |
Finalize integration of all body positions. | |
JobHandle | mResolveCCDContacts |
Updates the positions and velocities for all bodies that need continuous collision detection. | |
JobHandleArray | mSolvePositionConstraints |
Solve all constraints in the position domain. | |
JobHandle | mStartNextSubStep |
Trampoline job that either kicks the next sub step or the next step. | |
Structure that contains job handles for each integration sub step.
int* PhysicsUpdateContext::SubStep::mActiveBodyToCCDBody = nullptr |
A mapping between an index in BodyManager::mActiveBodies and the index in mCCDBodies.
CCDBody* PhysicsUpdateContext::SubStep::mCCDBodies = nullptr |
List of bodies that need to do continuous collision detection.
uint32 PhysicsUpdateContext::SubStep::mCCDBodiesCapacity = 0 |
Capacity of the mCCDBodies list.
JobHandleArray PhysicsUpdateContext::SubStep::mIntegrateVelocity |
Integrate all body positions.
atomic<uint32> PhysicsUpdateContext::SubStep::mIntegrateVelocityReadIdx { 0 } |
Next active body index to take when integrating velocities.
bool PhysicsUpdateContext::SubStep::mIsFirst |
If this is the first substep in the step.
bool PhysicsUpdateContext::SubStep::mIsFirstOfAll |
If this is the first substep of the first step.
bool PhysicsUpdateContext::SubStep::mIsLast |
If this is the last substep in the step.
bool PhysicsUpdateContext::SubStep::mIsLastOfAll |
If this is the last substep in the last step.
atomic<uint32> PhysicsUpdateContext::SubStep::mNextCCDBody { 0 } |
Next unprocessed body index in mCCDBodies.
uint32 PhysicsUpdateContext::SubStep::mNumActiveBodyToCCDBody = 0 |
Number of indices in mActiveBodyToCCDBody.
atomic<uint32> PhysicsUpdateContext::SubStep::mNumCCDBodies = 0 |
Number of CCD bodies in mCCDBodies.
JobHandle PhysicsUpdateContext::SubStep::mPostIntegrateVelocity |
Finalize integration of all body positions.
JobHandle PhysicsUpdateContext::SubStep::mPreIntegrateVelocity |
Setup integration of all body positions.
JobHandle PhysicsUpdateContext::SubStep::mResolveCCDContacts |
Updates the positions and velocities for all bodies that need continuous collision detection.
JobHandleArray PhysicsUpdateContext::SubStep::mSolvePositionConstraints |
Solve all constraints in the position domain.
atomic<uint32> PhysicsUpdateContext::SubStep::mSolvePositionConstraintsNextIsland { 0 } |
Next island that needs to be processed for the solve position constraints step (doesn't need own cache line since velocity jobs don't run at same time)
JobHandleArray PhysicsUpdateContext::SubStep::mSolveVelocityConstraints |
Solve the constraints in the velocity domain.
atomic<uint32> PhysicsUpdateContext::SubStep::mSolveVelocityConstraintsNextIsland { 0 } |
Next island that needs to be processed for the solve velocity constraints step (doesn't need own cache line since position jobs don't run at same time)
JobHandle PhysicsUpdateContext::SubStep::mStartNextSubStep |
Trampoline job that either kicks the next sub step or the next step.