From b0d6ba845ee62e1a3704b7ae968aeee311c01474 Mon Sep 17 00:00:00 2001 From: rponom Date: Thu, 11 Sep 2008 20:28:05 +0000 Subject: [PATCH] btHingeConstraint solver changed to improve stability and allow to fix joint --- .../ConstraintSolver/btHingeConstraint.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp b/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp index 114abce24..a0523a8c7 100644 --- a/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp +++ b/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp @@ -241,15 +241,18 @@ void btHingeConstraint::buildJacobian() m_solveLimit = false; m_accLimitImpulse = btScalar(0.); - if (m_lowerLimit < m_upperLimit) +// if (m_lowerLimit < m_upperLimit) + if (m_lowerLimit <= m_upperLimit) { - if (hingeAngle <= m_lowerLimit*m_limitSoftness) +// if (hingeAngle <= m_lowerLimit*m_limitSoftness) + if (hingeAngle <= m_lowerLimit) { m_correction = (m_lowerLimit - hingeAngle); m_limitSign = 1.0f; m_solveLimit = true; } - else if (hingeAngle >= m_upperLimit*m_limitSoftness) +// else if (hingeAngle >= m_upperLimit*m_limitSoftness) + else if (hingeAngle >= m_upperLimit) { m_correction = m_upperLimit - hingeAngle; m_limitSign = -1.0f;