Blender V4.5
btDiscreteDynamicsWorld.h File Reference

Go to the source code of this file.

Functions

virtual void predictUnconstraintMotion (btScalar timeStep)
void integrateTransformsInternal (btRigidBody **bodies, int numBodies, btScalar timeStep)
virtual void integrateTransforms (btScalar timeStep)
virtual void calculateSimulationIslands ()
virtual void updateActivationState (btScalar timeStep)
void updateActions (btScalar timeStep)
void startProfiling (btScalar timeStep)
virtual void internalSingleStepSimulation (btScalar timeStep)
void releasePredictiveContacts ()
void createPredictiveContactsInternal (btRigidBody **bodies, int numBodies, btScalar timeStep)
virtual void createPredictiveContacts (btScalar timeStep)
virtual void saveKinematicState (btScalar timeStep)
void serializeRigidBodies (btSerializer *serializer)
void serializeDynamicsWorldInfo (btSerializer *serializer)
 BT_DECLARE_ALIGNED_ALLOCATOR ()
 btDiscreteDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
 this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those
virtual ~btDiscreteDynamicsWorld ()
virtual int stepSimulation (btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))
 if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
virtual void solveConstraints (btContactSolverInfo &solverInfo)
virtual void synchronizeMotionStates ()
void synchronizeSingleMotionState (btRigidBody *body)
 this can be useful to synchronize a single rigid body -> graphics object
virtual void addConstraint (btTypedConstraint *constraint, bool disableCollisionsBetweenLinkedBodies=false)
virtual void removeConstraint (btTypedConstraint *constraint)
virtual void addAction (btActionInterface *)
virtual void removeAction (btActionInterface *)
btSimulationIslandManagergetSimulationIslandManager ()
btCollisionWorldgetCollisionWorld ()
virtual void setGravity (const btVector3 &gravity)
virtual btVector3 getGravity () const
virtual void addCollisionObject (btCollisionObject *collisionObject, int collisionFilterGroup=btBroadphaseProxy::StaticFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter)
virtual void addRigidBody (btRigidBody *body)
virtual void addRigidBody (btRigidBody *body, int group, int mask)
virtual void removeRigidBody (btRigidBody *body)
virtual void removeCollisionObject (btCollisionObject *collisionObject)
 removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject
virtual void debugDrawConstraint (btTypedConstraint *constraint)
virtual void debugDrawWorld ()
virtual void setConstraintSolver (btConstraintSolver *solver)
virtual btConstraintSolvergetConstraintSolver ()
virtual int getNumConstraints () const
virtual btTypedConstraintgetConstraint (int index)
virtual btDynamicsWorldType getWorldType () const
virtual void clearForces ()
 the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.
virtual void applyGravity ()
 apply gravity, call this once per timestep
virtual void setNumTasks (int numTasks)
virtual void updateVehicles (btScalar timeStep)
 obsolete, use updateActions instead
virtual void addVehicle (btActionInterface *vehicle)
 obsolete, use addAction instead
virtual void removeVehicle (btActionInterface *vehicle)
 obsolete, use removeAction instead
virtual void addCharacter (btActionInterface *character)
 obsolete, use addAction instead
virtual void removeCharacter (btActionInterface *character)
 obsolete, use removeAction instead
void setSynchronizeAllMotionStates (bool synchronizeAll)
bool getSynchronizeAllMotionStates () const
void setApplySpeculativeContactRestitution (bool enable)
bool getApplySpeculativeContactRestitution () const
virtual void serialize (btSerializer *serializer)
 Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo).
void setLatencyMotionStateInterpolation (bool latencyInterpolation)
bool getLatencyMotionStateInterpolation () const
btAlignedObjectArray< btRigidBody * > & getNonStaticRigidBodies ()

Variables

btDiscreteDynamicsWorld __pad0__
InplaceSolverIslandCallbackm_solverIslandCallback
btConstraintSolverm_constraintSolver
btSimulationIslandManagerm_islandManager
btAlignedObjectArray< btTypedConstraint * > m_constraints
btAlignedObjectArray< btRigidBody * > m_nonStaticRigidBodies
btVector3 m_gravity
btScalar m_localTime
btScalar m_fixedTimeStep
bool m_ownsIslandManager
bool m_ownsConstraintSolver
bool m_synchronizeAllMotionStates
bool m_applySpeculativeContactRestitution
btAlignedObjectArray< btActionInterface * > m_actions
int m_profileTimings
bool m_latencyMotionStateInterpolation
btAlignedObjectArray< btPersistentManifold * > m_predictiveManifolds
btSpinMutex m_predictiveManifoldsMutex

Function Documentation

◆ addAction()

virtual void addAction ( btActionInterface * )
virtual

References addAction().

Referenced by addAction().

◆ addCharacter()

virtual void addCharacter ( btActionInterface * character)
virtual

obsolete, use addAction instead

References addCharacter().

Referenced by addCharacter().

◆ addCollisionObject()

