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