Blender  V3.3
Functions | Variables
btDiscreteDynamicsWorld.h File Reference
#include "btDynamicsWorld.h"
#include "LinearMath/btAlignedObjectArray.h"
#include "LinearMath/btThreads.h"

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 More...
 
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 More...
 
virtual void solveConstraints (btContactSolverInfo &solverInfo)
 
virtual void synchronizeMotionStates ()
 
void synchronizeSingleMotionState (btRigidBody *body)
 this can be useful to synchronize a single rigid body -> graphics object More...
 
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 More...
 
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. More...
 
virtual void applyGravity ()
 apply gravity, call this once per timestep More...
 
virtual void setNumTasks (int numTasks)
 
virtual void updateVehicles (btScalar timeStep)
 obsolete, use updateActions instead More...
 
virtual void addVehicle (btActionInterface *vehicle)
 obsolete, use addAction instead More...
 
virtual void removeVehicle (btActionInterface *vehicle)
 obsolete, use removeAction instead More...
 
virtual void addCharacter (btActionInterface *character)
 obsolete, use addAction instead More...
 
virtual void removeCharacter (btActionInterface *character)
 obsolete, use removeAction instead More...
 
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) More...
 
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

◆ addCharacter()

virtual void addCharacter ( btActionInterface character)
virtual

obsolete, use addAction instead

◆ 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

◆ addRigidBody() [1/2]

virtual void addRigidBody ( btRigidBody body)
virtual

◆ addRigidBody() [2/2]

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

◆ addVehicle()

virtual void addVehicle ( btActionInterface vehicle)
virtual

obsolete, use addAction instead

◆ applyGravity()

virtual void applyGravity ( )
virtual

apply gravity, call this once per timestep

Referenced by btMultiBodyDynamicsWorld::applyGravity().

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

BT_DECLARE_ALIGNED_ALLOCATOR ( )

◆ btDiscreteDynamicsWorld()

btDiscreteDynamicsWorld::btDiscreteDynamicsWorld ( btDispatcher dispatcher,
btBroadphaseInterface pairCache,
btConstraintSolver constraintSolver,
btCollisionConfiguration collisionConfiguration 
)

this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those

Definition at line 191 of file btDiscreteDynamicsWorld.cpp.

References btAlignedAlloc, btSequentialImpulseConstraintSolver(), m_constraintSolver, m_islandManager, m_ownsConstraintSolver, m_ownsIslandManager, and m_solverIslandCallback.

Referenced by RB_dworld_new().

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

Referenced by btMultiBodyDynamicsWorld::clearForces().

◆ createPredictiveContacts()

void btDiscreteDynamicsWorldMt::createPredictiveContacts ( btScalar  timeStep)
virtual

◆ createPredictiveContactsInternal()

void btDiscreteDynamicsWorld::createPredictiveContactsInternal ( btRigidBody **  bodies,
int  numBodies,
btScalar  timeStep 
)

◆ debugDrawConstraint()

void btDiscreteDynamicsWorld::debugDrawConstraint ( btTypedConstraint constraint)
virtual

◆ debugDrawWorld()

virtual void debugDrawWorld ( )
virtual

◆ getApplySpeculativeContactRestitution()

bool getApplySpeculativeContactRestitution ( ) const

Definition at line 214 of file btDiscreteDynamicsWorld.h.

References m_applySpeculativeContactRestitution.

◆ getCollisionWorld()

btCollisionWorld* getCollisionWorld ( )

◆ getConstraint()

const btTypedConstraint * getConstraint ( int  index)
virtual

◆ getConstraintSolver()

virtual btConstraintSolver* getConstraintSolver ( )
virtual

◆ getGravity()

virtual btVector3 getGravity ( ) const
virtual

◆ getLatencyMotionStateInterpolation()

bool getLatencyMotionStateInterpolation ( ) const

Definition at line 228 of file btDiscreteDynamicsWorld.h.

References m_latencyMotionStateInterpolation.

◆ getNonStaticRigidBodies()

const btAlignedObjectArray< btRigidBody * > & getNonStaticRigidBodies ( )

Definition at line 233 of file btDiscreteDynamicsWorld.h.

References m_nonStaticRigidBodies.

◆ getNumConstraints()

virtual int getNumConstraints ( ) const
virtual

◆ getSimulationIslandManager()

const btSimulationIslandManager * getSimulationIslandManager ( )

◆ getSynchronizeAllMotionStates()

