16#ifndef BT_DISCRETE_DYNAMICS_WORLD_MT_H
17#define BT_DISCRETE_DYNAMICS_WORLD_MT_H
58 const static size_t kCacheLineSize = 128;
63 char _cachelinePadding[kCacheLineSize -
sizeof(
btSpinMutex) -
sizeof(
void*)];
65 btAlignedObjectArray<ThreadSolver> m_solvers;
68 ThreadSolver* getAndLockThreadSolver();
69 void init(btConstraintSolver** solvers,
int numSolvers);
btConstraintSolverType
btConstraintSolver provides solver interface
btDiscreteDynamicsWorldMt(btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolverPoolMt *solverPool, btConstraintSolver *constraintSolverMt, btCollisionConfiguration *collisionConfiguration)
virtual void solveConstraints(btContactSolverInfo &solverInfo)
virtual void createPredictiveContacts(btScalar timeStep)
btDiscreteDynamicsWorld(btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete thos...
virtual void predictUnconstraintMotion(btScalar timeStep)
virtual void integrateTransforms(btScalar timeStep)
virtual int stepSimulation(btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
#define BT_DECLARE_ALIGNED_ALLOCATOR()
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint ** constraints
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint int numConstraints
btSequentialImpulseConstraintSolverMt int numBodies
btSequentialImpulseConstraintSolverMt int btPersistentManifold int numManifolds
btTypedConstraint(btTypedConstraintType type, btRigidBody &rbA)
virtual void reset() BT_OVERRIDE
clear internal cached data and reset random seed
virtual btConstraintSolverType getSolverType() const BT_OVERRIDE
virtual btScalar solveGroup(btCollisionObject **bodies, int numBodies, btPersistentManifold **manifolds, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &info, btIDebugDraw *debugDrawer, btDispatcher *dispatcher) BT_OVERRIDE
solve a group of constraints
btConstraintSolverPoolMt(int numSolvers)