|
Bullet Collision Detection & Physics Library
|
Go to the documentation of this file.
120 #endif // #if BT_THREADSAFE
138 for (
int i = 0; i < numSolvers; ++i )
142 if ( numSolvers > 0 )
153 for (
int i = 0; i < numSolvers; ++i )
158 init( &solvers[ 0 ], numSolvers );
164 init( solvers, numSolvers );
170 for (
int i = 0; i <
m_solvers.size(); ++i )
191 ts->
solver->
solveGroup( bodies, numBodies, manifolds, numManifolds, constraints, numConstraints, info, debugDrawer, dispatcher );
198 for (
int i = 0; i <
m_solvers.size(); ++i )
270 for (
int i = iBegin; i < iEnd; ++i )
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
virtual btIDebugDraw * getDebugDrawer()
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
virtual void predictUnconstraintMotion(btScalar timeStep) BT_OVERRIDE
virtual void createPredictiveContacts(btScalar timeStep) BT_OVERRIDE
@ BT_SEQUENTIAL_IMPULSE_SOLVER
#define btAlignedAlloc(size, alignment)
void releasePredictiveContacts()
btConstraintSolverType m_solverType
bool m_ownsConstraintSolver
virtual void processIsland(btCollisionObject **bodies, int numBodies, btPersistentManifold **manifolds, int numManifolds, btTypedConstraint **constraints, int numConstraints, int islandId)
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.
The StackAlloc class provides some fast stack-based memory allocator (LIFO last-in first-out)
btIDebugDraw * m_debugDrawer
const btTransform & getInterpolationWorldTransform() const
virtual void allSolved(const btContactSolverInfo &, class btIDebugDraw *)
int getNumCollisionObjects() const
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
void applyDamping(btScalar timeStep)
applyDamping damps the velocity, using the given m_linearDamping and m_angularDamping
InplaceSolverIslandCallbackMt & operator=(InplaceSolverIslandCallbackMt &other)
btContactSolverInfo m_solverInfo
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
btConstraintSolver * m_solver
#define SIMD_FORCE_INLINE
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.
InplaceSolverIslandCallbackMt(btConstraintSolver *solver, btStackAlloc *stackAlloc, btDispatcher *dispatcher)
The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (...
btConstraintSolver * m_constraintSolver
unsigned int btGetCurrentThreadIndex()
btDispatcher * m_dispatcher
SimulationIslandManagerMt – Multithread capable version of SimulationIslandManager Splits the world...
virtual ~btConstraintSolverPoolMt()
void setup(btContactSolverInfo *solverInfo, btIDebugDraw *debugDrawer)
InplaceSolverIslandCallbackMt * m_solverIslandCallbackMt
virtual ~btConstraintSolver()
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
btContactSolverInfo * m_solverInfo
btConstraintSolverPoolMt(int numSolvers)
btDiscreteDynamicsWorldMt(btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolverPoolMt *constraintSolver, btCollisionConfiguration *collisionConfiguration)
btDiscreteDynamicsWorldMt
int size() const
return the number of elements in the array
btConstraintSolver * solver
virtual void buildAndProcessIslands(btDispatcher *dispatcher, btCollisionWorld *collisionWorld, btAlignedObjectArray< btTypedConstraint * > &constraints, IslandCallback *callback)