virtual void addCollisionObject ( btCollisionObject * collisionObject,
int collisionFilterGroup = btBroadphaseProxy::StaticFilter,
int collisionFilterMask = btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter )
virtual

◆ addConstraint()

virtual void addConstraint ( btTypedConstraint * constraint,
bool disableCollisionsBetweenLinkedBodies = false )
virtual

References addConstraint(), and btTypedConstraint().

Referenced by addConstraint().

◆ addRigidBody() [1/2]

virtual void addRigidBody ( btRigidBody * body)
virtual

References addRigidBody().

Referenced by addRigidBody(), and addRigidBody().

◆ addRigidBody() [2/2]

virtual void addRigidBody ( btRigidBody * body,
int group,
int mask )
virtual

References addRigidBody(), and mask().

◆ addVehicle()

virtual void addVehicle ( btActionInterface * vehicle)
virtual

obsolete, use addAction instead

References addVehicle().

Referenced by addVehicle().

◆ applyGravity()

virtual void applyGravity ( )
virtual

apply gravity, call this once per timestep

References applyGravity().

Referenced by applyGravity().

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

BT_DECLARE_ALIGNED_ALLOCATOR ( )

◆ btDiscreteDynamicsWorld()

◆ calculateSimulationIslands()

virtual void calculateSimulationIslands ( )
virtual

◆ clearForces()

virtual void clearForces ( )
virtual

the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.

References clearForces().

Referenced by clearForces().

◆ createPredictiveContacts()

void btDiscreteDynamicsWorldMt::createPredictiveContacts ( btScalar timeStep)
virtual

◆ createPredictiveContactsInternal()

◆ debugDrawConstraint()

void btDiscreteDynamicsWorld::debugDrawConstraint ( btTypedConstraint * constraint)
virtual

◆ debugDrawWorld()

virtual void debugDrawWorld ( )
virtual

References debugDrawWorld().

Referenced by debugDrawWorld().

◆ getApplySpeculativeContactRestitution()

bool getApplySpeculativeContactRestitution ( ) const

◆ getCollisionWorld()

◆ getConstraint()

const btTypedConstraint * getConstraint ( int index)
virtual

References btTypedConstraint(), and getConstraint().

Referenced by getConstraint().

◆ getConstraintSolver()

virtual btConstraintSolver * getConstraintSolver ( )
virtual

References getConstraintSolver().

Referenced by getConstraintSolver().

◆ getGravity()

virtual btVector3 getGravity ( ) const
virtual

References btVector3, and getGravity().

◆ getLatencyMotionStateInterpolation()

bool getLatencyMotionStateInterpolation ( ) const

◆ getNonStaticRigidBodies()

const btAlignedObjectArray< btRigidBody * > & getNonStaticRigidBodies ( )

◆ getNumConstraints()

◆ getSimulationIslandManager()

◆ getSynchronizeAllMotionStates()

bool getSynchronizeAllMotionStates ( ) const

◆ getWorldType()

virtual btDynamicsWorldType getWorldType ( ) const
virtual

Definition at line 169 of file btDiscreteDynamicsWorld.h.

References BT_DISCRETE_DYNAMICS_WORLD, and getWorldType().

Referenced by getWorldType().

◆ integrateTransforms()

virtual void integrateTransforms ( btScalar timeStep)
virtual

◆ integrateTransformsInternal()

◆ internalSingleStepSimulation()

◆ predictUnconstraintMotion()

virtual void predictUnconstraintMotion ( btScalar timeStep)
virtual

◆ releasePredictiveContacts()

void btDiscreteDynamicsWorld::releasePredictiveContacts ( )

◆ removeAction()

virtual void removeAction ( btActionInterface * )
virtual

References removeAction().

Referenced by removeAction().

◆ removeCharacter()

virtual void removeCharacter ( btActionInterface * character)
virtual

obsolete, use removeAction instead

References removeCharacter().

Referenced by removeCharacter().

◆ removeCollisionObject()

virtual void removeCollisionObject ( btCollisionObject * collisionObject)
virtual

removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject

References btCollisionObject, btTypedConstraint(), debugDrawConstraint(), and removeCollisionObject().

Referenced by removeCollisionObject().

◆ removeConstraint()

virtual void removeConstraint ( btTypedConstraint * constraint)
virtual

◆ removeRigidBody()

virtual void removeRigidBody ( btRigidBody * body)
virtual

References removeRigidBody().

Referenced by removeRigidBody().

◆ removeVehicle()

virtual void removeVehicle ( btActionInterface * vehicle)
virtual

obsolete, use removeAction instead

References removeVehicle().

Referenced by removeVehicle().

◆ saveKinematicState()

◆ serialize()

virtual void serialize ( btSerializer * serializer)
virtual

Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo).

References serialize().

◆ serializeDynamicsWorldInfo()

void btDiscreteDynamicsWorld::serializeDynamicsWorldInfo ( btSerializer * serializer)

◆ serializeRigidBodies()

