From: <hik...@us...> - 2012-01-23 05:37:27
|
Revision: 10706 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=10706&view=rev Author: hikerstk Date: 2012-01-23 05:37:21 +0000 (Mon, 23 Jan 2012) Log Message: ----------- Apply the additional rotation to be applied to a body also to the interpolated world transform. This fixes a bug for rotations that are applied only once, since kart.cpp would use the interpolated world transform, which is otherwise not updated till the next time step, resulting in a jump of the kart rotation. Modified Paths: -------------- main/trunk/src/physics/btKart.cpp Modified: main/trunk/src/physics/btKart.cpp =================================================================== --- main/trunk/src/physics/btKart.cpp 2012-01-23 05:34:32 UTC (rev 10705) +++ main/trunk/src/physics/btKart.cpp 2012-01-23 05:37:21 UTC (rev 10706) @@ -448,10 +448,13 @@ float dt = step > m_time_additional_rotation ? m_time_additional_rotation : step; - t.setRotation(t.getRotation() - *btQuaternion(m_additional_rotation.getY()*dt, - m_additional_rotation.getX()*dt, - m_additional_rotation.getZ()*dt)); + btQuaternion add_rot(m_additional_rotation.getY()*dt, + m_additional_rotation.getX()*dt, + m_additional_rotation.getZ()*dt); + t.setRotation(t.getRotation()*add_rot); + m_chassisBody->setWorldTransform(t); + btTransform &iwt=m_chassisBody->getInterpolationWorldTransform(); + iwt.setRotation(iwt.getRotation()*add_rot); m_time_additional_rotation -= step; } } // updateVehicle This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |