Public Member Functions | Protected Member Functions | Protected Attributes

btDiscreteDynamicsWorld Class Reference

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

#include <btDiscreteDynamicsWorld.h>

Inheritance diagram for btDiscreteDynamicsWorld:
Inheritance graph
[legend]
Collaboration diagram for btDiscreteDynamicsWorld:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 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 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 ()
const btSimulationIslandManagergetSimulationIslandManager () const
btCollisionWorldgetCollisionWorld ()
virtual void setGravity (const btVector3 &gravity)
virtual btVector3 getGravity () const
virtual void addCollisionObject (btCollisionObject *collisionObject, short int collisionFilterGroup=btBroadphaseProxy::StaticFilter, short int collisionFilterMask=btBroadphaseProxy::AllFilter^btBroadphaseProxy::StaticFilter)
virtual void addRigidBody (btRigidBody *body)
virtual void addRigidBody (btRigidBody *body, short group, short 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
void debugDrawConstraint (btTypedConstraint *constraint)
virtual void debugDrawWorld ()
virtual void setConstraintSolver (btConstraintSolver *solver)
virtual btConstraintSolvergetConstraintSolver ()
virtual int getNumConstraints () const
virtual btTypedConstraintgetConstraint (int index)
virtual const btTypedConstraintgetConstraint (int index) const
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).

Protected Member Functions

virtual void predictUnconstraintMotion (btScalar timeStep)
virtual void integrateTransforms (btScalar timeStep)
virtual void calculateSimulationIslands ()
virtual void solveConstraints (btContactSolverInfo &solverInfo)
void updateActivationState (btScalar timeStep)
void updateActions (btScalar timeStep)
void startProfiling (btScalar timeStep)
virtual void internalSingleStepSimulation (btScalar timeStep)
void createPredictiveContacts (btScalar timeStep)
virtual void saveKinematicState (btScalar timeStep)
void serializeRigidBodies (btSerializer *serializer)
void serializeDynamicsWorldInfo (btSerializer *serializer)

Protected Attributes

btAlignedObjectArray
< btTypedConstraint * > 
m_sortedConstraints
InplaceSolverIslandCallbackm_solverIslandCallback
btConstraintSolverm_constraintSolver
btSimulationIslandManagerm_islandManager
btAlignedObjectArray
< btTypedConstraint * > 
m_constraints
btAlignedObjectArray
< btRigidBody * > 
m_nonStaticRigidBodies
btVector3 m_gravity
btScalar m_localTime
bool m_ownsIslandManager
bool m_ownsConstraintSolver
bool m_synchronizeAllMotionStates
bool m_applySpeculativeContactRestitution
btAlignedObjectArray
< btActionInterface * > 
m_actions
int m_profileTimings
btAlignedObjectArray
< btPersistentManifold * > 
m_predictiveManifolds

Detailed Description

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

Definition at line 37 of file btDiscreteDynamicsWorld.h.


Constructor & Destructor Documentation

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 204 of file btDiscreteDynamicsWorld.cpp.

btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld (  )  [virtual]

Definition at line 240 of file btDiscreteDynamicsWorld.cpp.


Member Function Documentation

void btDiscreteDynamicsWorld::addAction ( btActionInterface action  )  [virtual]

Implements btDynamicsWorld.

Definition at line 666 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::addCharacter ( btActionInterface character  )  [virtual]

obsolete, use addAction instead

Reimplemented from btDynamicsWorld.

Definition at line 687 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::addCollisionObject ( btCollisionObject collisionObject,
short int  collisionFilterGroup = btBroadphaseProxy::StaticFilter,
short int  collisionFilterMask = btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter 
) [virtual]

Reimplemented from btCollisionWorld.

Definition at line 534 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::addConstraint ( btTypedConstraint constraint,
bool  disableCollisionsBetweenLinkedBodies = false 
) [virtual]

Reimplemented from btDynamicsWorld.

Definition at line 649 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::addRigidBody ( btRigidBody body  )  [virtual]

Implements btDynamicsWorld.

Definition at line 555 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::addRigidBody ( btRigidBody body,
short  group,
short  mask 
) [virtual]

Implements btDynamicsWorld.

Definition at line 580 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::addVehicle ( btActionInterface vehicle  )  [virtual]

obsolete, use addAction instead

Reimplemented from btDynamicsWorld.

Definition at line 677 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::applyGravity (  )  [virtual]

apply gravity, call this once per timestep

Definition at line 335 of file btDiscreteDynamicsWorld.cpp.

btDiscreteDynamicsWorld::BT_DECLARE_ALIGNED_ALLOCATOR (  ) 
void btDiscreteDynamicsWorld::calculateSimulationIslands (  )  [protected, virtual]

Definition at line 731 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::clearForces (  )  [virtual]

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

Implements btDynamicsWorld.

Definition at line 322 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::createPredictiveContacts ( btScalar  timeStep  )  [protected]

Definition at line 880 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::debugDrawConstraint ( btTypedConstraint constraint  ) 

Definition at line 1158 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::debugDrawWorld (  )  [virtual]

Implements btDynamicsWorld.

Reimplemented in btSoftRigidDynamicsWorld.

Definition at line 282 of file btDiscreteDynamicsWorld.cpp.

bool btDiscreteDynamicsWorld::getApplySpeculativeContactRestitution (  )  const [inline]

Definition at line 211 of file btDiscreteDynamicsWorld.h.

btCollisionWorld* btDiscreteDynamicsWorld::getCollisionWorld (  )  [inline]

Definition at line 130 of file btDiscreteDynamicsWorld.h.

btTypedConstraint * btDiscreteDynamicsWorld::getConstraint ( int  index  )  [virtual]

Reimplemented from btDynamicsWorld.

Definition at line 1363 of file btDiscreteDynamicsWorld.cpp.

const btTypedConstraint * btDiscreteDynamicsWorld::getConstraint ( int  index  )  const [virtual]

Reimplemented from btDynamicsWorld.

Definition at line 1367 of file btDiscreteDynamicsWorld.cpp.

btConstraintSolver * btDiscreteDynamicsWorld::getConstraintSolver (  )  [virtual]

Implements btDynamicsWorld.

Definition at line 1353 of file btDiscreteDynamicsWorld.cpp.

btVector3 btDiscreteDynamicsWorld::getGravity (  )  const [virtual]

Implements btDynamicsWorld.

Definition at line 529 of file btDiscreteDynamicsWorld.cpp.

int btDiscreteDynamicsWorld::getNumConstraints (  )  const [virtual]

Reimplemented from btDynamicsWorld.

Definition at line 1359 of file btDiscreteDynamicsWorld.cpp.

btSimulationIslandManager* btDiscreteDynamicsWorld::getSimulationIslandManager (  )  [inline]

Definition at line 120 of file btDiscreteDynamicsWorld.h.

const btSimulationIslandManager* btDiscreteDynamicsWorld::getSimulationIslandManager (  )  const [inline]

Definition at line 125 of file btDiscreteDynamicsWorld.h.

bool btDiscreteDynamicsWorld::getSynchronizeAllMotionStates (  )  const [inline]

Definition at line 201 of file btDiscreteDynamicsWorld.h.

virtual btDynamicsWorldType btDiscreteDynamicsWorld::getWorldType (  )  const [inline, virtual]

Implements btDynamicsWorld.

Reimplemented in btSoftRigidDynamicsWorld.

Definition at line 166 of file btDiscreteDynamicsWorld.h.

void btDiscreteDynamicsWorld::integrateTransforms ( btScalar  timeStep  )  [protected, virtual]

this should probably be switched on by default, but it is not well tested yet

Definition at line 976 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::internalSingleStepSimulation ( btScalar  timeStep  )  [protected, virtual]

apply gravity, predict motion

perform collision detection

solve contact and other joint constraints

CallbackTriggers();

integrate transforms

update vehicle simulation

Reimplemented in btSoftRigidDynamicsWorld.

Definition at line 466 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::predictUnconstraintMotion ( btScalar  timeStep  )  [protected, virtual]

Reimplemented in btSoftRigidDynamicsWorld.

Definition at line 1124 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::removeAction ( btActionInterface action  )  [virtual]

Implements btDynamicsWorld.

Definition at line 671 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::removeCharacter ( btActionInterface character  )  [virtual]

obsolete, use removeAction instead

Reimplemented from btDynamicsWorld.

Definition at line 692 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::removeCollisionObject ( btCollisionObject collisionObject  )  [virtual]

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

Reimplemented from btCollisionWorld.

Reimplemented in btSoftRigidDynamicsWorld.

Definition at line 539 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::removeConstraint ( btTypedConstraint constraint  )  [virtual]

