Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
PhysicsUpdateContext::Step Struct Reference

Structure that contains data needed for each collision step. More...

#include <PhysicsUpdateContext.h>

Public Member Functions

 Step ()=default
 
 Step (const Step &)
 

Public Attributes

PhysicsUpdateContextmContext
 The physics update context. More...
 
BroadPhase::UpdateState mBroadPhaseUpdateState
 Handle returned by Broadphase::UpdatePrepare. More...
 
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). More...
 
atomic< uint32mConstraintReadIdx { 0 }
 Next constraint for determine active constraints. More...
 
uint8 mPadding1 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]
 Padding to avoid sharing cache line with the next atomic. More...
 
atomic< uint32mNumActiveConstraints { 0 }
 Number of constraints in the mActiveConstraints array. More...
 
uint8 mPadding2 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]
 Padding to avoid sharing cache line with the next atomic. More...
 
atomic< uint32mStepListenerReadIdx { 0 }
 Next step listener to call. More...
 
uint8 mPadding3 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]
 Padding to avoid sharing cache line with the next atomic. More...
 
atomic< uint32mApplyGravityReadIdx { 0 }
 Next body to apply gravity to. More...
 
uint8 mPadding4 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]
 Padding to avoid sharing cache line with the next atomic. More...
 
atomic< uint32mActiveBodyReadIdx { 0 }
 Index of fist active body that has not yet been processed by the broadphase. More...
 
uint8 mPadding5 [JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]
 Padding to avoid sharing cache line with the next atomic. More...
 
BodyPairQueues mBodyPairQueues
 Queues in which to put body pairs that need to be tested by the narrowphase. More...
 
uint32 mMaxBodyPairsPerQueue
 Amount of body pairs that we can queue per queue. More...
 
atomic< JobMaskmActiveFindCollisionJobs
 A bitmask that indicates which jobs are still active. More...
 
atomic< uintmNumBodyPairs { 0 }
 The number of body pairs found in this step (used to size the contact cache in the next step) More...
 
atomic< uintmNumManifolds { 0 }
 The number of manifolds found in this step (used to size the contact cache in the next step) More...
 
JobHandle mBroadPhasePrepare
 Prepares the new tree in the background. More...
 
JobHandleArray mStepListeners
 Listeners to notify of the beginning of a physics step. More...
 
JobHandleArray mDetermineActiveConstraints
 Determine which constraints will be active during this step. More...
 
JobHandleArray mApplyGravity
 Update velocities of bodies with gravity. More...
 
JobHandleArray mFindCollisions
 Find all collisions between active bodies an the world. More...
 
JobHandle mUpdateBroadphaseFinalize
 Swap the newly built tree with the current tree. More...
 
JobHandle mSetupVelocityConstraints
 Calculate properties for all constraints in the constraint manager. More...
 
JobHandle mBuildIslandsFromConstraints
 Go over all constraints and assign the bodies they're attached to to an island. More...
 
JobHandle mFinalizeIslands
 Finalize calculation simulation islands. More...
 
JobHandle mBodySetIslandIndex
 Set the current island index on each body (not used by the simulation, only for drawing purposes) More...
 
SubSteps mSubSteps
 Integration sub steps. More...
 
JobHandle mContactRemovedCallbacks
 Calls the contact removed callbacks. More...
 
JobHandle mStartNextStep
 Job that kicks the next step (empty for the last step) More...
 

Detailed Description

Structure that contains data needed for each collision step.

Constructor & Destructor Documentation

◆ Step() [1/2]

PhysicsUpdateContext::Step::Step ( )
default

◆ Step() [2/2]

PhysicsUpdateContext::Step::Step ( const Step )
inline

Member Data Documentation

◆ mActiveBodyReadIdx

atomic<uint32> PhysicsUpdateContext::Step::mActiveBodyReadIdx { 0 }

Index of fist active body that has not yet been processed by the broadphase.

◆ mActiveFindCollisionJobs

atomic<JobMask> PhysicsUpdateContext::Step::mActiveFindCollisionJobs

A bitmask that indicates which jobs are still active.

◆ mApplyGravity

JobHandleArray PhysicsUpdateContext::Step::mApplyGravity

Update velocities of bodies with gravity.

◆ mApplyGravityReadIdx

atomic<uint32> PhysicsUpdateContext::Step::mApplyGravityReadIdx { 0 }

