More cases where we were incorrectly using M_PI_2
diff --git a/src/constraints/rotation_constraint.cpp b/src/constraints/rotation_constraint.cpp index 30b80e4..b84c943 100644 --- a/src/constraints/rotation_constraint.cpp +++ b/src/constraints/rotation_constraint.cpp
@@ -88,17 +88,17 @@ Mat2D::decompose(m_ComponentsB, transformB); } - float angleA = std::fmod(m_ComponentsA.rotation(), (float)M_PI_2); - float angleB = std::fmod(m_ComponentsB.rotation(), (float)M_PI_2); + float angleA = std::fmod(m_ComponentsA.rotation(), (float)M_PI * 2); + float angleB = std::fmod(m_ComponentsB.rotation(), (float)M_PI * 2); float diff = angleB - angleA; if (diff > M_PI) { - diff -= M_PI_2; + diff -= M_PI * 2; } else if (diff < -M_PI) { - diff += M_PI_2; + diff += M_PI * 2; } m_ComponentsB.rotation(m_ComponentsA.rotation() + diff * strength());
diff --git a/src/constraints/transform_constraint.cpp b/src/constraints/transform_constraint.cpp index c29dacd..bdc43f7 100644 --- a/src/constraints/transform_constraint.cpp +++ b/src/constraints/transform_constraint.cpp
@@ -34,16 +34,16 @@ Mat2D::decompose(m_ComponentsA, transformA); Mat2D::decompose(m_ComponentsB, transformB); - float angleA = std::fmod(m_ComponentsA.rotation(), (float)M_PI_2); - float angleB = std::fmod(m_ComponentsB.rotation(), (float)M_PI_2); + float angleA = std::fmod(m_ComponentsA.rotation(), (float)M_PI * 2); + float angleB = std::fmod(m_ComponentsB.rotation(), (float)M_PI * 2); float diff = angleB - angleA; if (diff > M_PI) { - diff -= M_PI_2; + diff -= M_PI * 2; } else if (diff < -M_PI) { - diff += M_PI_2; + diff += M_PI * 2; } float t = strength();