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

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

StepmStep
 Step that this substeb belongs to. More...
 
bool mIsFirst
 If this is the first substep in the step. More...
 
bool mIsLast
 If this is the last substep in the step. More...
 
bool mIsFirstOfAll
 If this is the first substep of the first step. More...
 
bool mIsLastOfAll
 If this is the last substep in the last step. More...
 
atomic< uint32mSolveVelocityConstraintsNextIsland { 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) More...
 
atomic< uint32mSolvePositionConstraintsNextIsland { 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) More...
 
atomic< uint32mIntegrateVelocityReadIdx { 0 }
 Next active body index to take when integrating velocities. More...
 
CCDBodymCCDBodies = nullptr
 List of bodies that need to do continuous collision detection. More...
 
uint32 mCCDBodiesCapacity = 0
 Capacity of the mCCDBodies list. More...
 
atomic< uint32mNumCCDBodies = 0
 Number of CCD bodies in mCCDBodies. More...
 
atomic< uint32mNextCCDBody { 0 }
 Next unprocessed body index in mCCDBodies. More...
 
int * mActiveBodyToCCDBody = nullptr
 A mapping between an index in BodyManager::mActiveBodies and the index in mCCDBodies. More...
 
uint32 mNumActiveBodyToCCDBody = 0
 Number of indices in mActiveBodyToCCDBody. More...
 
JobHandleArray mSolveVelocityConstraints
 Solve the constraints in the velocity domain. More...
 
JobHandle mPreIntegrateVelocity
 Setup integration of all body positions. More...
 
JobHandleArray mIntegrateVelocity
 Integrate all body positions. More...
 
JobHandle mPostIntegrateVelocity
 Finalize integration of all body positions. More...
 
JobHandle mResolveCCDContacts
 Updates the positions and velocities for all bodies that need continuous collision detection. More...
 
JobHandleArray mSolvePositionConstraints
 Solve all constraints in the position domain. More...
 
JobHandle mStartNextSubStep
 Trampoline job that either kicks the next sub step or the next step. More...
 

Detailed Description

Structure that contains job handles for each integration sub step.

Member Data Documentation

◆ mActiveBodyToCCDBody

int* PhysicsUpdateContext::SubStep::mActiveBodyToCCDBody = nullptr

A mapping between an index in BodyManager::mActiveBodies and the index in mCCDBodies.

◆ mCCDBodies

CCDBody* PhysicsUpdateContext::SubStep::mCCDBodies = nullptr

List of bodies that need to do continuous collision detection.

◆ mCCDBodiesCapacity

uint32 PhysicsUpdateContext::SubStep::mCCDBodiesCapacity = 0

Capacity of the mCCDBodies list.

◆ mIntegrateVelocity

JobHandleArray PhysicsUpdateContext::SubStep::mIntegrateVelocity

Integrate all body positions.

◆ mIntegrateVelocityReadIdx

atomic<uint32> PhysicsUpdateContext::SubStep::mIntegrateVelocityReadIdx { 0 }

Next active body index to take when integrating velocities.

◆ mIsFirst

bool PhysicsUpdateContext::SubStep::mIsFirst

If this is the first substep in the step.

◆ mIsFirstOfAll

bool PhysicsUpdateContext::SubStep::mIsFirstOfAll

If this is the first substep of the first step.

◆ mIsLast

bool PhysicsUpdateContext::SubStep::mIsLast

If this is the last substep in the step.

◆ mIsLastOfAll

bool PhysicsUpdateContext::SubStep::mIsLastOfAll

If this is the last substep in the last step.

◆ mNextCCDBody

atomic<uint32> PhysicsUpdateContext::SubStep::mNextCCDBody { 0 }

Next unprocessed body index in mCCDBodies.

◆ mNumActiveBodyToCCDBody

uint32 PhysicsUpdateContext::SubStep::mNumActiveBodyToCCDBody = 0

Number of indices in mActiveBodyToCCDBody.

◆ mNumCCDBodies

atomic<uint32> PhysicsUpdateContext::SubStep::mNumCCDBodies = 0

Number of CCD bodies in mCCDBodies.

◆ mPostIntegrateVelocity

JobHandle PhysicsUpdateContext::SubStep::mPostIntegrateVelocity

Finalize integration of all body positions.

◆ mPreIntegrateVelocity

JobHandle PhysicsUpdateContext::SubStep::mPreIntegrateVelocity

Setup integration of all body positions.

◆ mResolveCCDContacts

JobHandle PhysicsUpdateContext::SubStep::mResolveCCDContacts

Updates the positions and velocities for all bodies that need continuous collision detection.

◆ mSolvePositionConstraints

JobHandleArray PhysicsUpdateContext::SubStep::mSolvePositionConstraints

Solve all constraints in the position domain.

◆ mSolvePositionConstraintsNextIsland

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)

◆ mSolveVelocityConstraints

JobHandleArray PhysicsUpdateContext::SubStep::mSolveVelocityConstraints

Solve the constraints in the velocity domain.

◆ mSolveVelocityConstraintsNextIsland

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)

◆ mStartNextSubStep

JobHandle PhysicsUpdateContext::SubStep::mStartNextSubStep

Trampoline job that either kicks the next sub step or the next step.

◆ mStep

Step* PhysicsUpdateContext::SubStep::mStep

Step that this substeb belongs to.


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