[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19910] trunk/blender/source/gameengine/ Physics/Bullet/CcdPhysicsController.cpp: BGE bug #17863: Shaky game camera.
Benoit Bolsee
benoit.bolsee at online.be
Thu Apr 23 22:30:01 CEST 2009
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;
}
More information about the Bf-blender-cvs
mailing list