17 #ifndef BT_DISCRETE_DYNAMICS_WORLD_H    18 #define BT_DISCRETE_DYNAMICS_WORLD_H    74         virtual void    predictUnconstraintMotion(
btScalar timeStep);
    77         virtual void    integrateTransforms(
btScalar timeStep);
    79         virtual void    calculateSimulationIslands();
    83         virtual void    updateActivationState(
btScalar timeStep);
    85         void    updateActions(
btScalar timeStep);
    87         void    startProfiling(
btScalar timeStep);
    89         virtual void    internalSingleStepSimulation( 
btScalar timeStep);
    91     void releasePredictiveContacts();
    92     void createPredictiveContactsInternal( 
btRigidBody** bodies, 
int numBodies, 
btScalar timeStep );  
    93         virtual void    createPredictiveContacts(
btScalar timeStep);
    95         virtual void    saveKinematicState(
btScalar timeStep);
    99         void    serializeDynamicsWorldInfo(
btSerializer* serializer);
   115         virtual void    synchronizeMotionStates();
   118         void    synchronizeSingleMotionState(
btRigidBody* body);
   120         virtual void    addConstraint(
btTypedConstraint* constraint, 
bool disableCollisionsBetweenLinkedBodies=
false);
   130                 return m_islandManager;
   135                 return m_islandManager;
   143         virtual void    setGravity(
const btVector3& gravity);
   151         virtual void    addRigidBody(
btRigidBody* body, 
int group, 
int mask);
   161         virtual void    debugDrawWorld();
   167         virtual int             getNumConstraints() 
const;
   180         virtual void    clearForces();
   183         virtual void    applyGravity();
   193                 updateActions(timeStep);
   207                 m_synchronizeAllMotionStates = synchronizeAll;
   211                 return m_synchronizeAllMotionStates;
   216                 m_applySpeculativeContactRestitution = enable;
   221                 return m_applySpeculativeContactRestitution;
   231                 m_latencyMotionStateInterpolation = latencyInterpolation;
   235                 return m_latencyMotionStateInterpolation;
   239 #endif //BT_DISCRETE_DYNAMICS_WORLD_H btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
btSimulationIslandManager * m_islandManager
btAlignedObjectArray< btRigidBody * > m_nonStaticRigidBodies
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
void setSynchronizeAllMotionStates(bool synchronizeAll)
btAlignedObjectArray< btTypedConstraint * > m_sortedConstraints
btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete Cc...
SimulationIslandManager creates and handles simulation islands, using btUnionFind. 
The btDynamicsWorld is the interface class for several dynamics implementation, basic, discrete, parallel, and continuous etc. 
btCollisionConfiguration allows to configure Bullet collision detection stack allocator size...
btAlignedObjectArray< btActionInterface * > m_actions
btSimulationIslandManager * getSimulationIslandManager()
virtual void updateVehicles(btScalar timeStep)
obsolete, use updateActions instead 
btSpinMutex – lightweight spin-mutex implemented with atomic ops, never puts a thread to sleep beca...
bool m_ownsConstraintSolver
Basic interface to allow actions such as vehicles and characters to be updated inside a btDynamicsWor...
The btOverlappingPairCache provides an interface for overlapping pair management (add, remove, storage), used by the btBroadphaseInterface broadphases. 
btCollisionWorld * getCollisionWorld()
bool getApplySpeculativeContactRestitution() const
btCollisionObject can be used to manage collision detection objects. 
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations...
virtual btDynamicsWorldType getWorldType() const
btAlignedObjectArray< btPersistentManifold * > m_predictiveManifolds
The btRigidBody is the main class for rigid body objects. 
The btBroadphaseInterface class provides an interface to detect aabb-overlapping object pairs...
btVector3 can be used to represent 3D points and vectors. 
#define ATTRIBUTE_ALIGNED16(a)
CollisionWorld is interface and container for the collision detection. 
bool getLatencyMotionStateInterpolation() const
bool m_latencyMotionStateInterpolation
const btSimulationIslandManager * getSimulationIslandManager() const
TypedConstraint is the baseclass for Bullet constraints and vehicles. 
bool m_synchronizeAllMotionStates
virtual void setNumTasks(int numTasks)
#define BT_DECLARE_ALIGNED_ALLOCATOR()
InplaceSolverIslandCallback * m_solverIslandCallback
btSpinMutex m_predictiveManifoldsMutex
bool m_applySpeculativeContactRestitution
btConstraintSolver * m_constraintSolver
void setApplySpeculativeContactRestitution(bool enable)
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
void setLatencyMotionStateInterpolation(bool latencyInterpolation)
Interpolate motion state between previous and current transform, instead of current and next transfor...
bool getSynchronizeAllMotionStates() const
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btAlignedObjectArray< btTypedConstraint * > m_constraints