Removed Unnecessary Square Root from InverseQuaternion. Closes #136

This commit is contained in:
strangezak
2021-08-31 09:28:02 -07:00
parent 5f816bf9b3
commit 8c18186b3b

View File

@@ -3107,20 +3107,14 @@ hmm_quaternion HMM_PREFIX(InverseQuaternion)(hmm_quaternion Left)
{ {
ASSERT_COVERED(HMM_InverseQuaternion); ASSERT_COVERED(HMM_InverseQuaternion);
hmm_quaternion Conjugate;
hmm_quaternion Result; hmm_quaternion Result;
float Norm = 0;
float NormSquared = 0;
Conjugate.X = -Left.X; Result.X = -Left.X;
Conjugate.Y = -Left.Y; Result.Y = -Left.Y;
Conjugate.Z = -Left.Z; Result.Z = -Left.Z;
Conjugate.W = Left.W; Result.W = Left.W;
Norm = HMM_PREFIX(SquareRootF)(HMM_PREFIX(DotQuaternion)(Left, Left)); Result = HMM_PREFIX(DivideQuaternionF)(Result, (HMM_PREFIX(DotQuaternion)(Left, Left)));
NormSquared = Norm * Norm;
Result = HMM_PREFIX(DivideQuaternionF)(Conjugate, NormSquared);
return (Result); return (Result);
} }