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 | |
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 |
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). | |
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) |
Protected Attributes | |
btAlignedObjectArray < btTypedConstraint * > | m_sortedConstraints |
InplaceSolverIslandCallback * | m_solverIslandCallback |
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 |
bool | m_applySpeculativeContactRestitution |
btAlignedObjectArray < btActionInterface * > | m_actions |
int | m_profileTimings |
btAlignedObjectArray < btPersistentManifold * > | m_predictiveManifolds |
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.
btDiscreteDynamicsWorld::~btDiscreteDynamicsWorld | ( | ) | [virtual] |
Definition at line 240 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::addAction | ( | btActionInterface * | action | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 666 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::addCharacter | ( | btActionInterface * | character | ) | [virtual] |
obsolete, use addAction instead
Reimplemented from btDynamicsWorld.
Definition at line 687 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 534 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::addConstraint | ( | btTypedConstraint * | constraint, | |
bool | disableCollisionsBetweenLinkedBodies = false | |||
) | [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 649 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::addRigidBody | ( | btRigidBody * | body | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 555 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::addRigidBody | ( | btRigidBody * | body, | |
short | group, | |||
short | mask | |||
) | [virtual] |
Implements btDynamicsWorld.
Definition at line 580 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::addVehicle | ( | btActionInterface * | vehicle | ) | [virtual] |
obsolete, use addAction instead
Reimplemented from btDynamicsWorld.
Definition at line 677 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::applyGravity | ( | ) | [virtual] |
apply gravity, call this once per timestep
Definition at line 335 of file btDiscreteDynamicsWorld.cpp.
btDiscreteDynamicsWorld::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
void btDiscreteDynamicsWorld::calculateSimulationIslands | ( | ) | [protected, virtual] |
Definition at line 731 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 322 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::createPredictiveContacts | ( | btScalar | timeStep | ) | [protected] |
Definition at line 880 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::debugDrawConstraint | ( | btTypedConstraint * | constraint | ) |
Definition at line 1158 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::debugDrawWorld | ( | ) | [virtual] |
Implements btDynamicsWorld.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 282 of file btDiscreteDynamicsWorld.cpp.
bool btDiscreteDynamicsWorld::getApplySpeculativeContactRestitution | ( | ) | const [inline] |
Definition at line 211 of file btDiscreteDynamicsWorld.h.
btCollisionWorld* btDiscreteDynamicsWorld::getCollisionWorld | ( | ) | [inline] |
Definition at line 130 of file btDiscreteDynamicsWorld.h.
btTypedConstraint * btDiscreteDynamicsWorld::getConstraint | ( | int | index | ) | [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 1363 of file btDiscreteDynamicsWorld.cpp.
const btTypedConstraint * btDiscreteDynamicsWorld::getConstraint | ( | int | index | ) | const [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 1367 of file btDiscreteDynamicsWorld.cpp.
btConstraintSolver * btDiscreteDynamicsWorld::getConstraintSolver | ( | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 1353 of file btDiscreteDynamicsWorld.cpp.
btVector3 btDiscreteDynamicsWorld::getGravity | ( | ) | const [virtual] |
Implements btDynamicsWorld.
Definition at line 529 of file btDiscreteDynamicsWorld.cpp.
int btDiscreteDynamicsWorld::getNumConstraints | ( | ) | const [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 1359 of file btDiscreteDynamicsWorld.cpp.
btSimulationIslandManager* btDiscreteDynamicsWorld::getSimulationIslandManager | ( | ) | [inline] |
Definition at line 120 of file btDiscreteDynamicsWorld.h.
const btSimulationIslandManager* btDiscreteDynamicsWorld::getSimulationIslandManager | ( | ) | const [inline] |
Definition at line 125 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::getSynchronizeAllMotionStates | ( | ) | const [inline] |
Definition at line 201 of file btDiscreteDynamicsWorld.h.
virtual btDynamicsWorldType btDiscreteDynamicsWorld::getWorldType | ( | ) | const [inline, virtual] |
Implements btDynamicsWorld.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 166 of file btDiscreteDynamicsWorld.h.
void btDiscreteDynamicsWorld::integrateTransforms | ( | btScalar | timeStep | ) | [protected, virtual] |
this should probably be switched on by default, but it is not well tested yet
Definition at line 976 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 btSoftRigidDynamicsWorld.
Definition at line 466 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::predictUnconstraintMotion | ( | btScalar | timeStep | ) | [protected, virtual] |
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 1124 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::removeAction | ( | btActionInterface * | action | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 671 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::removeCharacter | ( | btActionInterface * | character | ) | [virtual] |
obsolete, use removeAction instead
Reimplemented from btDynamicsWorld.
Definition at line 692 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 539 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::removeConstraint | ( | btTypedConstraint * | constraint | ) | [virtual] |
Reimplemented from btDynamicsWorld.
Definition at line 659 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::removeRigidBody | ( | btRigidBody * | body | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 548 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::removeVehicle | ( | btActionInterface * | vehicle | ) | [virtual] |
obsolete, use removeAction instead
Reimplemented from btDynamicsWorld.
Definition at line 682 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 261 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.
Reimplemented in btSoftRigidDynamicsWorld.
Definition at line 1453 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::serializeDynamicsWorldInfo | ( | btSerializer * | serializer | ) | [protected] |
Definition at line 1403 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::serializeRigidBodies | ( | btSerializer * | serializer | ) | [protected] |
Definition at line 1374 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::setApplySpeculativeContactRestitution | ( | bool | enable | ) | [inline] |
Definition at line 206 of file btDiscreteDynamicsWorld.h.
void btDiscreteDynamicsWorld::setConstraintSolver | ( | btConstraintSolver * | solver | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 1342 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::setGravity | ( | const btVector3 & | gravity | ) | [virtual] |
Implements btDynamicsWorld.
Definition at line 516 of file btDiscreteDynamicsWorld.cpp.
virtual void btDiscreteDynamicsWorld::setNumTasks | ( | int | numTasks | ) | [inline, virtual] |
Definition at line 177 of file btDiscreteDynamicsWorld.h.
void btDiscreteDynamicsWorld::setSynchronizeAllMotionStates | ( | bool | synchronizeAll | ) | [inline] |
Definition at line 197 of file btDiscreteDynamicsWorld.h.
void btDiscreteDynamicsWorld::solveConstraints | ( | btContactSolverInfo & | solverInfo | ) | [protected, virtual] |
solve all the constraints for this island
Definition at line 700 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::startProfiling | ( | btScalar | timeStep | ) | [protected] |
Definition at line 1143 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 395 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::synchronizeMotionStates | ( | ) | [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.
void btDiscreteDynamicsWorld::updateActions | ( | btScalar | timeStep | ) | [protected] |
Definition at line 602 of file btDiscreteDynamicsWorld.cpp.
void btDiscreteDynamicsWorld::updateActivationState | ( | btScalar | timeStep | ) | [protected] |
Definition at line 613 of file btDiscreteDynamicsWorld.cpp.
virtual void btDiscreteDynamicsWorld::updateVehicles | ( | btScalar | timeStep | ) | [inline, virtual] |
obsolete, use updateActions instead
Definition at line 183 of file btDiscreteDynamicsWorld.h.
Definition at line 63 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::m_applySpeculativeContactRestitution [protected] |
Definition at line 61 of file btDiscreteDynamicsWorld.h.
Definition at line 48 of file btDiscreteDynamicsWorld.h.
Definition at line 44 of file btDiscreteDynamicsWorld.h.
btVector3 btDiscreteDynamicsWorld::m_gravity [protected] |
Definition at line 52 of file btDiscreteDynamicsWorld.h.
Definition at line 46 of file btDiscreteDynamicsWorld.h.
btScalar btDiscreteDynamicsWorld::m_localTime [protected] |
Definition at line 55 of file btDiscreteDynamicsWorld.h.
Definition at line 50 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::m_ownsConstraintSolver [protected] |
Definition at line 59 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::m_ownsIslandManager [protected] |
Definition at line 58 of file btDiscreteDynamicsWorld.h.
btAlignedObjectArray<btPersistentManifold*> btDiscreteDynamicsWorld::m_predictiveManifolds [protected] |
Definition at line 67 of file btDiscreteDynamicsWorld.h.
int btDiscreteDynamicsWorld::m_profileTimings [protected] |
Definition at line 65 of file btDiscreteDynamicsWorld.h.
Definition at line 42 of file btDiscreteDynamicsWorld.h.
Definition at line 41 of file btDiscreteDynamicsWorld.h.
bool btDiscreteDynamicsWorld::m_synchronizeAllMotionStates [protected] |
Definition at line 60 of file btDiscreteDynamicsWorld.h.