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());
|
solveConstraints(getSolverInfo());
|
||||||
|
|
||||||
///CallbackTriggers();
|
///CallbackTriggers();
|
||||||
|
|
||||||
calculateTimeOfImpacts(timeStep);
|
calculateTimeOfImpacts(timeStep);
|
||||||
|
|
||||||
btScalar toi = dispatchInfo.m_timeOfImpact;
|
btScalar toi = dispatchInfo.m_timeOfImpact;
|
||||||
@@ -96,6 +95,9 @@ void btContinuousDynamicsWorld::internalSingleStepSimulation( btScalar timeStep)
|
|||||||
|
|
||||||
updateActivationState( timeStep );
|
updateActivationState( timeStep );
|
||||||
|
|
||||||
|
if(0 != m_internalTickCallback) {
|
||||||
|
(*m_internalTickCallback)(this, timeStep);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void btContinuousDynamicsWorld::calculateTimeOfImpacts(btScalar 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 );
|
updateActivationState( timeStep );
|
||||||
|
|
||||||
|
if(0 != m_internalTickCallback) {
|
||||||
|
(*m_internalTickCallback)(this, timeStep);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void btDiscreteDynamicsWorld::setGravity(const btVector3& gravity)
|
void btDiscreteDynamicsWorld::setGravity(const btVector3& gravity)
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ class btTypedConstraint;
|
|||||||
class btRaycastVehicle;
|
class btRaycastVehicle;
|
||||||
class btConstraintSolver;
|
class btConstraintSolver;
|
||||||
|
|
||||||
|
class btDynamicsWorld;
|
||||||
|
/// Type for the callback for each tick
|
||||||
|
typedef void (*btInternalTickCallback)(const btDynamicsWorld *world, btScalar timeStep);
|
||||||
|
|
||||||
enum btDynamicsWorldType
|
enum btDynamicsWorldType
|
||||||
{
|
{
|
||||||
@@ -36,7 +39,7 @@ class btDynamicsWorld : public btCollisionWorld
|
|||||||
|
|
||||||
|
|
||||||
btDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* broadphase,btCollisionConfiguration* collisionConfiguration)
|
btDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* broadphase,btCollisionConfiguration* collisionConfiguration)
|
||||||
:btCollisionWorld(dispatcher,broadphase,collisionConfiguration)
|
:btCollisionWorld(dispatcher,broadphase,collisionConfiguration), m_internalTickCallback(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +64,7 @@ class btDynamicsWorld : public btCollisionWorld
|
|||||||
//once a rigidbody is added to the dynamics world, it will get this gravity assigned
|
//once a rigidbody is added to the dynamics world, it will get this gravity assigned
|
||||||
//existing rigidbodies in the world get gravity assigned too, during this method
|
//existing rigidbodies in the world get gravity assigned too, during this method
|
||||||
virtual void setGravity(const btVector3& gravity) = 0;
|
virtual void setGravity(const btVector3& gravity) = 0;
|
||||||
virtual btVector3 getGravity () const = 0;
|
virtual btVector3 getGravity () const = 0;
|
||||||
|
|
||||||
virtual void addRigidBody(btRigidBody* body) = 0;
|
virtual void addRigidBody(btRigidBody* body) = 0;
|
||||||
|
|
||||||
@@ -79,10 +82,16 @@ class btDynamicsWorld : public btCollisionWorld
|
|||||||
|
|
||||||
virtual btDynamicsWorldType getWorldType() const=0;
|
virtual btDynamicsWorldType getWorldType() const=0;
|
||||||
|
|
||||||
virtual void clearForces() = 0;
|
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
|
#endif //BT_DYNAMICS_WORLD_H
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user