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;
@ BT_DISCRETE_DYNAMICS_WORLD
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
Basic interface to allow actions such as vehicles and characters to be updated inside a btDynamicsWor...
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
The btBroadphaseInterface class provides an interface to detect aabb-overlapping object pairs.
btCollisionConfiguration allows to configure Bullet collision detection stack allocator size,...
btCollisionObject can be used to manage collision detection objects.
CollisionWorld is interface and container for the collision detection.
btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete Cc...
btAlignedObjectArray< btPersistentManifold * > m_predictiveManifolds
bool getLatencyMotionStateInterpolation() const
bool m_latencyMotionStateInterpolation
void setSynchronizeAllMotionStates(bool synchronizeAll)
void setLatencyMotionStateInterpolation(bool latencyInterpolation)
Interpolate motion state between previous and current transform, instead of current and next transfor...
void setApplySpeculativeContactRestitution(bool enable)
const btSimulationIslandManager * getSimulationIslandManager() const
virtual void setNumTasks(int numTasks)
bool m_applySpeculativeContactRestitution
btAlignedObjectArray< btTypedConstraint * > m_sortedConstraints
virtual btDynamicsWorldType getWorldType() const
BT_DECLARE_ALIGNED_ALLOCATOR()
bool getApplySpeculativeContactRestitution() const
InplaceSolverIslandCallback * m_solverIslandCallback
bool getSynchronizeAllMotionStates() const
btSimulationIslandManager * m_islandManager
btAlignedObjectArray< btTypedConstraint * > m_constraints
btAlignedObjectArray< btRigidBody * > m_nonStaticRigidBodies
btAlignedObjectArray< btActionInterface * > m_actions
bool m_ownsConstraintSolver
btSimulationIslandManager * getSimulationIslandManager()
btSpinMutex m_predictiveManifoldsMutex
btConstraintSolver * m_constraintSolver
btCollisionWorld * getCollisionWorld()
bool m_synchronizeAllMotionStates
virtual void updateVehicles(btScalar timeStep)
obsolete, use updateActions instead
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
The btDynamicsWorld is the interface class for several dynamics implementation, basic,...
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations.
The btOverlappingPairCache provides an interface for overlapping pair management (add,...
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
The btRigidBody is the main class for rigid body objects.
SimulationIslandManager creates and handles simulation islands, using btUnionFind.
btSpinMutex – lightweight spin-mutex implemented with atomic ops, never puts a thread to sleep becaus...
TypedConstraint is the baseclass for Bullet constraints and vehicles.
btVector3 can be used to represent 3D points and vectors.