Bullet Collision Detection & Physics Library
|
Go to the documentation of this file.
58 #endif // #if BT_THREADSAFE
76 for (
int i = 0; i < numSolvers; ++i)
91 for (
int i = 0; i < numSolvers; ++i)
96 init(&solvers[0], numSolvers);
102 init(solvers, numSolvers);
108 for (
int i = 0; i <
m_solvers.size(); ++i)
128 ts->
solver->
solveGroup(bodies, numBodies, manifolds, numManifolds, constraints, numConstraints, info, debugDrawer, dispatcher);
135 for (
int i = 0; i <
m_solvers.size(); ++i)
199 for (
int i = iBegin; i < iEnd; ++i)
260 scheduler->sleepWorkerThreadsHint();
btIDebugDraw * m_debugDrawer
btAlignedObjectArray< btTypedConstraint * > m_constraints
TypedConstraint is the baseclass for Bullet constraints and vehicles.
virtual void solveConstraints(btContactSolverInfo &solverInfo) BT_OVERRIDE
btCollisionObject can be used to manage collision detection objects.
void setMinimumSolverBatchSize(int sz)
The btRigidBody is the main class for rigid body objects.
virtual void reset()=0
clear internal cached data and reset random seed
#define btAlignedFree(ptr)
void predictIntegratedTransform(btScalar step, btTransform &predictedTransform)
continuous collision detection needs prediction
btAlignedObjectArray< btRigidBody * > m_nonStaticRigidBodies
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
virtual void integrateTransforms(btScalar timeStep) BT_OVERRIDE
btSimulationIslandManager * m_islandManager
btDispatcher * m_dispatcher
virtual void predictUnconstraintMotion(btScalar timeStep) BT_OVERRIDE
virtual void createPredictiveContacts(btScalar timeStep) BT_OVERRIDE
#define btAlignedAlloc(size, alignment)
void releasePredictiveContacts()
btIDebugDraw * m_debugDrawer
btConstraintSolverType m_solverType
btContactSolverInfo * m_solverInfo
bool isStaticOrKinematicObject() const
ThreadSolver * getAndLockThreadSolver()
btConstraintSolverPoolMt
void init(btConstraintSolver **solvers, int numSolvers)
virtual btConstraintSolverType getSolverType() const =0
virtual btScalar solveGroup(btCollisionObject **bodies, int numBodies, btPersistentManifold **manifold, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &info, class btIDebugDraw *debugDrawer, btDispatcher *dispatcher)=0
solve a group of constraints
void forLoop(int iBegin, int iEnd) const BT_OVERRIDE
btAlignedObjectArray< ThreadSolver > m_solvers
btCollisionWorld * getCollisionWorld()
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations.
btITaskScheduler * btGetTaskScheduler()
const btTransform & getInterpolationWorldTransform() const
virtual void allSolved(const btContactSolverInfo &, class btIDebugDraw *)
int getNumCollisionObjects() const
btConstraintSolver * m_constraintSolverMt
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
virtual int stepSimulation(btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
btConstraintSolver * m_solverPool
void applyDamping(btScalar timeStep)
applyDamping damps the velocity, using the given m_linearDamping and m_angularDamping
btConstraintSolver * m_solverMt
btContactSolverInfo m_solverInfo
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
btDiscreteDynamicsWorldMt(btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolverPoolMt *solverPool, btConstraintSolver *constraintSolverMt, btCollisionConfiguration *collisionConfiguration)
btDiscreteDynamicsWorldMt
virtual ~btSimulationIslandManager()
void btParallelFor(int iBegin, int iEnd, int grainSize, const btIParallelForBody &body)
The btBroadphaseInterface class provides an interface to detect aabb-overlapping object pairs.
The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (...
btConstraintSolver * m_constraintSolver
unsigned int btGetCurrentThreadIndex()
virtual void buildAndProcessIslands(btDispatcher *dispatcher, btCollisionWorld *collisionWorld, btAlignedObjectArray< btTypedConstraint * > &constraints, const SolverParams &solverParams)
SimulationIslandManagerMt – Multithread capable version of SimulationIslandManager Splits the world u...
virtual ~btConstraintSolverPoolMt()
btDispatcher * getDispatcher()
btConstraintSolverPoolMt - masquerades as a constraint solver, but really it is a threadsafe pool of ...
btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete Cc...
void push_back(const T &_Val)
virtual void prepareSolve(int, int)
btCollisionConfiguration allows to configure Bullet collision detection stack allocator size,...
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
virtual ~btDiscreteDynamicsWorldMt()
btRigidBody ** rigidBodies
virtual void reset() BT_OVERRIDE
clear internal cached data and reset random seed
btConstraintSolverPoolMt(int numSolvers)
virtual int stepSimulation(btScalar timeStep, int maxSubSteps, btScalar fixedTimeStep) BT_OVERRIDE
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
int size() const
return the number of elements in the array
btConstraintSolver * solver