16#ifndef BT_MULTIBODY_DYNAMICS_WORLD_H
17#define BT_MULTIBODY_DYNAMICS_WORLD_H
22#define BT_USE_VIRTUAL_CLEARFORCES_AND_GRAVITY
25class btMultiBodyConstraint;
26class btMultiBodyConstraintSolver;
62 virtual void addMultiBody(
btMultiBody* body,
int group = btBroadphaseProxy::DefaultFilter,
int mask = btBroadphaseProxy::AllFilter);
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
SIMD_FORCE_INLINE int size() const
return the number of elements in the array
virtual btMultiBodyConstraint * getMultiBodyConstraint(int constraintIndex)
btAlignedObjectArray< btMultiBodyConstraint * > m_multiBodyConstraints
virtual void clearForces()
virtual void solveInternalConstraints(btContactSolverInfo &solverInfo)
virtual void updateActivationState(btScalar timeStep)
btAlignedObjectArray< btQuaternion > m_scratch_world_to_local
btMultiBody * getMultiBody(int mbIndex)
btAlignedObjectArray< btQuaternion > m_scratch_world_to_local1
btAlignedObjectArray< btMatrix3x3 > m_scratch_m
MultiBodyInplaceSolverIslandCallback * m_solverMultiBodyIslandCallback
virtual void serialize(btSerializer *serializer)
virtual ~btMultiBodyDynamicsWorld()
btAlignedObjectArray< btVector3 > m_scratch_local_origin1
virtual void serializeMultiBodies(btSerializer *serializer)
virtual void addMultiBodyConstraint(btMultiBodyConstraint *constraint)
btAlignedObjectArray< btVector3 > m_scratch_v
const btMultiBody * getMultiBody(int mbIndex) const
virtual void predictUnconstraintMotion(btScalar timeStep)
virtual void calculateSimulationIslands()
virtual void removeMultiBodyConstraint(btMultiBodyConstraint *constraint)
void predictMultiBodyTransforms(btScalar timeStep)
virtual void integrateTransforms(btScalar timeStep)
btMultiBodyConstraintSolver * m_multiBodyConstraintSolver
btAlignedObjectArray< btMultiBody * > m_multiBodies
virtual void getAnalyticsData(btAlignedObjectArray< struct btSolverAnalyticsData > &m_islandAnalyticsData) const
virtual void solveConstraints(btContactSolverInfo &solverInfo)
void integrateMultiBodyTransforms(btScalar timeStep)
virtual void debugDrawMultiBodyConstraint(btMultiBodyConstraint *constraint)
virtual int getNumMultibodies() const
virtual void solveExternalForces(btContactSolverInfo &solverInfo)
virtual void setConstraintSolver(btConstraintSolver *solver)
btAlignedObjectArray< btVector3 > m_scratch_local_origin
virtual void clearMultiBodyForces()
virtual int getNumMultiBodyConstraints() const
btAlignedObjectArray< btScalar > m_scratch_r
virtual void removeMultiBody(btMultiBody *body)
btAlignedObjectArray< btMultiBodyConstraint * > m_sortedMultiBodyConstraints
virtual void addMultiBody(btMultiBody *body, int group=btBroadphaseProxy::DefaultFilter, int mask=btBroadphaseProxy::AllFilter)
btMultiBodyDynamicsWorld(btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btMultiBodyConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
virtual void clearMultiBodyConstraintForces()
virtual void applyGravity()
virtual void setMultiBodyConstraintSolver(btMultiBodyConstraintSolver *solver)
virtual void debugDrawWorld()
virtual const btMultiBodyConstraint * getMultiBodyConstraint(int constraintIndex) const