mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
tests: add tests for some affine rotations
This commit is contained in:
@@ -266,18 +266,129 @@ TEST_IMPL(GLM_PREFIX, scale_uni) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_IMPL(GLM_PREFIX, rotate_x) {
|
TEST_IMPL(GLM_PREFIX, rotate_x) {
|
||||||
|
mat4 m1 = GLM_MAT4_IDENTITY_INIT;
|
||||||
|
vec4 v1 = {0.0f, 1.0f, 0.0f, 1.0f}, v2 = {0.0f, 1.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
|
GLM(rotate_x)(m1, GLM_PI_2f, m1);
|
||||||
|
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_vec3_copy(v2, v1);
|
||||||
|
|
||||||
|
GLM(rotate_x)(m1, GLM_PI_2f, m1);
|
||||||
|
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_vec3_copy(v2, v1);
|
||||||
|
|
||||||
|
GLM(rotate_x)(m1, GLM_PI_2f, m1);
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_IMPL(GLM_PREFIX, rotate_y) {
|
TEST_IMPL(GLM_PREFIX, rotate_y) {
|
||||||
|
mat4 m1 = GLM_MAT4_IDENTITY_INIT;
|
||||||
|
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f}, v2 = {1.0f, 0.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
|
GLM(rotate_y)(m1, GLM_PI_2f, m1);
|
||||||
|
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_vec3_copy(v2, v1);
|
||||||
|
|
||||||
|
GLM(rotate_y)(m1, GLM_PI_2f, m1);
|
||||||
|
glm_mat4_mulv(m1, v1, v1);
|
||||||
|
|
||||||
|
ASSERT(test_eq(v1[0], -1.0f))
|
||||||
|
ASSERT(test_eq(v1[1], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[2], 0.0f))
|
||||||
|
|
||||||
|
glm_vec3_copy(v2, v1);
|
||||||
|
|
||||||
|
GLM(rotate_y)(m1, GLM_PI_2f, m1);
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_IMPL(GLM_PREFIX, rotate_z) {
|
TEST_IMPL(GLM_PREFIX, rotate_z) {
|
||||||
|
mat4 m1 = GLM_MAT4_IDENTITY_INIT;
|
||||||
|
vec4 v1 = {0.0f, 1.0f, 0.0f, 1.0f}, v2 = {0.0f, 1.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
|
GLM(rotate_z)(m1, GLM_PI_2f, m1);
|
||||||
|
glm_mat4_mulv(m1, v1, v1);
|
||||||
|
|
||||||
|
ASSERT(test_eq(v1[0], -1.0f))
|
||||||
|
ASSERT(test_eq(v1[1], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[2], 0.0f))
|
||||||
|
|
||||||
|
glm_vec3_copy(v2, v1);
|
||||||
|
|
||||||
|
GLM(rotate_z)(m1, GLM_PI_2f, m1);
|
||||||
|
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_vec3_copy(v2, v1);
|
||||||
|
|
||||||
|
GLM(rotate_z)(m1, GLM_PI_2f, m1);
|
||||||
|
glm_mat4_mulv(m1, v1, v1);
|
||||||
|
|
||||||
|
ASSERT(test_eq(v1[0], 1.0f))
|
||||||
|
ASSERT(test_eq(v1[1], 0.0f))
|
||||||
|
ASSERT(test_eq(v1[2], 0.0f))
|
||||||
|
|
||||||
TEST_SUCCESS
|
TEST_SUCCESS
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_IMPL(GLM_PREFIX, rotate_make) {
|
TEST_IMPL(GLM_PREFIX, rotate_make) {
|
||||||
|
mat4 m1 = GLM_MAT4_IDENTITY_INIT;
|
||||||
|
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
|
/* rotate X around Y = -Z */
|
||||||
|
GLM(rotate_make)(m1, GLM_PI_2f, GLM_YUP);
|
||||||
|
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))
|
||||||
|
|
||||||
|
/* rotate -Z around X = Y */
|
||||||
|
GLM(rotate_make)(m1, GLM_PI_2f, GLM_XUP);
|
||||||
|
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))
|
||||||
|
|
||||||
|
/* rotate Y around X = +Z */
|
||||||
|
GLM(rotate_make)(m1, GLM_PI_2f, GLM_XUP);
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
16
test/tests.h
16
test/tests.h
@@ -27,6 +27,10 @@ TEST_DECLARE(glm_scale_to)
|
|||||||
TEST_DECLARE(glm_scale_make)
|
TEST_DECLARE(glm_scale_make)
|
||||||
TEST_DECLARE(glm_scale)
|
TEST_DECLARE(glm_scale)
|
||||||
TEST_DECLARE(glm_scale_uni)
|
TEST_DECLARE(glm_scale_uni)
|
||||||
|
TEST_DECLARE(glm_rotate_x)
|
||||||
|
TEST_DECLARE(glm_rotate_y)
|
||||||
|
TEST_DECLARE(glm_rotate_z)
|
||||||
|
TEST_DECLARE(glm_rotate_make)
|
||||||
|
|
||||||
TEST_DECLARE(glmc_translate)
|
TEST_DECLARE(glmc_translate)
|
||||||
TEST_DECLARE(glmc_translate_to)
|
TEST_DECLARE(glmc_translate_to)
|
||||||
@@ -38,6 +42,10 @@ TEST_DECLARE(glmc_scale_to)
|
|||||||
TEST_DECLARE(glmc_scale_make)
|
TEST_DECLARE(glmc_scale_make)
|
||||||
TEST_DECLARE(glmc_scale)
|
TEST_DECLARE(glmc_scale)
|
||||||
TEST_DECLARE(glmc_scale_uni)
|
TEST_DECLARE(glmc_scale_uni)
|
||||||
|
TEST_DECLARE(glmc_rotate_x)
|
||||||
|
TEST_DECLARE(glmc_rotate_y)
|
||||||
|
TEST_DECLARE(glmc_rotate_z)
|
||||||
|
TEST_DECLARE(glmc_rotate_make)
|
||||||
|
|
||||||
/* mat4 */
|
/* mat4 */
|
||||||
TEST_DECLARE(glm_mat4_ucopy)
|
TEST_DECLARE(glm_mat4_ucopy)
|
||||||
@@ -570,6 +578,10 @@ TEST_LIST {
|
|||||||
TEST_ENTRY(glm_scale_make)
|
TEST_ENTRY(glm_scale_make)
|
||||||
TEST_ENTRY(glm_scale)
|
TEST_ENTRY(glm_scale)
|
||||||
TEST_ENTRY(glm_scale_uni)
|
TEST_ENTRY(glm_scale_uni)
|
||||||
|
TEST_ENTRY(glm_rotate_x)
|
||||||
|
TEST_ENTRY(glm_rotate_y)
|
||||||
|
TEST_ENTRY(glm_rotate_z)
|
||||||
|
TEST_ENTRY(glm_rotate_make)
|
||||||
|
|
||||||
TEST_ENTRY(glmc_translate)
|
TEST_ENTRY(glmc_translate)
|
||||||
TEST_ENTRY(glmc_translate_to)
|
TEST_ENTRY(glmc_translate_to)
|
||||||
@@ -581,6 +593,10 @@ TEST_LIST {
|
|||||||
TEST_ENTRY(glmc_scale_make)
|
TEST_ENTRY(glmc_scale_make)
|
||||||
TEST_ENTRY(glmc_scale)
|
TEST_ENTRY(glmc_scale)
|
||||||
TEST_ENTRY(glmc_scale_uni)
|
TEST_ENTRY(glmc_scale_uni)
|
||||||
|
TEST_ENTRY(glmc_rotate_x)
|
||||||
|
TEST_ENTRY(glmc_rotate_y)
|
||||||
|
TEST_ENTRY(glmc_rotate_z)
|
||||||
|
TEST_ENTRY(glmc_rotate_make)
|
||||||
|
|
||||||
/* mat4 */
|
/* mat4 */
|
||||||
TEST_ENTRY(glm_mat4_ucopy)
|
TEST_ENTRY(glm_mat4_ucopy)
|
||||||
|
|||||||
Reference in New Issue
Block a user