fix, static objects were not dynamically added at the right position.
authorErwin Coumans <blender@erwincoumans.com>
Fri, 5 Jan 2007 02:31:34 +0000 (02:31 +0000)
committerErwin Coumans <blender@erwincoumans.com>
Fri, 5 Jan 2007 02:31:34 +0000 (02:31 +0000)
source/gameengine/Physics/Bullet/CcdPhysicsController.cpp

index ecb6c8d9dcf453c18d1aa07d93f138dd7c8c4909..a131054f5e55a95ce789764837abb01a55fee9c6 100644 (file)
@@ -329,6 +329,7 @@ void                CcdPhysicsController::setOrientation(float quatImag0,float quatImag1,float
        btTransform xform  = m_body->getCenterOfMassTransform();
        xform.setRotation(btQuaternion(quatImag0,quatImag1,quatImag2,quatReal));
        m_body->setCenterOfMassTransform(xform);
+       m_bulletMotionState->setWorldTransform(xform);
 
 }
 
@@ -339,10 +340,13 @@ void              CcdPhysicsController::setPosition(float posX,float posY,float posZ)
        {
                m_body->setCollisionFlags(m_body->getCollisionFlags() | btCollisionObject::CF_KINEMATIC_OBJECT);
        }
+       
        m_MotionState->setWorldPosition(posX,posY,posZ);
        btTransform xform  = m_body->getCenterOfMassTransform();
        xform.setOrigin(btVector3(posX,posY,posZ));
        m_body->setCenterOfMassTransform(xform);
+       m_bulletMotionState->setWorldTransform(xform);
+
 
 }
 void           CcdPhysicsController::resolveCombinedVelocities(float linvelX,float linvelY,float linvelZ,float angVelX,float angVelY,float angVelZ)