Jolt Physics
A multi core friendly Game Physics Engine
|
Temporary data used by the update of a soft body. More...
#include <SoftBodyUpdateContext.h>
Public Types | |
enum class | EState { DetermineCollisionPlanes , DetermineSensorCollisions , ApplyConstraints , Done } |
Describes progress in the current update. More... | |
Public Attributes | |
Body * | mBody |
Body that is being updated. More... | |
SoftBodyMotionProperties * | mMotionProperties |
Motion properties of that body. More... | |
SoftBodyContactListener * | mContactListener |
Contact listener to fire callbacks to. More... | |
RMat44 | mCenterOfMassTransform |
Transform of the body relative to the soft body. More... | |
Vec3 | mGravity |
Gravity vector in local space of the soft body. More... | |
Vec3 | mDisplacementDueToGravity |
Displacement of the center of mass due to gravity in the current time step. More... | |
float | mDeltaTime |
Delta time for the current time step. More... | |
float | mSubStepDeltaTime |
Delta time for each sub step. More... | |
atomic< EState > | mState { EState::DetermineCollisionPlanes } |
Current state of the update. More... | |
atomic< uint > | mNextCollisionVertex { 0 } |
Next vertex to process for DetermineCollisionPlanes. More... | |
atomic< uint > | mNumCollisionVerticesProcessed { 0 } |
Number of vertices processed by DetermineCollisionPlanes, used to determine if we can go to the next step. More... | |
atomic< uint > | mNextSensorIndex { 0 } |
Next sensor to process for DetermineCollisionPlanes. More... | |
atomic< uint > | mNumSensorsProcessed { 0 } |
Number of sensors processed by DetermineSensorCollisions, used to determine if we can go to the next step. More... | |
atomic< uint > | mNextIteration { 0 } |
Next simulation iteration to process. More... | |
atomic< uint > | mNextConstraintGroup { 0 } |
Next constraint group to process. More... | |
atomic< uint > | mNumConstraintGroupsProcessed { 0 } |
Number of groups processed, used to determine if we can go to the next iteration. More... | |
Vec3 | mDeltaPosition |
Delta position of the body in the current time step, should be applied after the update. More... | |
ECanSleep | mCanSleep |
Can the body sleep? Should be applied after the update. More... | |
Static Public Attributes | |
static constexpr uint | cVertexCollisionBatch = 64 |
Number of vertices to process in a batch in DetermineCollisionPlanes. More... | |
static constexpr uint | cVertexConstraintBatch = 256 |
Number of vertices to group for processing batches of constraints in ApplyEdgeConstraints. More... | |
Additional Inherited Members | |
Public Member Functions inherited from NonCopyable | |
NonCopyable ()=default | |
NonCopyable (const NonCopyable &)=delete | |
void | operator= (const NonCopyable &)=delete |
Temporary data used by the update of a soft body.
|
strong |
|
staticconstexpr |
Number of vertices to process in a batch in DetermineCollisionPlanes.
|
staticconstexpr |
Number of vertices to group for processing batches of constraints in ApplyEdgeConstraints.
ECanSleep SoftBodyUpdateContext::mCanSleep |
Can the body sleep? Should be applied after the update.
RMat44 SoftBodyUpdateContext::mCenterOfMassTransform |
Transform of the body relative to the soft body.
SoftBodyContactListener* SoftBodyUpdateContext::mContactListener |
Contact listener to fire callbacks to.
Vec3 SoftBodyUpdateContext::mDeltaPosition |
Delta position of the body in the current time step, should be applied after the update.
float SoftBodyUpdateContext::mDeltaTime |
Delta time for the current time step.
Vec3 SoftBodyUpdateContext::mDisplacementDueToGravity |
Displacement of the center of mass due to gravity in the current time step.
Vec3 SoftBodyUpdateContext::mGravity |
Gravity vector in local space of the soft body.
SoftBodyMotionProperties* SoftBodyUpdateContext::mMotionProperties |
Motion properties of that body.
atomic<uint> SoftBodyUpdateContext::mNextCollisionVertex { 0 } |
Next vertex to process for DetermineCollisionPlanes.
atomic<uint> SoftBodyUpdateContext::mNextConstraintGroup { 0 } |
Next constraint group to process.
atomic<uint> SoftBodyUpdateContext::mNextIteration { 0 } |
Next simulation iteration to process.
atomic<uint> SoftBodyUpdateContext::mNextSensorIndex { 0 } |
Next sensor to process for DetermineCollisionPlanes.
atomic<uint> SoftBodyUpdateContext::mNumCollisionVerticesProcessed { 0 } |
Number of vertices processed by DetermineCollisionPlanes, used to determine if we can go to the next step.
atomic<uint> SoftBodyUpdateContext::mNumConstraintGroupsProcessed { 0 } |
Number of groups processed, used to determine if we can go to the next iteration.
atomic<uint> SoftBodyUpdateContext::mNumSensorsProcessed { 0 } |
Number of sensors processed by DetermineSensorCollisions, used to determine if we can go to the next step.
atomic<EState> SoftBodyUpdateContext::mState { EState::DetermineCollisionPlanes } |
Current state of the update.
float SoftBodyUpdateContext::mSubStepDeltaTime |
Delta time for each sub step.