diff --git a/HandmadeMath.h b/HandmadeMath.h index 7981a46..bfe6add 100644 --- a/HandmadeMath.h +++ b/HandmadeMath.h @@ -345,6 +345,7 @@ HMMDEF float HMM_RSquareRootF(float Float); HMMDEF float HMM_LengthSquared(hmm_vec3 A); HMMDEF float HMM_Length(hmm_vec3 A); HMMDEF float HMM_Power(float Base, int Exponent); +HMMDEF float HMM_Lerp(float A, float Time, float B); HMMDEF float HMM_Clamp(float Min, float Value, float Max); HMMDEF hmm_vec3 HMM_Normalize(hmm_vec3 A); diff --git a/test/hmm_test.cpp b/test/hmm_test.cpp index 8ee6e14..1e5355e 100644 --- a/test/hmm_test.cpp +++ b/test/hmm_test.cpp @@ -57,6 +57,13 @@ TEST(ScalarMath, Power) EXPECT_FLOAT_EQ(HMM_Power(2.0f, -2), 0.25f); } +TEST(ScalarMath, Lerp) +{ + EXPECT_FLOAT_EQ(HMM_Lerp(-2.0f, 0.0f, 2.0f), -2.0f); + EXPECT_FLOAT_EQ(HMM_Lerp(-2.0f, 0.5f, 2.0f), 0.0f); + EXPECT_FLOAT_EQ(HMM_Lerp(-2.0f, 1.0f, 2.0f), 2.0f); +} + TEST(ScalarMath, Clamp) { EXPECT_FLOAT_EQ(HMM_Clamp(-2.0f, 0.0f, 2.0f), 0.0f);