Jolt Physics
A multi core friendly Game Physics Engine
|
Structure that contains data needed for each collision step. More...
#include <PhysicsUpdateContext.h>
Public Member Functions | |
Step ()=default | |
Step (const Step &) | |
Public Attributes | |
PhysicsUpdateContext * | mContext |
The physics update context. | |
BroadPhase::UpdateState | mBroadPhaseUpdateState |
Handle returned by Broadphase::UpdatePrepare. | |
uint32 | mNumActiveBodiesAtStepStart |
Number of bodies that were active at the start of the physics update step. Only these bodies will receive gravity (they are the first N in the active body list). | |
atomic< uint32 > | mConstraintReadIdx { 0 } |
Next constraint for determine active constraints. | |
uint8 | mPadding1 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic. | |
atomic< uint32 > | mNumActiveConstraints { 0 } |
Number of constraints in the mActiveConstraints array. | |
uint8 | mPadding2 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic. | |
atomic< uint32 > | mStepListenerReadIdx { 0 } |
Next step listener to call. | |
uint8 | mPadding3 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic. | |
atomic< uint32 > | mApplyGravityReadIdx { 0 } |
Next body to apply gravity to. | |
uint8 | mPadding4 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic. | |
atomic< uint32 > | mActiveBodyReadIdx { 0 } |
Index of fist active body that has not yet been processed by the broadphase. | |
uint8 | mPadding5 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic. | |
BodyPairQueues | mBodyPairQueues |
Queues in which to put body pairs that need to be tested by the narrowphase. | |
uint32 | mMaxBodyPairsPerQueue |
Amount of body pairs that we can queue per queue. | |
atomic< JobMask > | mActiveFindCollisionJobs |
A bitmask that indicates which jobs are still active. | |
atomic< uint > | mNumBodyPairs { 0 } |
The number of body pairs found in this step (used to size the contact cache in the next step) | |
atomic< uint > | mNumManifolds { 0 } |
The number of manifolds found in this step (used to size the contact cache in the next step) | |
JobHandle | mBroadPhasePrepare |
Prepares the new tree in the background. | |
JobHandleArray | mStepListeners |
Listeners to notify of the beginning of a physics step. | |
JobHandleArray | mDetermineActiveConstraints |
Determine which constraints will be active during this step. | |
JobHandleArray | mApplyGravity |
Update velocities of bodies with gravity. | |
JobHandleArray | mFindCollisions |
Find all collisions between active bodies an the world. | |
JobHandle | mUpdateBroadphaseFinalize |
Swap the newly built tree with the current tree. | |
JobHandle | mSetupVelocityConstraints |
Calculate properties for all constraints in the constraint manager. | |
JobHandle | mBuildIslandsFromConstraints |
Go over all constraints and assign the bodies they're attached to to an island. | |
JobHandle | mFinalizeIslands |
Finalize calculation simulation islands. | |
JobHandle | mBodySetIslandIndex |
Set the current island index on each body (not used by the simulation, only for drawing purposes) | |
SubSteps | mSubSteps |
Integration sub steps. | |
JobHandle | mContactRemovedCallbacks |
Calls the contact removed callbacks. | |
JobHandle | mStartNextStep |
Job that kicks the next step (empty for the last step) | |
Structure that contains data needed for each collision step.
|
default |
|
inline |
atomic<uint32> PhysicsUpdateContext::Step::mActiveBodyReadIdx { 0 } |
Index of fist active body that has not yet been processed by the broadphase.
atomic<JobMask> PhysicsUpdateContext::Step::mActiveFindCollisionJobs |
A bitmask that indicates which jobs are still active.
JobHandleArray PhysicsUpdateContext::Step::mApplyGravity |
Update velocities of bodies with gravity.
atomic<uint32> PhysicsUpdateContext::Step::mApplyGravityReadIdx { 0 } |
Next body to apply gravity to.
BodyPairQueues PhysicsUpdateContext::Step::mBodyPairQueues |
Queues in which to put body pairs that need to be tested by the narrowphase.
JobHandle PhysicsUpdateContext::Step::mBodySetIslandIndex |
Set the current island index on each body (not used by the simulation, only for drawing purposes)
JobHandle PhysicsUpdateContext::Step::mBroadPhasePrepare |
Prepares the new tree in the background.
BroadPhase::UpdateState PhysicsUpdateContext::Step::mBroadPhaseUpdateState |
Handle returned by Broadphase::UpdatePrepare.
JobHandle PhysicsUpdateContext::Step::mBuildIslandsFromConstraints |
Go over all constraints and assign the bodies they're attached to to an island.
atomic<uint32> PhysicsUpdateContext::Step::mConstraintReadIdx { 0 } |
Next constraint for determine active constraints.
JobHandle PhysicsUpdateContext::Step::mContactRemovedCallbacks |
Calls the contact removed callbacks.
PhysicsUpdateContext* PhysicsUpdateContext::Step::mContext |
The physics update context.
JobHandleArray PhysicsUpdateContext::Step::mDetermineActiveConstraints |
Determine which constraints will be active during this step.
JobHandle PhysicsUpdateContext::Step::mFinalizeIslands |
Finalize calculation simulation islands.
JobHandleArray PhysicsUpdateContext::Step::mFindCollisions |
Find all collisions between active bodies an the world.
uint32 PhysicsUpdateContext::Step::mMaxBodyPairsPerQueue |
Amount of body pairs that we can queue per queue.
uint32 PhysicsUpdateContext::Step::mNumActiveBodiesAtStepStart |
Number of bodies that were active at the start of the physics update step. Only these bodies will receive gravity (they are the first N in the active body list).
atomic<uint32> PhysicsUpdateContext::Step::mNumActiveConstraints { 0 } |
Number of constraints in the mActiveConstraints array.
atomic<uint> PhysicsUpdateContext::Step::mNumBodyPairs { 0 } |
The number of body pairs found in this step (used to size the contact cache in the next step)
atomic<uint> PhysicsUpdateContext::Step::mNumManifolds { 0 } |
The number of manifolds found in this step (used to size the contact cache in the next step)
uint8 PhysicsUpdateContext::Step::mPadding1[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic.
uint8 PhysicsUpdateContext::Step::mPadding2[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic.
uint8 PhysicsUpdateContext::Step::mPadding3[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic.
uint8 PhysicsUpdateContext::Step::mPadding4[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic.
uint8 PhysicsUpdateContext::Step::mPadding5[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)] |
Padding to avoid sharing cache line with the next atomic.
JobHandle PhysicsUpdateContext::Step::mSetupVelocityConstraints |
Calculate properties for all constraints in the constraint manager.
JobHandle PhysicsUpdateContext::Step::mStartNextStep |
Job that kicks the next step (empty for the last step)
atomic<uint32> PhysicsUpdateContext::Step::mStepListenerReadIdx { 0 } |
Next step listener to call.
JobHandleArray PhysicsUpdateContext::Step::mStepListeners |
Listeners to notify of the beginning of a physics step.
SubSteps PhysicsUpdateContext::Step::mSubSteps |
Integration sub steps.
JobHandle PhysicsUpdateContext::Step::mUpdateBroadphaseFinalize |
Swap the newly built tree with the current tree.