From 15deee7e79a34add4d0129ffb93ebe7068203d9d Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Thu, 16 Feb 2012 23:44:43 +0000 Subject: [PATCH] Fix a division by zero in btConeTwistConstraint::calcAngleInfo2 http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=7867 Thanks to Aardwolf for report and Roman Ponomarev for the fix --- .../ConstraintSolver/btConeTwistConstraint.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp b/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp index aa543aabc..755544f0d 100644 --- a/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp +++ b/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp @@ -638,6 +638,11 @@ void btConeTwistConstraint::calcAngleInfo2(const btTransform& transA, const btTr btTransform trDeltaAB = trB * trPose * trA.inverse(); btQuaternion qDeltaAB = trDeltaAB.getRotation(); btVector3 swingAxis = btVector3(qDeltaAB.x(), qDeltaAB.y(), qDeltaAB.z()); + float swingAxisLen2 = swingAxis.length2(); + if(btFuzzyZero(swingAxisLen2)) + { + return; + } m_swingAxis = swingAxis; m_swingAxis.normalize(); m_swingCorrection = qDeltaAB.getAngle();