|
Bullet Collision Detection & Physics Library
|
btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController More...
#include <btDiscreteDynamicsWorld.h>


Public Member Functions | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btDiscreteDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration) | |
| this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those More... | |
| virtual | ~btDiscreteDynamicsWorld () |
| virtual int | stepSimulation (btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.)) |
| if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's More... | |
| virtual void | synchronizeMotionStates () |
| void | synchronizeSingleMotionState (btRigidBody *body) |
| this can be useful to synchronize a single rigid body -> graphics object More... | |
| virtual void | addConstraint (btTypedConstraint *constraint, bool disableCollisionsBetweenLinkedBodies=false) |
| virtual void | removeConstraint (btTypedConstraint *constraint) |
| virtual void | addAction (btActionInterface *) |
| virtual void | removeAction (btActionInterface *) |
| btSimulationIslandManager * | getSimulationIslandManager () |
| const btSimulationIslandManager * | getSimulationIslandManager () const |
| btCollisionWorld * | getCollisionWorld () |
| virtual void | setGravity (const btVector3 &gravity) |
| virtual btVector3 | getGravity () const |
| virtual void | addCollisionObject (btCollisionObject *collisionObject, short int collisionFilterGroup=btBroadphaseProxy::StaticFilter, short int collisionFilterMask=btBroadphaseProxy::AllFilter^btBroadphaseProxy::StaticFilter) |
| virtual void | addRigidBody (btRigidBody *body) |
| virtual void | addRigidBody (btRigidBody *body, short group, short mask) |
| virtual void | removeRigidBody (btRigidBody *body) |
| virtual void | removeCollisionObject (btCollisionObject *collisionObject) |
| removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject More... | |
| void | debugDrawConstraint (btTypedConstraint *constraint) |
| virtual void | debugDrawWorld () |
| virtual void | setConstraintSolver (btConstraintSolver *solver) |
| virtual btConstraintSolver * | getConstraintSolver () |
| virtual int | getNumConstraints () const |
| virtual btTypedConstraint * | getConstraint (int index) |
| virtual const btTypedConstraint * | getConstraint (int index) const |
| virtual btDynamicsWorldType | getWorldType () const |
| virtual void | clearForces () |
| the forces on each rigidbody is accumulating together with gravity. clear this after each timestep. More... | |
| virtual void | applyGravity () |
| apply gravity, call this once per timestep More... | |
| virtual void | setNumTasks (int numTasks) |
| virtual void | updateVehicles (btScalar timeStep) |
| obsolete, use updateActions instead More... | |
| virtual void | addVehicle (btActionInterface *vehicle) |
| obsolete, use addAction instead More... | |
| virtual void | removeVehicle (btActionInterface *vehicle) |
| obsolete, use removeAction instead More... | |
| virtual void | addCharacter (btActionInterface *character) |
| obsolete, use addAction instead More... | |
| virtual void | removeCharacter (btActionInterface *character) |
| obsolete, use removeAction instead More... | |
| void | setSynchronizeAllMotionStates (bool synchronizeAll) |
| bool | getSynchronizeAllMotionStates () const |
| void | setApplySpeculativeContactRestitution (bool enable) |
| bool | getApplySpeculativeContactRestitution () const |
| virtual void | serialize (btSerializer *serializer) |
| Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo) More... | |
Public Member Functions inherited from btDynamicsWorld | |
| btDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphase, btCollisionConfiguration *collisionConfiguration) | |
| virtual | ~btDynamicsWorld () |
| void | setInternalTickCallback (btInternalTickCallback cb, void *worldUserInfo=0, bool isPreTick=false) |
| Set the callback for when an internal tick (simulation substep) happens, optional user info. More... | |
| void | setWorldUserInfo (void *worldUserInfo) |
| void * | getWorldUserInfo () const |
| btContactSolverInfo & | getSolverInfo () |
Public Member Functions inherited from btCollisionWorld | |
| btCollisionWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphasePairCache, btCollisionConfiguration *collisionConfiguration) | |
| for debug drawing More... | |
| 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 More... | |
| 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. More... | |
| 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. More... | |
| void | contactTest (btCollisionObject *colObj, ContactResultCallback &resultCallback) |
| contactTest performs a discrete collision test between colObj against all objects in the btCollisionWorld, and calls the resultCallback. More... | |
| 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. More... | |
| btCollisionObjectArray & | getCollisionObjectArray () |
| const btCollisionObjectArray & | getCollisionObjectArray () const |
| virtual void | performDiscreteCollisionDetection () |
| btDispatcherInfo & | getDispatchInfo () |
| const btDispatcherInfo & | getDispatchInfo () const |
| bool | getForceUpdateAllAabbs () const |
| void | setForceUpdateAllAabbs (bool forceUpdateAllAabbs) |
Protected Member Functions | |
| virtual void | predictUnconstraintMotion (btScalar timeStep) |
| virtual void | integrateTransforms (btScalar timeStep) |
| virtual void | calculateSimulationIslands () |
| virtual void | solveConstraints (btContactSolverInfo &solverInfo) |
| void | updateActivationState (btScalar timeStep) |
| void | updateActions (btScalar timeStep) |
| void | startProfiling (btScalar timeStep) |
| virtual void | internalSingleStepSimulation (btScalar timeStep) |
| void | createPredictiveContacts (btScalar timeStep) |
| virtual void | saveKinematicState (btScalar timeStep) |
| void | serializeRigidBodies (btSerializer *serializer) |
| void | serializeDynamicsWorldInfo (btSerializer *serializer) |
Additional Inherited Members | |
Static Public Member Functions inherited from btCollisionWorld | |
| static void | rayTestSingle (const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, RayResultCallback &resultCallback) |
| rayTestSingle performs a raycast call and calls the resultCallback. More... | |
| static void | rayTestSingleInternal (const btTransform &rayFromTrans, const btTransform &rayToTrans, const btCollisionObjectWrapper *collisionObjectWrap, RayResultCallback &resultCallback) |
| static void | objectQuerySingle (const btConvexShape *castShape, const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, ConvexResultCallback &resultCallback, btScalar allowedPenetration) |
| objectQuerySingle performs a collision detection query and calls the resultCallback. It is used internally by rayTest. More... | |
| static void | objectQuerySingleInternal (const btConvexShape *castShape, const btTransform &convexFromTrans, const btTransform &convexToTrans, const btCollisionObjectWrapper *colObjWrap, ConvexResultCallback &resultCallback, btScalar allowedPenetration) |
btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController
Definition at line 37 of file btDiscreteDynamicsWorld.h.
| btDiscreteDynamicsWorld::btDiscreteDynamicsWorld | ( | btDispatcher * | dispatcher, |
| btBroadphaseInterface * | pairCache, | ||
| btConstraintSolver * | constraintSolver, | ||
| btCollisionConfiguration * | collisionConfiguration | ||
| ) |
this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those
Definition at line 204 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Definition at line 240 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 666 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
obsolete, use addAction instead
Reimplemented from btDynamicsWorld.
Definition at line 687 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Reimplemented from btCollisionWorld.
Definition at line 534 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Reimplemented from btDynamicsWorld.
Definition at line 649 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 555 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 580 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
obsolete, use addAction instead
Reimplemented from btDynamicsWorld.
Definition at line 677 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
apply gravity, call this once per timestep
Definition at line 335 of file btDiscreteDynamicsWorld.cpp.
| btDiscreteDynamicsWorld::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
|
protectedvirtual |
Definition at line 731 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.
Implements btDynamicsWorld.
Definition at line 322 of file btDiscreteDynamicsWorld.cpp.
|
protected |
Definition at line 880 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::debugDrawConstraint | ( | btTypedConstraint * | constraint) |
Definition at line 1158 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 282 of file btDiscreteDynamicsWorld.cpp.
|
inline |
Definition at line 211 of file btDiscreteDynamicsWorld.h.
|
inline |
Definition at line 130 of file btDiscreteDynamicsWorld.h.
|
virtual |
Reimplemented from btDynamicsWorld.
Definition at line 1363 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Reimplemented from btDynamicsWorld.
Definition at line 1367 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 1353 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 529 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Reimplemented from btDynamicsWorld.
Definition at line 1359 of file btDiscreteDynamicsWorld.cpp.
|
inline |
Definition at line 120 of file btDiscreteDynamicsWorld.h.
|
inline |
Definition at line 125 of file btDiscreteDynamicsWorld.h.
|
inline |
Definition at line 201 of file btDiscreteDynamicsWorld.h.
|
inlinevirtual |
Implements btDynamicsWorld.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 166 of file btDiscreteDynamicsWorld.h.
|
protectedvirtual |
this should probably be switched on by default, but it is not well tested yet
Definition at line 976 of file btDiscreteDynamicsWorld.cpp.
|
protectedvirtual |
apply gravity, predict motion
perform collision detection
solve contact and other joint constraints
CallbackTriggers();
integrate transforms
update vehicle simulation
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 466 of file btDiscreteDynamicsWorld.cpp.
|
protectedvirtual |
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 1124 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 671 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
obsolete, use removeAction instead
Reimplemented from btDynamicsWorld.
Definition at line 692 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject
Reimplemented from btCollisionWorld.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 539 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Reimplemented from btDynamicsWorld.
Definition at line 659 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 548 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
obsolete, use removeAction instead
Reimplemented from btDynamicsWorld.
Definition at line 682 of file btDiscreteDynamicsWorld.cpp.
|
protectedvirtual |
would like to iterate over m_nonStaticRigidBodies, but unfortunately old API allows to switch status after adding kinematic objects to the world fix it for Bullet 3.x release
Definition at line 261 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo)
Reimplemented from btCollisionWorld.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 1453 of file btDiscreteDynamicsWorld.cpp.
|
protected |
Definition at line 1403 of file btDiscreteDynamicsWorld.cpp.
|
protected |
Definition at line 1374 of file btDiscreteDynamicsWorld.cpp.
|
inline |
Definition at line 206 of file btDiscreteDynamicsWorld.h.
|
virtual |
Implements btDynamicsWorld.
Definition at line 1342 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 516 of file btDiscreteDynamicsWorld.cpp.
|
inlinevirtual |
Definition at line 177 of file btDiscreteDynamicsWorld.h.
|
inline |
Definition at line 197 of file btDiscreteDynamicsWorld.h.
|
protectedvirtual |
solve all the constraints for this island
Definition at line 700 of file btDiscreteDynamicsWorld.cpp.
|
protected |
Definition at line 1143 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
Implements btDynamicsWorld.
Definition at line 395 of file btDiscreteDynamicsWorld.cpp.
|
virtual |
Implements btDynamicsWorld.
Definition at line 369 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::synchronizeSingleMotionState | ( | btRigidBody * | body) |
this can be useful to synchronize a single rigid body -> graphics object
Definition at line 349 of file btDiscreteDynamicsWorld.cpp.
|
protected |
Definition at line 602 of file btDiscreteDynamicsWorld.cpp.
|
protected |
Definition at line 613 of file btDiscreteDynamicsWorld.cpp.
|
inlinevirtual |
obsolete, use updateActions instead
Definition at line 183 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 63 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 61 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 48 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 44 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 52 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 46 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 55 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 50 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 59 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 58 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 67 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 65 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 42 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 41 of file btDiscreteDynamicsWorld.h.
|
protected |
Definition at line 60 of file btDiscreteDynamicsWorld.h.
1.8.4