Reimplemented from btDynamicsWorld.

Definition at line 659 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::removeRigidBody ( btRigidBody body  )  [virtual]

Implements btDynamicsWorld.

Definition at line 548 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::removeVehicle ( btActionInterface vehicle  )  [virtual]

obsolete, use removeAction instead

Reimplemented from btDynamicsWorld.

Definition at line 682 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::saveKinematicState ( btScalar  timeStep  )  [protected, virtual]

would like to iterate over m_nonStaticRigidBodies, but unfortunately old API allows to switch status _after_ adding kinematic objects to the world fix it for Bullet 3.x release

Definition at line 261 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::serialize ( btSerializer serializer  )  [virtual]

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

Reimplemented from btCollisionWorld.

Reimplemented in btSoftRigidDynamicsWorld.

Definition at line 1453 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::serializeDynamicsWorldInfo ( btSerializer serializer  )  [protected]

Definition at line 1403 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::serializeRigidBodies ( btSerializer serializer  )  [protected]

Definition at line 1374 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::setApplySpeculativeContactRestitution ( bool  enable  )  [inline]

Definition at line 206 of file btDiscreteDynamicsWorld.h.

void btDiscreteDynamicsWorld::setConstraintSolver ( btConstraintSolver solver  )  [virtual]

Implements btDynamicsWorld.

Definition at line 1342 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::setGravity ( const btVector3 gravity  )  [virtual]

Implements btDynamicsWorld.

Definition at line 516 of file btDiscreteDynamicsWorld.cpp.

virtual void btDiscreteDynamicsWorld::setNumTasks ( int  numTasks  )  [inline, virtual]

Definition at line 177 of file btDiscreteDynamicsWorld.h.

void btDiscreteDynamicsWorld::setSynchronizeAllMotionStates ( bool  synchronizeAll  )  [inline]

Definition at line 197 of file btDiscreteDynamicsWorld.h.

void btDiscreteDynamicsWorld::solveConstraints ( btContactSolverInfo solverInfo  )  [protected, virtual]

solve all the constraints for this island

Definition at line 700 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::startProfiling ( btScalar  timeStep  )  [protected]

Definition at line 1143 of file btDiscreteDynamicsWorld.cpp.

int btDiscreteDynamicsWorld::stepSimulation ( btScalar  timeStep,
int  maxSubSteps = 1,
btScalar  fixedTimeStep = btScalar(1.)/btScalar(60.) 
) [virtual]

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

Implements btDynamicsWorld.

Definition at line 395 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::synchronizeMotionStates (  )  [virtual]

Implements btDynamicsWorld.

Definition at line 369 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::synchronizeSingleMotionState ( btRigidBody body  ) 

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

Definition at line 349 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::updateActions ( btScalar  timeStep  )  [protected]

Definition at line 602 of file btDiscreteDynamicsWorld.cpp.

void btDiscreteDynamicsWorld::updateActivationState ( btScalar  timeStep  )  [protected]

Definition at line 613 of file btDiscreteDynamicsWorld.cpp.

virtual void btDiscreteDynamicsWorld::updateVehicles ( btScalar  timeStep  )  [inline, virtual]

obsolete, use updateActions instead

Definition at line 183 of file btDiscreteDynamicsWorld.h.


Member Data Documentation

Definition at line 63 of file btDiscreteDynamicsWorld.h.

Definition at line 61 of file btDiscreteDynamicsWorld.h.

Definition at line 48 of file btDiscreteDynamicsWorld.h.

Definition at line 44 of file btDiscreteDynamicsWorld.h.

Definition at line 52 of file btDiscreteDynamicsWorld.h.

Definition at line 46 of file btDiscreteDynamicsWorld.h.

Definition at line 55 of file btDiscreteDynamicsWorld.h.

Definition at line 50 of file btDiscreteDynamicsWorld.h.

Definition at line 59 of file btDiscreteDynamicsWorld.h.

Definition at line 58 of file btDiscreteDynamicsWorld.h.

Definition at line 67 of file btDiscreteDynamicsWorld.h.

Definition at line 65 of file btDiscreteDynamicsWorld.h.

Definition at line 42 of file btDiscreteDynamicsWorld.h.

Definition at line 41 of file btDiscreteDynamicsWorld.h.

Definition at line 60 of file btDiscreteDynamicsWorld.h.


The documentation for this class was generated from the following files: