mirror of
https://github.com/HandmadeMath/HandmadeMath.git
synced 2025-12-28 23:54:32 +00:00
Finished function implements
This commit is contained in:
@@ -484,6 +484,7 @@ HMMDEF float HMM_DotQuaternion(hmm_quaternion Left, hmm_quaternion Right);
|
||||
HMMDEF hmm_quaternion HMM_NormalizeQuaternion(hmm_quaternion Left);
|
||||
HMMDEF hmm_quaternion HMM_Slerp(hmm_quaternion Left, hmm_quaternion Right, float Time);
|
||||
HMMDEF hmm_mat4 HMM_QuaternionToMat4(hmm_quaternion Left);
|
||||
HMMDEF hmm_quaternion HMM_QuaternionFromEulerAxis(hmm_vec3 Axis, float AngleOfRotation);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@@ -1633,11 +1634,11 @@ HMM_Slerp(hmm_quaternion Left, hmm_quaternion Right, float Time)
|
||||
float S2 = HMM_SinF(Time * Angle);
|
||||
float Is = 1.0f / HMM_SinF(Angle);
|
||||
|
||||
QuaternionLeft = HMM_MultiplyQuaternionF(Left, S1);
|
||||
QuaternionRight = HMM_MultiplyQuaternionF(Right, S2);
|
||||
QuaternionLeft = HMM_MultiplyQuaternionF(Left, S1);
|
||||
QuaternionRight = HMM_MultiplyQuaternionF(Right, S2);
|
||||
|
||||
Result = HMM_AddQuaternion(QuaternionLeft, QuaternionRight);
|
||||
Result = HMM_MultiplyQuaternionF(Result, Is);
|
||||
Result = HMM_AddQuaternion(QuaternionLeft, QuaternionRight);
|
||||
Result = HMM_MultiplyQuaternionF(Result, Is);
|
||||
|
||||
return(Result);
|
||||
}
|
||||
@@ -1679,6 +1680,17 @@ HMM_QuaternionToMat4(hmm_quaternion Left)
|
||||
return(Result)
|
||||
}
|
||||
|
||||
HINLINE hmm_quaternion
|
||||
HMM_QuaternionFromEulerAxis(hmm_vec3 Axis, float AngleOfRotation)
|
||||
{
|
||||
hmm_quaternion Result = {0};
|
||||
|
||||
Result.W = HMM_CosF(AngleOfRotation / 2.0f);
|
||||
Result.XYZ = Axis * HMM_SinF(AngleOfRotation<EFBFBD>/ 2.0f) / HMM_NormalizeVec3(Axis);
|
||||
|
||||
return(Result);
|
||||
}
|
||||
|
||||
#ifdef HANDMADE_MATH_CPP_MODE
|
||||
|
||||
HMMDEF float
|
||||
|
||||
Reference in New Issue
Block a user