btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController More...
#include <btDiscreteDynamicsWorld.h>


Public Member Functions | |
| btDiscreteDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration) | |
| this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those | |
| 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 | |
| virtual void | synchronizeMotionStates () |
| void | synchronizeSingleMotionState (btRigidBody *body) |
| this can be useful to synchronize a single rigid body -> graphics object | |
| 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 | |
| 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. | |
| virtual void | applyGravity () |
| apply gravity, call this once per timestep | |
| virtual void | setNumTasks (int numTasks) |
| virtual void | updateVehicles (btScalar timeStep) |
| obsolete, use updateActions instead | |
| 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 | |
| void | setSynchronizeAllMotionStates (bool synchronizeAll) |
| bool | getSynchronizeAllMotionStates () const |
| virtual void | serialize (btSerializer *serializer) |
| Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo). | |
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) |
| virtual void | saveKinematicState (btScalar timeStep) |
| void | serializeRigidBodies (btSerializer *serializer) |
Protected Attributes | |
| btConstraintSolver * | m_constraintSolver |
| btSimulationIslandManager * | m_islandManager |
| btAlignedObjectArray < btTypedConstraint * > | m_constraints |
| btAlignedObjectArray < btRigidBody * > | m_nonStaticRigidBodies |
| btVector3 | m_gravity |
| btScalar | m_localTime |
| bool | m_ownsIslandManager |
| bool | m_ownsConstraintSolver |
| bool | m_synchronizeAllMotionStates |
| btAlignedObjectArray < btActionInterface * > | m_actions |
| int | m_profileTimings |
btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController
Definition at line 35 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 50 of file btDiscreteDynamicsWorld.cpp.
| btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld | ( | ) | [virtual] |
Definition at line 77 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::addAction | ( | btActionInterface * | action | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 492 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::addCharacter | ( | btActionInterface * | character | ) | [virtual] |
obsolete, use addAction instead
Reimplemented from btDynamicsWorld.
Definition at line 513 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::addCollisionObject | ( | btCollisionObject * | collisionObject, | |
| short int | collisionFilterGroup = btBroadphaseProxy::StaticFilter, |
|||
| short int | collisionFilterMask = btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter | |||
| ) | [virtual] |
Reimplemented from btCollisionWorld.
Definition at line 360 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::addConstraint | ( | btTypedConstraint * | constraint, | |
| bool | disableCollisionsBetweenLinkedBodies = false | |||
| ) | [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 475 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::addRigidBody | ( | btRigidBody * | body, | |
| short | group, | |||
| short | mask | |||
| ) | [virtual] |
Definition at line 406 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::addRigidBody | ( | btRigidBody * | body | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 381 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::addVehicle | ( | btActionInterface * | vehicle | ) | [virtual] |
obsolete, use addAction instead
Reimplemented from btDynamicsWorld.
Definition at line 503 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::applyGravity | ( | ) | [virtual] |
apply gravity, call this once per timestep
Definition at line 167 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::calculateSimulationIslands | ( | ) | [protected, virtual] |
Definition at line 705 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::clearForces | ( | ) | [virtual] |
the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.
Implements btDynamicsWorld.
Definition at line 154 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::debugDrawConstraint | ( | btTypedConstraint * | constraint | ) |
Definition at line 906 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::debugDrawWorld | ( | ) | [virtual] |
Implements btDynamicsWorld.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 114 of file btDiscreteDynamicsWorld.cpp.
| btCollisionWorld* btDiscreteDynamicsWorld::getCollisionWorld | ( | ) | [inline] |
Definition at line 117 of file btDiscreteDynamicsWorld.h.
| const btTypedConstraint * btDiscreteDynamicsWorld::getConstraint | ( | int | index | ) | const [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 1113 of file btDiscreteDynamicsWorld.cpp.
| btTypedConstraint * btDiscreteDynamicsWorld::getConstraint | ( | int | index | ) | [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 1109 of file btDiscreteDynamicsWorld.cpp.
| btConstraintSolver * btDiscreteDynamicsWorld::getConstraintSolver | ( | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 1099 of file btDiscreteDynamicsWorld.cpp.
| btVector3 btDiscreteDynamicsWorld::getGravity | ( | ) | const [virtual] |
Implements btDynamicsWorld.
Definition at line 355 of file btDiscreteDynamicsWorld.cpp.
| int btDiscreteDynamicsWorld::getNumConstraints | ( | ) | const [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 1105 of file btDiscreteDynamicsWorld.cpp.
| const btSimulationIslandManager* btDiscreteDynamicsWorld::getSimulationIslandManager | ( | ) | const [inline] |
Definition at line 112 of file btDiscreteDynamicsWorld.h.
| btSimulationIslandManager* btDiscreteDynamicsWorld::getSimulationIslandManager | ( | ) | [inline] |
Definition at line 107 of file btDiscreteDynamicsWorld.h.
| bool btDiscreteDynamicsWorld::getSynchronizeAllMotionStates | ( | ) | const [inline] |
Definition at line 188 of file btDiscreteDynamicsWorld.h.
| virtual btDynamicsWorldType btDiscreteDynamicsWorld::getWorldType | ( | ) | const [inline, virtual] |
Implements btDynamicsWorld.
Reimplemented in btContinuousDynamicsWorld.
Definition at line 153 of file btDiscreteDynamicsWorld.h.
| void btDiscreteDynamicsWorld::integrateTransforms | ( | btScalar | timeStep | ) | [protected, virtual] |
Definition at line 825 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::internalSingleStepSimulation | ( | btScalar | timeStep | ) | [protected, virtual] |
apply gravity, predict motion
perform collision detection
solve contact and other joint constraints
CallbackTriggers();
integrate transforms
update vehicle simulation
Reimplemented in btContinuousDynamicsWorld, and btSoftRigidDynamicsWorld.
Definition at line 296 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::predictUnconstraintMotion | ( | btScalar | timeStep | ) | [protected, virtual] |
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 873 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::removeAction | ( | btActionInterface * | action | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 497 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::removeCharacter | ( | btActionInterface * | character | ) | [virtual] |
obsolete, use removeAction instead
Reimplemented from btDynamicsWorld.
Definition at line 518 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::removeCollisionObject | ( | btCollisionObject * | collisionObject | ) | [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 365 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::removeConstraint | ( | btTypedConstraint * | constraint | ) | [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 485 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::removeRigidBody | ( | btRigidBody * | body | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 374 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::removeVehicle | ( | btActionInterface * | vehicle | ) | [virtual] |
obsolete, use removeAction instead
Reimplemented from btDynamicsWorld.
Definition at line 508 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::saveKinematicState | ( | btScalar | timeStep | ) | [protected, virtual] |
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 93 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::serialize | ( | btSerializer * | serializer | ) | [virtual] |
Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo).
Reimplemented from btCollisionWorld.
Definition at line 1147 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::serializeRigidBodies | ( | btSerializer * | serializer | ) | [protected] |
Definition at line 1120 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::setConstraintSolver | ( | btConstraintSolver * | solver | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 1089 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::setGravity | ( | const btVector3 & | gravity | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 342 of file btDiscreteDynamicsWorld.cpp.
| virtual void btDiscreteDynamicsWorld::setNumTasks | ( | int | numTasks | ) | [inline, virtual] |
Definition at line 164 of file btDiscreteDynamicsWorld.h.
| void btDiscreteDynamicsWorld::setSynchronizeAllMotionStates | ( | bool | synchronizeAll | ) | [inline] |
Definition at line 184 of file btDiscreteDynamicsWorld.h.
| void btDiscreteDynamicsWorld::solveConstraints | ( | btContactSolverInfo & | solverInfo | ) | [protected, virtual] |
we don't split islands, so all constraints/contact manifolds/bodies are passed into the solver regardless the island id
only call solveGroup if there is some work: avoid virtual function call, its overhead can be excessive
solve all the constraints for this island
Definition at line 551 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::startProfiling | ( | btScalar | timeStep | ) | [protected] |
Definition at line 891 of file btDiscreteDynamicsWorld.cpp.
| int btDiscreteDynamicsWorld::stepSimulation | ( | btScalar | timeStep, | |
| int | maxSubSteps = 1, |
|||
| btScalar | fixedTimeStep = btScalar(1.)/btScalar(60.) | |||
| ) | [virtual] |
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
Implements btDynamicsWorld.
Definition at line 227 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::synchronizeMotionStates | ( | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 201 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::synchronizeSingleMotionState | ( | btRigidBody * | body | ) |
this can be useful to synchronize a single rigid body -> graphics object
Definition at line 181 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::updateActions | ( | btScalar | timeStep | ) | [protected] |
Definition at line 428 of file btDiscreteDynamicsWorld.cpp.
| void btDiscreteDynamicsWorld::updateActivationState | ( | btScalar | timeStep | ) | [protected] |
Definition at line 439 of file btDiscreteDynamicsWorld.cpp.
| virtual void btDiscreteDynamicsWorld::updateVehicles | ( | btScalar | timeStep | ) | [inline, virtual] |
obsolete, use updateActions instead
Definition at line 170 of file btDiscreteDynamicsWorld.h.
Definition at line 57 of file btDiscreteDynamicsWorld.h.
Definition at line 43 of file btDiscreteDynamicsWorld.h.
Definition at line 39 of file btDiscreteDynamicsWorld.h.
btVector3 btDiscreteDynamicsWorld::m_gravity [protected] |
Definition at line 47 of file btDiscreteDynamicsWorld.h.
Definition at line 41 of file btDiscreteDynamicsWorld.h.
btScalar btDiscreteDynamicsWorld::m_localTime [protected] |
Definition at line 50 of file btDiscreteDynamicsWorld.h.
Definition at line 45 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::m_ownsConstraintSolver [protected] |
Definition at line 54 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::m_ownsIslandManager [protected] |
Definition at line 53 of file btDiscreteDynamicsWorld.h.
int btDiscreteDynamicsWorld::m_profileTimings [protected] |
Definition at line 59 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::m_synchronizeAllMotionStates [protected] |
Definition at line 55 of file btDiscreteDynamicsWorld.h.
1.6.1