Added QuaternionInvert()
This commit is contained in:
parent
075f51e0a3
commit
e060944b34
@ -158,6 +158,7 @@ RMDEF void PrintMatrix(Matrix m); // Print matrix ut
|
|||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
RMDEF float QuaternionLength(Quaternion quat); // Compute the length of a quaternion
|
RMDEF float QuaternionLength(Quaternion quat); // Compute the length of a quaternion
|
||||||
RMDEF void QuaternionNormalize(Quaternion *q); // Normalize provided 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 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 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
|
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;
|
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
|
// Calculate two quaternion multiplication
|
||||||
RMDEF Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2)
|
RMDEF Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user