bool getSynchronizeAllMotionStates ( ) const

Definition at line 204 of file btDiscreteDynamicsWorld.h.

References m_synchronizeAllMotionStates.

◆ getWorldType()

virtual btDynamicsWorldType getWorldType ( ) const
virtual

Definition at line 169 of file btDiscreteDynamicsWorld.h.

References BT_DISCRETE_DYNAMICS_WORLD.

◆ integrateTransforms()

virtual void integrateTransforms ( btScalar  timeStep)
virtual

◆ integrateTransformsInternal()

void btDiscreteDynamicsWorld::integrateTransformsInternal ( btRigidBody **  bodies,
int  numBodies,
btScalar  timeStep 
)

◆ internalSingleStepSimulation()

virtual void internalSingleStepSimulation ( btScalar  timeStep)
virtual

◆ predictUnconstraintMotion()

virtual void predictUnconstraintMotion ( btScalar  timeStep)
virtual

◆ releasePredictiveContacts()

void btDiscreteDynamicsWorld::releasePredictiveContacts ( )

◆ removeAction()

virtual void removeAction ( btActionInterface )
virtual

◆ removeCharacter()

virtual void removeCharacter ( btActionInterface character)
virtual

obsolete, use removeAction instead

◆ removeCollisionObject()

virtual void removeCollisionObject ( btCollisionObject collisionObject)
virtual

◆ removeConstraint()

virtual void removeConstraint ( btTypedConstraint constraint)
virtual

◆ removeRigidBody()

virtual void removeRigidBody ( btRigidBody body)
virtual

◆ removeVehicle()

virtual void removeVehicle ( btActionInterface vehicle)
virtual

obsolete, use removeAction instead

◆ saveKinematicState()

virtual void saveKinematicState ( btScalar  timeStep)
virtual

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

◆ serializeDynamicsWorldInfo()

void btDiscreteDynamicsWorld::serializeDynamicsWorldInfo ( btSerializer serializer)

◆ serializeRigidBodies()

void btDiscreteDynamicsWorld::serializeRigidBodies ( btSerializer serializer)

◆ setApplySpeculativeContactRestitution()

void setApplySpeculativeContactRestitution ( bool  enable)

Definition at line 209 of file btDiscreteDynamicsWorld.h.

References m_applySpeculativeContactRestitution.

◆ setConstraintSolver()

virtual void setConstraintSolver ( btConstraintSolver solver)
virtual

◆ setGravity()

virtual void setGravity ( const btVector3 gravity)
virtual

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

◆ setNumTasks()

virtual void setNumTasks ( int  numTasks)
virtual

Definition at line 180 of file btDiscreteDynamicsWorld.h.

References void.

◆ setSynchronizeAllMotionStates()

void setSynchronizeAllMotionStates ( bool  synchronizeAll)

Definition at line 200 of file btDiscreteDynamicsWorld.h.

References m_synchronizeAllMotionStates.

◆ solveConstraints()

virtual void solveConstraints ( btContactSolverInfo solverInfo)
virtual

◆ startProfiling()

void btDiscreteDynamicsWorld::startProfiling ( btScalar  timeStep)

Definition at line 1108 of file btDiscreteDynamicsWorld.cpp.

References void.

Referenced by btDeformableMultiBodyDynamicsWorld::stepSimulation().

◆ 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

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

◆ updateActions()

void btDiscreteDynamicsWorld::updateActions ( btScalar  timeStep)

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

◆ ~btDiscreteDynamicsWorld()

btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld ( )
virtual

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

btConstraintSolver* m_constraintSolver

◆ m_fixedTimeStep

btScalar m_fixedTimeStep

◆ m_gravity

btVector3 m_gravity

Definition at line 51 of file btDiscreteDynamicsWorld.h.

◆ m_islandManager

btSimulationIslandManager* m_islandManager

◆ m_latencyMotionStateInterpolation

bool m_latencyMotionStateInterpolation

◆ m_localTime

btScalar m_localTime

◆ m_nonStaticRigidBodies

btAlignedObjectArray<btRigidBody*> 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

btAlignedObjectArray<btPersistentManifold*> 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.

◆ m_solverIslandCallback

InplaceSolverIslandCallback* m_solverIslandCallback

Definition at line 41 of file btDiscreteDynamicsWorld.h.

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

◆ m_synchronizeAllMotionStates

bool m_synchronizeAllMotionStates