mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 09:08:53 +00:00
quat: add tests for quat_rotate
This commit is contained in:
@@ -878,6 +878,49 @@ TEST_IMPL(GLM_PREFIX, quat_rotatev) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_IMPL(GLM_PREFIX, quat_rotate) {
|
TEST_IMPL(GLM_PREFIX, quat_rotate) {
|
||||||
|
mat4 m1 = GLM_MAT4_IDENTITY_INIT, m2;
|
||||||
|
versor q1;
|
||||||
|
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
|
/* rotate X around Y = -Z */
|
||||||
|
glm_quatv(q1, GLM_PI_2f, GLM_YUP);
|
||||||
|
GLM(quat_rotate)(m1, q1, m1);
|
||||||
|
glm_rotate_make(m2, GLM_PI_2f, GLM_YUP);
|
||||||
|
ASSERTIFY(test_assert_mat4_eq(m1, m2))
|
||||||
|
glm_mat4_mulv(m1, v1, v1);
|
||||||
|
|
||||||
|
ASSERT(test_eq(v1[0], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[1], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[2], -1.0f))
|
||||||
|
|
||||||
|
glm_mat4_identity(m1);
|
||||||
|
glm_mat4_identity(m2);
|
||||||
|
|
||||||
|
/* rotate -Z around X = Y */
|
||||||
|
glm_quatv(q1, GLM_PI_2f, GLM_XUP);
|
||||||
|
GLM(quat_rotate)(m1, q1, m1);
|
||||||
|
glm_rotate(m2, GLM_PI_2f, GLM_XUP);
|
||||||
|
ASSERTIFY(test_assert_mat4_eq(m1, m2))
|
||||||
|
glm_mat4_mulv(m1, v1, v1);
|
||||||
|
|
||||||
|
ASSERT(test_eq(v1[0], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[1], 1.0f))
|
||||||
|
ASSERT(test_eq(v1[2], 0.0f))
|
||||||
|
|
||||||
|
glm_mat4_identity(m1);
|
||||||
|
glm_mat4_identity(m2);
|
||||||
|
|
||||||
|
/* rotate Y around X = +Z */
|
||||||
|
glm_quatv(q1, GLM_PI_2f, GLM_XUP);
|
||||||
|
GLM(quat_rotate)(m1, q1, m1);
|
||||||
|
glm_rotate(m2, GLM_PI_2f, GLM_XUP);
|
||||||
|
ASSERTIFY(test_assert_mat4_eq(m1, m2))
|
||||||
|
glm_mat4_mulv(m1, v1, v1);
|
||||||
|
|
||||||
|
ASSERT(test_eq(v1[0], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[1], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[2], 1.0f))
|
||||||
|
|
||||||
TEST_SUCCESS
|
TEST_SUCCESS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -166,6 +166,7 @@ TEST_DECLARE(glm_quat_look)
|
|||||||
TEST_DECLARE(glm_quat_for)
|
TEST_DECLARE(glm_quat_for)
|
||||||
TEST_DECLARE(glm_quat_forp)
|
TEST_DECLARE(glm_quat_forp)
|
||||||
TEST_DECLARE(glm_quat_rotatev)
|
TEST_DECLARE(glm_quat_rotatev)
|
||||||
|
TEST_DECLARE(glm_quat_rotate)
|
||||||
|
|
||||||
TEST_DECLARE(glmc_quat_identity)
|
TEST_DECLARE(glmc_quat_identity)
|
||||||
TEST_DECLARE(glmc_quat_identity_array)
|
TEST_DECLARE(glmc_quat_identity_array)
|
||||||
@@ -199,6 +200,7 @@ TEST_DECLARE(glmc_quat_look)
|
|||||||
TEST_DECLARE(glmc_quat_for)
|
TEST_DECLARE(glmc_quat_for)
|
||||||
TEST_DECLARE(glmc_quat_forp)
|
TEST_DECLARE(glmc_quat_forp)
|
||||||
TEST_DECLARE(glmc_quat_rotatev)
|
TEST_DECLARE(glmc_quat_rotatev)
|
||||||
|
TEST_DECLARE(glmc_quat_rotate)
|
||||||
|
|
||||||
/* bezier */
|
/* bezier */
|
||||||
TEST_DECLARE(bezier)
|
TEST_DECLARE(bezier)
|
||||||
@@ -680,6 +682,7 @@ TEST_LIST {
|
|||||||
TEST_ENTRY(glm_quat_for)
|
TEST_ENTRY(glm_quat_for)
|
||||||
TEST_ENTRY(glm_quat_forp)
|
TEST_ENTRY(glm_quat_forp)
|
||||||
TEST_ENTRY(glm_quat_rotatev)
|
TEST_ENTRY(glm_quat_rotatev)
|
||||||
|
TEST_ENTRY(glm_quat_rotate)
|
||||||
|
|
||||||
TEST_ENTRY(glmc_quat_identity)
|
TEST_ENTRY(glmc_quat_identity)
|
||||||
TEST_ENTRY(glmc_quat_identity_array)
|
TEST_ENTRY(glmc_quat_identity_array)
|
||||||
@@ -713,6 +716,7 @@ TEST_LIST {
|
|||||||
TEST_ENTRY(glmc_quat_for)
|
TEST_ENTRY(glmc_quat_for)
|
||||||
TEST_ENTRY(glmc_quat_forp)
|
TEST_ENTRY(glmc_quat_forp)
|
||||||
TEST_ENTRY(glmc_quat_rotatev)
|
TEST_ENTRY(glmc_quat_rotatev)
|
||||||
|
TEST_ENTRY(glmc_quat_rotate)
|
||||||
|
|
||||||
/* bezier */
|
/* bezier */
|
||||||
TEST_ENTRY(bezier)
|
TEST_ENTRY(bezier)
|
||||||
|
Reference in New Issue
Block a user