diff --git a/libs/math/include/psemek/math/quaternion.hpp b/libs/math/include/psemek/math/quaternion.hpp index b341a9d2..fff1573f 100644 --- a/libs/math/include/psemek/math/quaternion.hpp +++ b/libs/math/include/psemek/math/quaternion.hpp @@ -265,8 +265,10 @@ namespace psemek::math auto const d = dot(q0.coords, q1.coords); // prevent division by zero - if (d >= T{1}) - return quaternion{lerp(q0.coords, q1.coords, t)}; + if (d >= T{ 1}) + return quaternion{lerp(q0.coords, q1.coords, t)}; + if (d <= T{-1}) + return quaternion{lerp(q0.coords, -q1.coords, t)}; auto const omega = acos(abs(d));