From 4e6253b54686a2c353a3256947a596f3a3c9bcd0 Mon Sep 17 00:00:00 2001 From: masterex1000 Date: Mon, 1 Mar 2021 16:29:48 -0700 Subject: [PATCH] Add check to flip quaternion (#1624) --- src/raymath.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/raymath.h b/src/raymath.h index 63fc96968..fd9b620ab 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -1271,6 +1271,11 @@ RMDEF Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w; + if (cosHalfTheta < 0) { + q2.x = -q2.x; q2.y = -q2.y; q2.z = -q2.z; q2.w = -q2.w; + cosHalfTheta = -cosHalfTheta; + } + if (fabs(cosHalfTheta) >= 1.0f) result = q1; else if (cosHalfTheta > 0.95f) result = QuaternionNlerp(q1, q2, amount); else