improvements/bugfixes related to kinematic(animated) objects, synchronizeMotionStates

This commit is contained in:
ejcoumans
2006-10-19 15:20:38 +00:00
parent d11572a4d7
commit 289c5ca7fe
9 changed files with 71 additions and 40 deletions

View File

@@ -145,7 +145,7 @@ void btDiscreteDynamicsWorld::synchronizeMotionStates()
debugDrawObject(colObj->m_worldTransform,colObj->m_collisionShape,color);
}
btRigidBody* body = btRigidBody::upcast(colObj);
if (body && body->getMotionState())
if (body && body->getMotionState() && !body->isStaticOrKinematicObject())
{
if (body->GetActivationState() != ISLAND_SLEEPING)
{
@@ -524,7 +524,7 @@ void btDiscreteDynamicsWorld::integrateTransforms(float timeStep)
btRigidBody* body = btRigidBody::upcast(colObj);
if (body)
{
if (body->IsActive() && (!body->isStaticObject()))
if (body->IsActive() && (!body->isStaticOrKinematicObject()))
{
body->predictIntegratedTransform(timeStep, predictedTrans);
body->proceedToTransform( predictedTrans);
@@ -545,7 +545,7 @@ void btDiscreteDynamicsWorld::predictUnconstraintMotion(float timeStep)
btRigidBody* body = btRigidBody::upcast(colObj);
if (body)
{
if (!body->isStaticObject())
if (!body->isStaticOrKinematicObject())
{
if (body->IsActive())
{