Revision: 19910
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19910
Author: ben2610
Date: 2009-04-23 22:30:01 +0200 (Thu, 23 Apr 2009)
Log Message:
-----------
BGE bug #17863: Shaky game camera.
Modified Paths:
--------------
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
Modified:
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
===================================================================
--- trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
2009-04-23 16:06:55 UTC (rev 19909)
+++ trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
2009-04-23 20:30:01 UTC (rev 19910)
@@ -572,10 +572,22 @@
btSoftBody* sb = GetSoftBody();
if (sb)
{
- btVector3 aabbMin,aabbMax;
- sb->getAabb(aabbMin,aabbMax);
- btVector3 worldPos = (aabbMax+aabbMin)*0.5f;
-
m_MotionState->setWorldPosition(worldPos[0],worldPos[1],worldPos[2]);
+ 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;
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs