diff options
| author | Joshua Reisenauer <kd7tck@msn.com> | 2016-05-16 19:42:16 -0700 |
|---|---|---|
| committer | Joshua Reisenauer <kd7tck@msn.com> | 2016-05-16 19:42:16 -0700 |
| commit | 706755d1464bd65623755c6c2b4df931a37e9eb5 (patch) | |
| tree | b69c4114981eaeaa8a51df0de8fcc0994abfcc0e /src/raymath.h | |
| parent | 9799856ad4864b808cbfb40b0b4398fcdf61c1c2 (diff) | |
| parent | e060944b34f11978392f5c24282c95781caae63e (diff) | |
| download | raylib-706755d1464bd65623755c6c2b4df931a37e9eb5.tar.gz raylib-706755d1464bd65623755c6c2b4df931a37e9eb5.zip | |
Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop
Diffstat (limited to 'src/raymath.h')
| -rw-r--r-- | src/raymath.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/raymath.h b/src/raymath.h index 52e92b50..59d66e56 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -158,6 +158,7 @@ RMDEF void PrintMatrix(Matrix m); // Print matrix ut //------------------------------------------------------------------------------------ RMDEF float QuaternionLength(Quaternion quat); // Compute the length of a quaternion RMDEF void QuaternionNormalize(Quaternion *q); // Normalize provided quaternion +RMDEF void QuaternionInvert(Quaternion *quat); // Invert provided quaternion RMDEF Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2); // Calculate two quaternion multiplication RMDEF Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float slerp); // Calculates spherical linear interpolation between two quaternions RMDEF Quaternion QuaternionFromMatrix(Matrix matrix); // Returns a quaternion for a given rotation matrix @@ -908,6 +909,23 @@ RMDEF void QuaternionNormalize(Quaternion *q) q->w *= ilength; } +// Invert provided quaternion +RMDEF void QuaternionInvert(Quaternion *quat) +{ + float length = QuaternionLength(*quat); + float lengthSq = length*length; + + if (lengthSq != 0.0) + { + float i = 1.0f/lengthSq; + + quat->x *= -i; + quat->y *= -i; + quat->z *= -i; + quat->w *= i; + } +} + // Calculate two quaternion multiplication RMDEF Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2) { |