Next body to apply gravity to.

◆ mBodyPairQueues

BodyPairQueues PhysicsUpdateContext::Step::mBodyPairQueues

Queues in which to put body pairs that need to be tested by the narrowphase.

◆ mBodySetIslandIndex

JobHandle PhysicsUpdateContext::Step::mBodySetIslandIndex

Set the current island index on each body (not used by the simulation, only for drawing purposes)

◆ mBroadPhasePrepare

JobHandle PhysicsUpdateContext::Step::mBroadPhasePrepare

Prepares the new tree in the background.

◆ mBroadPhaseUpdateState

BroadPhase::UpdateState PhysicsUpdateContext::Step::mBroadPhaseUpdateState

Handle returned by Broadphase::UpdatePrepare.

◆ mBuildIslandsFromConstraints

JobHandle PhysicsUpdateContext::Step::mBuildIslandsFromConstraints

Go over all constraints and assign the bodies they're attached to to an island.

◆ mConstraintReadIdx

atomic<uint32> PhysicsUpdateContext::Step::mConstraintReadIdx { 0 }

Next constraint for determine active constraints.

◆ mContactRemovedCallbacks

JobHandle PhysicsUpdateContext::Step::mContactRemovedCallbacks

Calls the contact removed callbacks.

◆ mContext

PhysicsUpdateContext* PhysicsUpdateContext::Step::mContext

The physics update context.

◆ mDetermineActiveConstraints

JobHandleArray PhysicsUpdateContext::Step::mDetermineActiveConstraints

Determine which constraints will be active during this step.

◆ mFinalizeIslands

JobHandle PhysicsUpdateContext::Step::mFinalizeIslands

Finalize calculation simulation islands.

◆ mFindCollisions

JobHandleArray PhysicsUpdateContext::Step::mFindCollisions

Find all collisions between active bodies an the world.

◆ mMaxBodyPairsPerQueue

uint32 PhysicsUpdateContext::Step::mMaxBodyPairsPerQueue

Amount of body pairs that we can queue per queue.

◆ mNumActiveBodiesAtStepStart

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).

◆ mNumActiveConstraints

atomic<uint32> PhysicsUpdateContext::Step::mNumActiveConstraints { 0 }

Number of constraints in the mActiveConstraints array.

◆ mNumBodyPairs

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)

◆ mNumManifolds

atomic<uint> PhysicsUpdateContext::Step::mNumManifolds { 0 }

The number of manifolds found in this step (used to size the contact cache in the next step)

◆ mPadding1

uint8 PhysicsUpdateContext::Step::mPadding1[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]

Padding to avoid sharing cache line with the next atomic.

◆ mPadding2

uint8 PhysicsUpdateContext::Step::mPadding2[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]

Padding to avoid sharing cache line with the next atomic.

◆ mPadding3

uint8 PhysicsUpdateContext::Step::mPadding3[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]

Padding to avoid sharing cache line with the next atomic.

◆ mPadding4

uint8 PhysicsUpdateContext::Step::mPadding4[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]

Padding to avoid sharing cache line with the next atomic.

◆ mPadding5

uint8 PhysicsUpdateContext::Step::mPadding5[JPH_CACHE_LINE_SIZE - sizeof(atomic< uint32 >)]

Padding to avoid sharing cache line with the next atomic.

◆ mSetupVelocityConstraints

JobHandle PhysicsUpdateContext::Step::mSetupVelocityConstraints

Calculate properties for all constraints in the constraint manager.

◆ mStartNextStep

JobHandle PhysicsUpdateContext::Step::mStartNextStep

Job that kicks the next step (empty for the last step)

◆ mStepListenerReadIdx

atomic<uint32> PhysicsUpdateContext::Step::mStepListenerReadIdx { 0 }

Next step listener to call.

◆ mStepListeners

JobHandleArray PhysicsUpdateContext::Step::mStepListeners

Listeners to notify of the beginning of a physics step.

◆ mSubSteps

SubSteps PhysicsUpdateContext::Step::mSubSteps

Integration sub steps.

◆ mUpdateBroadphaseFinalize

JobHandle PhysicsUpdateContext::Step::mUpdateBroadphaseFinalize

Swap the newly built tree with the current tree.


The documentation for this struct was generated from the following file: