mirror of
https://github.com/recp/cglm.git
synced 2026-01-03 14:12:11 +00:00
tests: add test for quat_slerp
This commit is contained in:
@@ -707,3 +707,35 @@ TEST_IMPL(GLM_PREFIX, quat_lerpc) {
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, quat_slerp) {
|
||||
versor q1, q2, q3, q4;
|
||||
vec3 v1 = {10.0f, 0.0f, 0.0f}, v2;
|
||||
|
||||
glm_quatv(q1, glm_rad(30.0f), v1);
|
||||
glm_quatv(q2, glm_rad(90.0f), v1);
|
||||
|
||||
q1[0] = 10.0f;
|
||||
GLM(quat_slerp)(q1, q2, 1.0f, q3);
|
||||
ASSERTIFY(test_assert_quat_eq(q1, q3));
|
||||
|
||||
glm_quatv(q1, glm_rad(30.001), v1);
|
||||
glm_quatv(q2, glm_rad(30.002), v1);
|
||||
GLM(quat_slerp)(q1, q2, 0.7f, q3);
|
||||
glm_quat_lerp(q1, q2, 0.7f, q4);
|
||||
ASSERTIFY(test_assert_quat_eq(q3, q4));
|
||||
|
||||
glm_quatv(q1, glm_rad(30.0f), v1);
|
||||
glm_quatv(q2, glm_rad(90.0f), v1);
|
||||
GLM(quat_slerp)(q1, q2, 0.5f, q3);
|
||||
|
||||
glm_quat_axis(q3, v2);
|
||||
glm_vec3_normalize(v1);
|
||||
glm_vec3_normalize(v2);
|
||||
|
||||
ASSERT(glm_quat_angle(q3) > glm_rad(30.0f));
|
||||
ASSERT(glm_quat_angle(q3) < glm_rad(90.0f));
|
||||
ASSERTIFY(test_assert_vec3_eq(v1, v2))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user