mirror of
https://github.com/recp/cglm.git
synced 2025-12-24 12:32:40 +00:00
quat: add tests for quat_rotate_at[m]
This commit is contained in:
@@ -925,9 +925,79 @@ TEST_IMPL(GLM_PREFIX, quat_rotate) {
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, quat_rotate_at) {
|
||||
mat4 m1 = GLM_MAT4_IDENTITY_INIT, m2;
|
||||
versor q1;
|
||||
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
|
||||
|
||||
glm_quatv(q1, GLM_PI_2f, GLM_YUP);
|
||||
GLM(quat_rotate_at)(m1, q1, (vec3){0.5f, 0.0f, 0.0f});
|
||||
glm_mat4_mulv(m1, v1, v1);
|
||||
|
||||
ASSERT(test_eq(v1[0], 0.5f))
|
||||
ASSERT(test_eq(v1[1], 0.0f))
|
||||
ASSERT(test_eq(v1[2], -0.5f))
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
glm_mat4_identity(m2);
|
||||
|
||||
glm_quatv(q1, GLM_PI_2f, GLM_ZUP);
|
||||
GLM(quat_rotate_at)(m1, q1, (vec3){0.0f, 0.0f, 0.0f});
|
||||
glm_mat4_mulv(m1, v1, v1);
|
||||
|
||||
ASSERT(test_eq(v1[0], 0.0f))
|
||||
ASSERT(test_eq(v1[1], 0.5f))
|
||||
ASSERT(test_eq(v1[2], -0.5f))
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
glm_mat4_identity(m2);
|
||||
|
||||
v1[0] = 1.0f;
|
||||
v1[1] = 1.0f;
|
||||
v1[2] = 1.0f;
|
||||
|
||||
glm_quatv(q1, GLM_PI_2f, GLM_XUP);
|
||||
GLM(quat_rotate_at)(m1, q1, GLM_VEC3_ZERO);
|
||||
glm_mat4_mulv(m1, v1, v1);
|
||||
|
||||
ASSERT(test_eq(v1[0], 1.0f))
|
||||
ASSERT(test_eq(v1[1], -1.0f))
|
||||
ASSERT(test_eq(v1[2], 1.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, quat_rotate_atm) {
|
||||
mat4 m1 = GLM_MAT4_IDENTITY_INIT, m2;
|
||||
versor q1;
|
||||
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
|
||||
|
||||
glm_quatv(q1, GLM_PI_2f, GLM_YUP);
|
||||
GLM(quat_rotate_atm)(m1, q1, (vec3){0.5f, 0.0f, 0.0f});
|
||||
glm_mat4_mulv(m1, v1, v1);
|
||||
|
||||
ASSERT(test_eq(v1[0], 0.5f))
|
||||
ASSERT(test_eq(v1[1], 0.0f))
|
||||
ASSERT(test_eq(v1[2], -0.5f))
|
||||
|
||||
glm_quatv(q1, GLM_PI_2f, GLM_ZUP);
|
||||
GLM(quat_rotate_atm)(m1, q1, (vec3){0.0f, 0.0f, 0.0f});
|
||||
glm_mat4_mulv(m1, v1, v1);
|
||||
|
||||
ASSERT(test_eq(v1[0], 0.0f))
|
||||
ASSERT(test_eq(v1[1], 0.5f))
|
||||
ASSERT(test_eq(v1[2], -0.5f))
|
||||
|
||||
v1[0] = 1.0f;
|
||||
v1[1] = 1.0f;
|
||||
v1[2] = 1.0f;
|
||||
|
||||
glm_quatv(q1, GLM_PI_2f, GLM_XUP);
|
||||
GLM(quat_rotate_atm)(m1, q1, GLM_VEC3_ZERO);
|
||||
glm_mat4_mulv(m1, v1, v1);
|
||||
|
||||
ASSERT(test_eq(v1[0], 1.0f))
|
||||
ASSERT(test_eq(v1[1], -1.0f))
|
||||
ASSERT(test_eq(v1[2], 1.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
@@ -167,6 +167,8 @@ TEST_DECLARE(glm_quat_for)
|
||||
TEST_DECLARE(glm_quat_forp)
|
||||
TEST_DECLARE(glm_quat_rotatev)
|
||||
TEST_DECLARE(glm_quat_rotate)
|
||||
TEST_DECLARE(glm_quat_rotate_at)
|
||||
TEST_DECLARE(glm_quat_rotate_atm)
|
||||
|
||||
TEST_DECLARE(glmc_quat_identity)
|
||||
TEST_DECLARE(glmc_quat_identity_array)
|
||||
@@ -201,6 +203,8 @@ TEST_DECLARE(glmc_quat_for)
|
||||
TEST_DECLARE(glmc_quat_forp)
|
||||
TEST_DECLARE(glmc_quat_rotatev)
|
||||
TEST_DECLARE(glmc_quat_rotate)
|
||||
TEST_DECLARE(glmc_quat_rotate_at)
|
||||
TEST_DECLARE(glmc_quat_rotate_atm)
|
||||
|
||||
/* bezier */
|
||||
TEST_DECLARE(bezier)
|
||||
@@ -683,6 +687,8 @@ TEST_LIST {
|
||||
TEST_ENTRY(glm_quat_forp)
|
||||
TEST_ENTRY(glm_quat_rotatev)
|
||||
TEST_ENTRY(glm_quat_rotate)
|
||||
TEST_ENTRY(glm_quat_rotate_at)
|
||||
TEST_ENTRY(glm_quat_rotate_atm)
|
||||
|
||||
TEST_ENTRY(glmc_quat_identity)
|
||||
TEST_ENTRY(glmc_quat_identity_array)
|
||||
@@ -717,6 +723,8 @@ TEST_LIST {
|
||||
TEST_ENTRY(glmc_quat_forp)
|
||||
TEST_ENTRY(glmc_quat_rotatev)
|
||||
TEST_ENTRY(glmc_quat_rotate)
|
||||
TEST_ENTRY(glmc_quat_rotate_at)
|
||||
TEST_ENTRY(glmc_quat_rotate_atm)
|
||||
|
||||
/* bezier */
|
||||
TEST_ENTRY(bezier)
|
||||
|
||||
Reference in New Issue
Block a user