added btInternalTickCallback, see btDynamicsWorld::setInternalTickCallback

Thanks chunky!

http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1991
This commit is contained in:
erwin.coumans
2008-04-08 02:51:49 +00:00
parent 2997b95f63
commit b32d6f790f
3 changed files with 19 additions and 4 deletions

View File

@@ -77,7 +77,6 @@ void btContinuousDynamicsWorld::internalSingleStepSimulation( btScalar timeStep)
solveConstraints(getSolverInfo());
///CallbackTriggers();
calculateTimeOfImpacts(timeStep);
btScalar toi = dispatchInfo.m_timeOfImpact;
@@ -96,6 +95,9 @@ void btContinuousDynamicsWorld::internalSingleStepSimulation( btScalar timeStep)
updateActivationState( timeStep );
if(0 != m_internalTickCallback) {
(*m_internalTickCallback)(this, timeStep);
}
}
void btContinuousDynamicsWorld::calculateTimeOfImpacts(btScalar timeStep)
@@ -188,3 +190,4 @@ void btContinuousDynamicsWorld::updateTemporalAabbs(btScalar timeStep)
}

View File

@@ -375,6 +375,9 @@ void btDiscreteDynamicsWorld::internalSingleStepSimulation(btScalar timeStep)
updateActivationState( timeStep );
if(0 != m_internalTickCallback) {
(*m_internalTickCallback)(this, timeStep);
}
}
void btDiscreteDynamicsWorld::setGravity(const btVector3& gravity)

View File

@@ -21,6 +21,9 @@ class btTypedConstraint;
class btRaycastVehicle;
class btConstraintSolver;
class btDynamicsWorld;
/// Type for the callback for each tick
typedef void (*btInternalTickCallback)(const btDynamicsWorld *world, btScalar timeStep);
enum btDynamicsWorldType
{
@@ -36,7 +39,7 @@ class btDynamicsWorld : public btCollisionWorld
btDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* broadphase,btCollisionConfiguration* collisionConfiguration)
:btCollisionWorld(dispatcher,broadphase,collisionConfiguration)
:btCollisionWorld(dispatcher,broadphase,collisionConfiguration), m_internalTickCallback(0)
{
}
@@ -81,8 +84,14 @@ class btDynamicsWorld : public btCollisionWorld
virtual void clearForces() = 0;
/// Set the callback for when an internal tick (simulation substep) happens
void setInternalTickCallback(btInternalTickCallback cb) { m_internalTickCallback = cb; }
btInternalTickCallback m_internalTickCallback;
};
#endif //BT_DYNAMICS_WORLD_H