added btInternalTickCallback, see btDynamicsWorld::setInternalTickCallback
Thanks chunky! http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1991
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user