From a66b782134f9577f55fd890c56e33024ff700fd3 Mon Sep 17 00:00:00 2001 From: EZForever <34133756+EZForever@users.noreply.github.com> Date: Thu, 29 Oct 2020 13:50:31 +0800 Subject: [PATCH] fix: glm::angle() discards the sign of result for angles in range (2*pi-1, 2*pi) --- glm/ext/quaternion_trigonometric.inl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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);