diff --git a/glm/ext/quaternion_trigonometric.inl b/glm/ext/quaternion_trigonometric.inl index 06b7c4c3..56880e22 100644 --- a/glm/ext/quaternion_trigonometric.inl +++ b/glm/ext/quaternion_trigonometric.inl @@ -7,7 +7,10 @@ namespace glm { if (abs(x.w) > cos_one_over_two()) { - return asin(sqrt(x.x * x.x + x.y * x.y + x.z * x.z)) * static_cast(2); + T const a = asin(sqrt(x.x * x.x + x.y * x.y + x.z * x.z)) * static_cast(2); + if(x.w < static_cast(0)) + return two_pi() - a; + return a; } return acos(x.w) * static_cast(2);