◆ setApplySpeculativeContactRestitution()

void setApplySpeculativeContactRestitution ( bool enable)

◆ setConstraintSolver()

virtual void setConstraintSolver ( btConstraintSolver * solver)
virtual

References setConstraintSolver().

Referenced by setConstraintSolver().

◆ setGravity()

virtual void setGravity ( const btVector3 & gravity)
virtual

References btVector3, and setGravity().

◆ setLatencyMotionStateInterpolation()

void setLatencyMotionStateInterpolation ( bool latencyInterpolation)

Interpolate motion state between previous and current transform, instead of current and next transform. This can relieve discontinuities in the rendering, due to penetrations

Definition at line 224 of file btDiscreteDynamicsWorld.h.

References m_latencyMotionStateInterpolation, and setLatencyMotionStateInterpolation().

Referenced by setLatencyMotionStateInterpolation().

◆ setNumTasks()

virtual void setNumTasks ( int numTasks)
virtual

Definition at line 180 of file btDiscreteDynamicsWorld.h.

References setNumTasks().

Referenced by setNumTasks().

◆ setSynchronizeAllMotionStates()

void setSynchronizeAllMotionStates ( bool synchronizeAll)

◆ solveConstraints()

virtual void solveConstraints ( btContactSolverInfo & solverInfo)
virtual

References solveConstraints().

Referenced by solveConstraints(), and solveConstraints().

◆ startProfiling()

void btDiscreteDynamicsWorld::startProfiling ( btScalar timeStep)

◆ stepSimulation()

virtual int stepSimulation ( btScalar timeStep,
int maxSubSteps = 1,
btScalar fixedTimeStep = btScalar(1.)/btScalar(60.) )
virtual

if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's

References stepSimulation().

Referenced by stepSimulation(), and stepSimulation().

◆ synchronizeMotionStates()

virtual void synchronizeMotionStates ( )
virtual

◆ synchronizeSingleMotionState()

void btDiscreteDynamicsWorld::synchronizeSingleMotionState ( btRigidBody * body)

this can be useful to synchronize a single rigid body -> graphics object

Todo
: add 'dirty' flag

Definition at line 335 of file btDiscreteDynamicsWorld.cpp.

References btAssert, btTransform, btRigidBody::getMotionState(), btTransformUtil::integrateTransform(), m_fixedTimeStep, m_latencyMotionStateInterpolation, m_localTime, and btMotionState::setWorldTransform().

Referenced by synchronizeMotionStates().

◆ updateActions()

void btDiscreteDynamicsWorld::updateActions ( btScalar timeStep)

Definition at line 584 of file btDiscreteDynamicsWorld.cpp.

References BT_PROFILE, i, and m_actions.

Referenced by updateActivationState(), and updateVehicles().

◆ updateActivationState()

virtual void updateActivationState ( btScalar timeStep)
virtual

◆ updateVehicles()

virtual void updateVehicles ( btScalar timeStep)
virtual

obsolete, use updateActions instead

Definition at line 186 of file btDiscreteDynamicsWorld.h.

References updateActions(), and updateVehicles().

Referenced by updateVehicles().

◆ ~btDiscreteDynamicsWorld()

Variable Documentation

◆ __pad0__

btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController

Definition at line 37 of file btDiscreteDynamicsWorld.h.

◆ m_actions

Definition at line 63 of file btDiscreteDynamicsWorld.h.

Referenced by updateActions().

◆ m_applySpeculativeContactRestitution

bool m_applySpeculativeContactRestitution

◆ m_constraints

◆ m_constraintSolver

◆ m_fixedTimeStep

◆ m_gravity

btVector3 m_gravity

Definition at line 51 of file btDiscreteDynamicsWorld.h.

◆ m_islandManager

◆ m_latencyMotionStateInterpolation

◆ m_localTime

◆ m_nonStaticRigidBodies

◆ m_ownsConstraintSolver

bool m_ownsConstraintSolver

Definition at line 59 of file btDiscreteDynamicsWorld.h.

Referenced by btDiscreteDynamicsWorld(), and ~btDiscreteDynamicsWorld().

◆ m_ownsIslandManager

bool m_ownsIslandManager

◆ m_predictiveManifolds

◆ m_predictiveManifoldsMutex

btSpinMutex m_predictiveManifoldsMutex

Definition at line 70 of file btDiscreteDynamicsWorld.h.

Referenced by createPredictiveContactsInternal().

◆ m_profileTimings

int m_profileTimings

Definition at line 65 of file btDiscreteDynamicsWorld.h.

Referenced by btDiscreteDynamicsWorld().

◆ m_solverIslandCallback

InplaceSolverIslandCallback* m_solverIslandCallback

Definition at line 41 of file btDiscreteDynamicsWorld.h.

Referenced by btDiscreteDynamicsWorld(), and ~btDiscreteDynamicsWorld().

◆ m_synchronizeAllMotionStates

bool m_synchronizeAllMotionStates