forked from bartvdbraak/blender
BGE bug #17863: Shaky game camera.
This commit is contained in:
parent
70f1b45430
commit
67b3e1a07b
@ -571,11 +571,23 @@ bool CcdPhysicsController::SynchronizeMotionStates(float time)
|
||||
|
||||
btSoftBody* sb = GetSoftBody();
|
||||
if (sb)
|
||||
{
|
||||
if (sb->m_pose.m_bframe)
|
||||
{
|
||||
btVector3 worldPos = sb->m_pose.m_com;
|
||||
btQuaternion worldquat;
|
||||
btMatrix3x3 trs = sb->m_pose.m_rot*sb->m_pose.m_scl;
|
||||
trs.getRotation(worldquat);
|
||||
m_MotionState->setWorldPosition(worldPos[0],worldPos[1],worldPos[2]);
|
||||
m_MotionState->setWorldOrientation(worldquat[0],worldquat[1],worldquat[2],worldquat[3]);
|
||||
}
|
||||
else
|
||||
{
|
||||
btVector3 aabbMin,aabbMax;
|
||||
sb->getAabb(aabbMin,aabbMax);
|
||||
btVector3 worldPos = (aabbMax+aabbMin)*0.5f;
|
||||
m_MotionState->setWorldPosition(worldPos[0],worldPos[1],worldPos[2]);
|
||||
}
|
||||
m_MotionState->calculateWorldTransformations();
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user