mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
105 lines
1.9 KiB
C
105 lines
1.9 KiB
C
/*
|
|
* Copyright (c), Recep Aslantas.
|
|
*
|
|
* MIT License (MIT), http://opensource.org/licenses/MIT
|
|
* Full license can be found in the LICENSE file
|
|
*/
|
|
|
|
#include "test_common.h"
|
|
|
|
TEST_IMPL(GLM_PREFIX, translated2d) {
|
|
mat3 m1, m2, tmp;
|
|
vec2 v = { 1.2f, 3.4f };
|
|
|
|
test_rand_transform2d(m1);
|
|
glm_mat3_copy(m1, m2);
|
|
GLM(translated2d)(m2, v);
|
|
|
|
glm_translate2d_make(tmp, v);
|
|
glm_mat3_mul(tmp, m1, m1);
|
|
|
|
test_assert_mat3_eq(m1, m2);
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
TEST_IMPL(GLM_PREFIX, translated2d_x) {
|
|
mat3 m1, m2, tmp;
|
|
float x = test_rand();
|
|
|
|
test_rand_transform2d(m1);
|
|
glm_mat3_copy(m1, m2);
|
|
GLM(translated2d_x)(m2, x);
|
|
|
|
glm_translate2d_make(tmp, (vec2) { x, 0.0f });
|
|
glm_mat3_mul(tmp, m1, m1);
|
|
|
|
test_assert_mat3_eq(m1, m2);
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
TEST_IMPL(GLM_PREFIX, translated2d_y) {
|
|
mat3 m1, m2, tmp;
|
|
float y = test_rand();
|
|
|
|
test_rand_transform2d(m1);
|
|
glm_mat3_copy(m1, m2);
|
|
GLM(translated2d_y)(m2, y);
|
|
|
|
glm_translate2d_make(tmp, (vec2) { 0.0f, y });
|
|
glm_mat3_mul(tmp, m1, m1);
|
|
|
|
test_assert_mat3_eq(m1, m2);
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
TEST_IMPL(GLM_PREFIX, rotated2d) {
|
|
mat3 m1, m2, tmp;
|
|
float a = test_rand();
|
|
|
|
test_rand_transform2d(m1);
|
|
glm_mat3_copy(m1, m2);
|
|
GLM(rotated2d)(m2, a);
|
|
|
|
glm_rotate2d_make(tmp, a);
|
|
glm_mat3_mul(tmp, m1, m1);
|
|
|
|
test_assert_mat3_eq(m1, m2);
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
TEST_IMPL(GLM_PREFIX, scaled2d) {
|
|
mat3 m1, m2, tmp;
|
|
vec2 v = { test_rand(), test_rand() };
|
|
|
|
test_rand_transform2d(m1);
|
|
glm_mat3_copy(m1, m2);
|
|
GLM(scaled2d)(m2, v);
|
|
|
|
glm_scale2d_make(tmp, v);
|
|
glm_mat3_mul(tmp, m1, m1);
|
|
|
|
test_assert_mat3_eq(m1, m2);
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
TEST_IMPL(GLM_PREFIX, scaled2d_uni) {
|
|
mat3 m1, m2, tmp;
|
|
float s = test_rand();
|
|
|
|
test_rand_transform2d(m1);
|
|
glm_mat3_copy(m1, m2);
|
|
GLM(scaled2d_uni)(m2, s);
|
|
|
|
glm_scale2d_make(tmp, (vec2) { s, s });
|
|
glm_mat3_mul(tmp, m1, m1);
|
|
|
|
test_assert_mat3_eq(m1, m2);
|
|
|
|
TEST_SUCCESS
|
|
}
|