From 4d6ec84630d44167377c9a2f1e8a9bffa79fbd32 Mon Sep 17 00:00:00 2001 From: ejcoumans Date: Wed, 14 Feb 2007 04:02:14 +0000 Subject: [PATCH] always update position, even for sleeping objects (is workaround, because sleeping objects never get their motionstate update), needs fixing for optimization --- src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index 7b5a92bcd..404cf243f 100644 --- a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -139,7 +139,10 @@ void btDiscreteDynamicsWorld::synchronizeMotionStates() btRigidBody* body = btRigidBody::upcast(colObj); if (body && body->getMotionState() && !body->isStaticOrKinematicObject()) { - if (body->getActivationState() != ISLAND_SLEEPING) + //we need to call the update at least once, even for sleeping objects + //otherwise the 'graphics' transform never updates properly + //so todo: add 'dirty' flag + //if (body->getActivationState() != ISLAND_SLEEPING) { btTransform interpolatedTransform; btTransformUtil::integrateTransform(body->getInterpolationWorldTransform(),