|
| btDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphase, btCollisionConfiguration *collisionConfiguration) |
|
virtual | ~btDynamicsWorld () |
|
virtual int | stepSimulation (btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))=0 |
| stepSimulation proceeds the simulation over 'timeStep', units in preferably in seconds.
|
|
virtual void | debugDrawWorld ()=0 |
|
virtual void | addConstraint (btTypedConstraint *constraint, bool disableCollisionsBetweenLinkedBodies=false) |
|
virtual void | removeConstraint (btTypedConstraint *constraint) |
|
virtual void | addAction (btActionInterface *action)=0 |
|
virtual void | removeAction (btActionInterface *action)=0 |
|
virtual void | setGravity (const btVector3 &gravity)=0 |
|
virtual btVector3 | getGravity () const =0 |
|
virtual void | synchronizeMotionStates ()=0 |
|
virtual void | addRigidBody (btRigidBody *body)=0 |
|
virtual void | addRigidBody (btRigidBody *body, int group, int mask)=0 |
|
virtual void | removeRigidBody (btRigidBody *body)=0 |
|
virtual void | setConstraintSolver (btConstraintSolver *solver)=0 |
|
virtual btConstraintSolver * | getConstraintSolver ()=0 |
|
virtual int | getNumConstraints () const |
|
virtual btTypedConstraint * | getConstraint (int index) |
|
virtual const btTypedConstraint * | getConstraint (int index) const |
|
virtual btDynamicsWorldType | getWorldType () const =0 |
|
virtual void | clearForces ()=0 |
|
void | setInternalTickCallback (btInternalTickCallback cb, void *worldUserInfo=0, bool isPreTick=false) |
| Set the callback for when an internal tick (simulation substep) happens, optional user info.
|
|
void | setWorldUserInfo (void *worldUserInfo) |
|
void * | getWorldUserInfo () const |
|
btContactSolverInfo & | getSolverInfo () |
|
const btContactSolverInfo & | getSolverInfo () const |
|
virtual void | addVehicle (btActionInterface *vehicle) |
| obsolete, use addAction instead.
|
|
virtual void | removeVehicle (btActionInterface *vehicle) |
| obsolete, use removeAction instead
|
|
virtual void | addCharacter (btActionInterface *character) |
| obsolete, use addAction instead.
|
|
virtual void | removeCharacter (btActionInterface *character) |
| obsolete, use removeAction instead
|
|
| btCollisionWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphasePairCache, btCollisionConfiguration *collisionConfiguration) |
| for debug drawing
|
|
virtual | ~btCollisionWorld () |
|
void | setBroadphase (btBroadphaseInterface *pairCache) |
|
const btBroadphaseInterface * | getBroadphase () const |
|
btBroadphaseInterface * | getBroadphase () |
|
btOverlappingPairCache * | getPairCache () |
|
btDispatcher * | getDispatcher () |
|
const btDispatcher * | getDispatcher () const |
|
void | updateSingleAabb (btCollisionObject *colObj) |
|
virtual void | updateAabbs () |
|
virtual void | computeOverlappingPairs () |
| the computeOverlappingPairs is usually already called by performDiscreteCollisionDetection (or stepSimulation) it can be useful to use if you perform ray tests without collision detection/simulation
|
|
virtual void | setDebugDrawer (btIDebugDraw *debugDrawer) |
|
virtual btIDebugDraw * | getDebugDrawer () |
|
virtual void | debugDrawObject (const btTransform &worldTransform, const btCollisionShape *shape, const btVector3 &color) |
|
int | getNumCollisionObjects () const |
|
virtual void | rayTest (const btVector3 &rayFromWorld, const btVector3 &rayToWorld, RayResultCallback &resultCallback) const |
| rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback.
|
|
void | convexSweepTest (const btConvexShape *castShape, const btTransform &from, const btTransform &to, ConvexResultCallback &resultCallback, btScalar allowedCcdPenetration=btScalar(0.)) const |
| convexTest performs a swept convex cast on all objects in the btCollisionWorld, and calls the resultCallback This allows for several queries: first hit, all hits, any hit, dependent on the value return by the callback.
|
|
void | contactTest (btCollisionObject *colObj, ContactResultCallback &resultCallback) |
| contactTest performs a discrete collision test between colObj against all objects in the btCollisionWorld, and calls the resultCallback.
|
|
void | contactPairTest (btCollisionObject *colObjA, btCollisionObject *colObjB, ContactResultCallback &resultCallback) |
| contactTest performs a discrete collision test between two collision objects and calls the resultCallback if overlap if detected.
|
|
virtual void | addCollisionObject (btCollisionObject *collisionObject, int collisionFilterGroup=btBroadphaseProxy::DefaultFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter) |
|
virtual void | refreshBroadphaseProxy (btCollisionObject *collisionObject) |
|
btCollisionObjectArray & | getCollisionObjectArray () |
|
const btCollisionObjectArray & | getCollisionObjectArray () const |
|
virtual void | removeCollisionObject (btCollisionObject *collisionObject) |
|
virtual void | performDiscreteCollisionDetection () |
|
btDispatcherInfo & | getDispatchInfo () |
|
const btDispatcherInfo & | getDispatchInfo () const |
|
bool | getForceUpdateAllAabbs () const |
|
void | setForceUpdateAllAabbs (bool forceUpdateAllAabbs) |
|
virtual void | serialize (btSerializer *serializer) |
| Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (Bullet/Demos/SerializeDemo)
|
|
The btDynamicsWorld is the interface class for several dynamics implementation, basic, discrete, parallel, and continuous etc.
Definition at line 42 of file btDynamicsWorld.h.
stepSimulation proceeds the simulation over 'timeStep', units in preferably in seconds.
By default, Bullet will subdivide the timestep in constant substeps of each 'fixedTimeStep'. in order to keep the simulation real-time, the maximum number of substeps can be clamped to 'maxSubSteps'. You can disable subdividing the timestep/substepping by passing maxSubSteps=0 as second argument to stepSimulation, but in that case you have to keep the timeStep constant.
Implemented in btDiscreteDynamicsWorldMt, btDiscreteDynamicsWorld, btSimpleDynamicsWorld, and btDeformableMultiBodyDynamicsWorld.