Blender V2.61 - r43446
|
#include <btContinuousDynamicsWorld.h>
Public Member Functions | |
btContinuousDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration) | |
virtual | ~btContinuousDynamicsWorld () |
virtual void | internalSingleStepSimulation (btScalar timeStep) |
time stepping with calculation of time of impact for selected fast moving objects | |
virtual void | calculateTimeOfImpacts (btScalar timeStep) |
virtual btDynamicsWorldType | getWorldType () const |
btContinuousDynamicsWorld adds optional (per object) continuous collision detection for fast moving objects to the btDiscreteDynamicsWorld. This copes with fast moving objects that otherwise would tunnel/miss collisions. Under construction, don't use yet! Please use btDiscreteDynamicsWorld instead.
Definition at line 24 of file btContinuousDynamicsWorld.h.
btContinuousDynamicsWorld::btContinuousDynamicsWorld | ( | btDispatcher * | dispatcher, |
btBroadphaseInterface * | pairCache, | ||
btConstraintSolver * | constraintSolver, | ||
btCollisionConfiguration * | collisionConfiguration | ||
) |
Definition at line 36 of file btContinuousDynamicsWorld.cpp.
btContinuousDynamicsWorld::~btContinuousDynamicsWorld | ( | ) | [virtual] |
Definition at line 41 of file btContinuousDynamicsWorld.cpp.
void btContinuousDynamicsWorld::calculateTimeOfImpacts | ( | btScalar | timeStep | ) | [virtual] |
these should be 'temporal' aabbs!
'toi' is the global smallest time of impact. However, we just calculate the time of impact for each object individually. so we handle the case moving versus static properly, and we cheat for moving versus moving
calculate time of impact for overlapping pairs
Definition at line 106 of file btContinuousDynamicsWorld.cpp.
References btDispatcherInfo::DISPATCH_CONTINUOUS, btDispatcherInfo::DISPATCH_DISCRETE, btDispatcher::dispatchAllCollisionPairs(), btCollisionWorld::getDispatcher(), btCollisionWorld::getDispatchInfo(), btBroadphaseInterface::getOverlappingPairCache(), btCollisionWorld::m_broadphasePairCache, btCollisionWorld::m_dispatcher1, btDispatcherInfo::m_dispatchFunc, btDispatcherInfo::m_stepCount, btDispatcherInfo::m_timeOfImpact, and btDispatcherInfo::m_timeStep.
Referenced by internalSingleStepSimulation().
virtual btDynamicsWorldType btContinuousDynamicsWorld::getWorldType | ( | ) | const [inline, virtual] |
Reimplemented from btDiscreteDynamicsWorld.
Definition at line 39 of file btContinuousDynamicsWorld.h.
References BT_CONTINUOUS_DYNAMICS_WORLD.
void btContinuousDynamicsWorld::internalSingleStepSimulation | ( | btScalar | timeStep | ) | [virtual] |
time stepping with calculation of time of impact for selected fast moving objects
update aabbs information
apply gravity, predict motion
perform collision detection
solve contact and other joint constraints
CallbackTriggers();
integrate transforms
update vehicle simulation
Reimplemented from btDiscreteDynamicsWorld.
Definition at line 46 of file btContinuousDynamicsWorld.cpp.
References btDiscreteDynamicsWorld::calculateSimulationIslands(), calculateTimeOfImpacts(), btCollisionWorld::getDebugDrawer(), btCollisionWorld::getDispatchInfo(), btDynamicsWorld::getSolverInfo(), btDiscreteDynamicsWorld::integrateTransforms(), btDispatcherInfo::m_debugDraw, btDynamicsWorld::m_internalPreTickCallback, btDynamicsWorld::m_internalTickCallback, btDispatcherInfo::m_stepCount, btDispatcherInfo::m_timeOfImpact, btDispatcherInfo::m_timeStep, btContactSolverInfoData::m_timeStep, btCollisionWorld::performDiscreteCollisionDetection(), btDiscreteDynamicsWorld::predictUnconstraintMotion(), btDiscreteDynamicsWorld::solveConstraints(), btDiscreteDynamicsWorld::startProfiling(), btCollisionWorld::updateAabbs(), btDiscreteDynamicsWorld::updateActions(), and btDiscreteDynamicsWorld::updateActivationState().