mirror of
https://github.com/recp/cglm.git
synced 2025-12-30 04:07:45 +00:00
Merge branch 'master' of https://github.com/recp/cglm
This commit is contained in:
@@ -27,7 +27,7 @@ TEST_IMPL(quat) {
|
||||
ASSERT(glm_eq(glm_quat_real(q4), cosf(glm_rad(0.0f) * 0.5f)))
|
||||
|
||||
glm_quat_mat4(q4, rot1);
|
||||
ASSERT(test_assert_mat4_eq2(rot1, GLM_MAT4_IDENTITY, 0.000009f).status == 1)
|
||||
ASSERTIFY(test_assert_mat4_eq2(rot1, GLM_MAT4_IDENTITY, 0.000009f))
|
||||
|
||||
/* 1. test quat to mat and mat to quat */
|
||||
for (i = 0; i < 1000; i++) {
|
||||
@@ -38,17 +38,17 @@ TEST_IMPL(quat) {
|
||||
glmc_quat_mat4(outQuat, outRot);
|
||||
|
||||
/* 2. test first quat and generated one equality */
|
||||
ASSERT(test_assert_quat_eq_abs(inQuat, outQuat).status == 1);
|
||||
ASSERTIFY(test_assert_quat_eq_abs(inQuat, outQuat));
|
||||
|
||||
/* 3. test first rot and second rotation */
|
||||
/* almost equal */
|
||||
ASSERT(test_assert_mat4_eq2(inRot, outRot, 0.000009f).status == 1);
|
||||
ASSERTIFY(test_assert_mat4_eq2(inRot, outRot, 0.000009f));
|
||||
|
||||
/* 4. test SSE mul and raw mul */
|
||||
#if defined( __SSE__ ) || defined( __SSE2__ )
|
||||
test_quat_mul_raw(inQuat, outQuat, q3);
|
||||
glm_quat_mul_sse2(inQuat, outQuat, q4);
|
||||
ASSERT(test_assert_quat_eq(q3, q4).status == 1);
|
||||
ASSERTIFY(test_assert_quat_eq(q3, q4));
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ TEST_IMPL(quat) {
|
||||
/* create view matrix with quaternion */
|
||||
glm_quat_look(eye, q3, view2);
|
||||
|
||||
ASSERT(test_assert_mat4_eq2(view1, view2, 0.000009f).status == 1);
|
||||
ASSERTIFY(test_assert_mat4_eq2(view1, view2, 0.000009f));
|
||||
|
||||
/* 6. test quaternion rotation matrix result */
|
||||
test_rand_quat(q3);
|
||||
@@ -72,7 +72,7 @@ TEST_IMPL(quat) {
|
||||
glm_quat_axis(q3, axis);
|
||||
glm_rotate_make(rot2, glm_quat_angle(q3), axis);
|
||||
|
||||
ASSERT(test_assert_mat4_eq2(rot1, rot2, 0.000009f).status == 1);
|
||||
ASSERTIFY(test_assert_mat4_eq2(rot1, rot2, 0.000009f));
|
||||
|
||||
/* 7. test quaternion multiplication (hamilton product),
|
||||
final rotation = first rotation + second = quat1 * quat2
|
||||
@@ -92,7 +92,7 @@ TEST_IMPL(quat) {
|
||||
glm_quat_mat4(q5, rot2);
|
||||
|
||||
/* result must be same (almost) */
|
||||
ASSERT(test_assert_mat4_eq2(rot1, rot2, 0.000009f).status == 1)
|
||||
ASSERTIFY(test_assert_mat4_eq2(rot1, rot2, 0.000009f))
|
||||
|
||||
/* 8. test quaternion for look rotation */
|
||||
|
||||
@@ -102,21 +102,21 @@ TEST_IMPL(quat) {
|
||||
|
||||
/* result must be identity */
|
||||
glm_quat_identity(q4);
|
||||
ASSERT(test_assert_quat_eq(q3, q4).status == 1)
|
||||
ASSERTIFY(test_assert_quat_eq(q3, q4))
|
||||
|
||||
/* look at from 0, 0, 1 to zero, direction = 0, 0, -1 */
|
||||
glm_quat_forp(GLM_ZUP, GLM_VEC3_ZERO, (vec3){0, 0, -1}, GLM_YUP, q3);
|
||||
|
||||
/* result must be identity */
|
||||
glm_quat_identity(q4);
|
||||
ASSERT(test_assert_quat_eq(q3, q4).status == 1)
|
||||
ASSERTIFY(test_assert_quat_eq(q3, q4))
|
||||
|
||||
/* 8.2 perpendicular */
|
||||
glm_quat_for(GLM_XUP, (vec3){0, 0, -1}, GLM_YUP, q3);
|
||||
|
||||
/* result must be -90 */
|
||||
glm_quatv(q4, glm_rad(-90.0f), GLM_YUP);
|
||||
ASSERT(test_assert_quat_eq(q3, q4).status == 1)
|
||||
ASSERTIFY(test_assert_quat_eq(q3, q4))
|
||||
|
||||
/* 9. test imag, real */
|
||||
|
||||
@@ -139,7 +139,7 @@ TEST_IMPL(quat) {
|
||||
imag[1] = -1.0f;
|
||||
imag[2] = 0.0f;
|
||||
|
||||
ASSERT(test_assert_vec3_eq(imag, axis).status == 1);
|
||||
ASSERTIFY(test_assert_vec3_eq(imag, axis));
|
||||
|
||||
/* 10. test rotate vector using quat */
|
||||
/* (0,0,-1) around (1,0,0) must give (0,1,0) */
|
||||
@@ -157,7 +157,7 @@ TEST_IMPL(quat) {
|
||||
&& fabsf(v1[1] - 1.0f) <= 0.00009f
|
||||
&& fabsf(v1[2]) <= 0.00009f)
|
||||
|
||||
ASSERT(test_assert_vec3_eq(v1, v2).status == 1)
|
||||
ASSERTIFY(test_assert_vec3_eq(v1, v2))
|
||||
|
||||
/* 11. test rotate transform */
|
||||
glm_translate_make(rot1, (vec3){-10.0, 45.0f, 8.0f});
|
||||
@@ -168,7 +168,7 @@ TEST_IMPL(quat) {
|
||||
glm_quat_rotate(rot2, q3, rot2);
|
||||
|
||||
/* result must be same (almost) */
|
||||
ASSERT(test_assert_mat4_eq2(rot1, rot2, 0.000009f).status == 1)
|
||||
ASSERTIFY(test_assert_mat4_eq2(rot1, rot2, 0.000009f))
|
||||
|
||||
glm_rotate_make(rot1, glm_rad(-90), GLM_ZUP);
|
||||
glm_translate(rot1, (vec3){-10.0, 45.0f, 8.0f});
|
||||
@@ -179,7 +179,7 @@ TEST_IMPL(quat) {
|
||||
glm_translate(rot2, (vec3){-10.0, 45.0f, 8.0f});
|
||||
|
||||
/* result must be same (almost) */
|
||||
ASSERT(test_assert_mat4_eq2(rot1, rot2, 0.000009f).status == 1)
|
||||
ASSERTIFY(test_assert_mat4_eq2(rot1, rot2, 0.000009f))
|
||||
|
||||
/* reverse */
|
||||
glm_rotate_make(rot1, glm_rad(-90), GLM_ZUP);
|
||||
@@ -187,7 +187,7 @@ TEST_IMPL(quat) {
|
||||
glm_quat_rotate(rot1, q3, rot1);
|
||||
|
||||
/* result must be identity */
|
||||
ASSERT(test_assert_mat4_eq2(rot1, GLM_MAT4_IDENTITY, 0.000009f).status == 1)
|
||||
ASSERTIFY(test_assert_mat4_eq2(rot1, GLM_MAT4_IDENTITY, 0.000009f))
|
||||
|
||||
test_rand_quat(q3);
|
||||
|
||||
@@ -196,7 +196,7 @@ TEST_IMPL(quat) {
|
||||
glm_quat_mul(q3, q4, q5);
|
||||
|
||||
glm_quat_identity(q3);
|
||||
ASSERT(test_assert_quat_eq(q3, q5).status == 1)
|
||||
ASSERTIFY(test_assert_quat_eq(q3, q5))
|
||||
|
||||
/* TODO: add tests for slerp, lerp */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user