From a1c1007a81331dad36f8cb2974981339d75d0b45 Mon Sep 17 00:00:00 2001 From: rponom Date: Thu, 16 Sep 2010 21:04:41 +0000 Subject: [PATCH] Bug in btAdjustAngleToLimits() (issue 377) fixed --- src/BulletDynamics/ConstraintSolver/btTypedConstraint.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h index cad780f33..8f2d5825c 100644 --- a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h +++ b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h @@ -268,13 +268,13 @@ SIMD_FORCE_INLINE btScalar btAdjustAngleToLimits(btScalar angleInRadians, btScal } else if(angleInRadians < angleLowerLimitInRadians) { - btScalar diffLo = btNormalizeAngle(angleLowerLimitInRadians - angleInRadians); // this is positive + btScalar diffLo = btFabs(btNormalizeAngle(angleLowerLimitInRadians - angleInRadians)); btScalar diffHi = btFabs(btNormalizeAngle(angleUpperLimitInRadians - angleInRadians)); return (diffLo < diffHi) ? angleInRadians : (angleInRadians + SIMD_2_PI); } else if(angleInRadians > angleUpperLimitInRadians) { - btScalar diffHi = btNormalizeAngle(angleInRadians - angleUpperLimitInRadians); // this is positive + btScalar diffHi = btFabs(btNormalizeAngle(angleInRadians - angleUpperLimitInRadians)); btScalar diffLo = btFabs(btNormalizeAngle(angleInRadians - angleLowerLimitInRadians)); return (diffLo < diffHi) ? (angleInRadians - SIMD_2_PI) : angleInRadians; }