41 m_constraintSolver(constraintSolver),
42 m_ownsConstraintSolver(false),
const btCollisionShape * getCollisionShape() const
static const btRigidBody * upcast(const btCollisionObject *colObj)
to keep collision detection and dynamics separate we don't store a rigidbody pointer but a rigidbody ...
virtual int stepSimulation(btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))
maxSubSteps/fixedTimeStep for interpolation is currently ignored for btSimpleDynamicsWorld, use btDiscreteDynamicsWorld instead
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
void integrateTransforms(btScalar timeStep)
virtual void updateAabbs()
void btBulletDynamicsProbe()
void predictIntegratedTransform(btScalar step, btTransform &predictedTransform)
continuous collision detection needs prediction
virtual void addCollisionObject(btCollisionObject *collisionObject, short int collisionFilterGroup=btBroadphaseProxy::DefaultFilter, short int collisionFilterMask=btBroadphaseProxy::AllFilter)
The btDynamicsWorld is the interface class for several dynamics implementation, basic, discrete, parallel, and continuous etc.
btCollisionConfiguration allows to configure Bullet collision detection stack allocator size...
virtual void removeRigidBody(btRigidBody *body)
btCollisionObjectArray & getCollisionObjectArray()
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
int getNumCollisionObjects() const
btCollisionDispatcher supports algorithms that handle ConvexConvex and ConvexConcave collision pairs...
Basic interface to allow actions such as vehicles and characters to be updated inside a btDynamicsWor...
virtual btVector3 getGravity() const
btDispatcher * m_dispatcher1
class btIDebugDraw * m_debugDraw
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const =0
getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t...
virtual void removeCollisionObject(btCollisionObject *collisionObject)
removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise ca...
virtual void synchronizeMotionStates()
const btTransform & getInterpolationWorldTransform() const
bool m_ownsConstraintSolver
void integrateVelocities(btScalar step)
btTransform & getWorldTransform()
int size() const
return the number of elements in the array
btBroadphaseProxy * getBroadphaseHandle()
btIDebugDraw * m_debugDrawer
virtual void removeAction(btActionInterface *action)
virtual btIDebugDraw * getDebugDrawer()
bool isStaticObject() const
#define btAlignedFree(ptr)
btCollisionObject can be used to manage collision detection objects.
void predictUnconstraintMotion(btScalar timeStep)
The btRigidBody is the main class for rigid body objects.
virtual void removeCollisionObject(btCollisionObject *collisionObject)
The btBroadphaseInterface class provides an interface to detect aabb-overlapping object pairs...
void proceedToTransform(const btTransform &newTrans)
virtual ~btSimpleDynamicsWorld()
virtual void debugDrawWorld()
btVector3 can be used to represent 3D points and vectors.
virtual int getNumManifolds() const =0
const btBroadphaseInterface * getBroadphase() const
virtual void allSolved(const btContactSolverInfo &, class btIDebugDraw *)
void applyDamping(btScalar timeStep)
applyDamping damps the velocity, using the given m_linearDamping and m_angularDamping ...
virtual btConstraintSolver * getConstraintSolver()
btDispatcherInfo & getDispatchInfo()
virtual void prepareSolve(int, int)
virtual void setConstraintSolver(btConstraintSolver *solver)
btAlignedObjectArray< btCollisionObject * > m_collisionObjects
virtual void performDiscreteCollisionDetection()
virtual void setAabb(btBroadphaseProxy *proxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)=0
virtual void setGravity(const btVector3 &gravity)
btMotionState * getMotionState()
btSimpleDynamicsWorld(btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration)
this btSimpleDynamicsWorld constructor creates dispatcher, broadphase pairCache and constraintSolver ...
virtual void clearForces()
virtual void addRigidBody(btRigidBody *body)
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
btConstraintSolver * m_constraintSolver
const btCollisionShape * getCollisionShape() const
virtual void addAction(btActionInterface *action)
int getActivationState() const
virtual void setWorldTransform(const btTransform &worldTrans)=0
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
void setGravity(const btVector3 &acceleration)