Add packed/aligned quat types

This commit is contained in:
Adam Lusch
2025-03-21 17:11:43 -05:00
committed by Christophe
parent 3058381e2e
commit be1fb4daa4
2 changed files with 104 additions and 0 deletions

View File

@@ -200,6 +200,46 @@ static int test_copy_vec3()
return Error;
}
static int test_copy_quat()
{
int Error = 0;
{
glm::aligned_quat const u(1.f, 2.f, 3.f, 4.f);
glm::packed_quat const v(u);
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
Error += glm::equal(v.w, u.w, glm::epsilon<float>()) ? 0 : 1;
}
{
glm::packed_quat const u(1.f, 2.f, 3.f, 4.f);
glm::aligned_quat const v(u);
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
Error += glm::equal(v.w, u.w, glm::epsilon<float>()) ? 0 : 1;
}
{
glm::aligned_dquat const u(1., 2., 3., 4.);
glm::packed_dquat const v(u);
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
Error += glm::equal(v.w, u.w, glm::epsilon<double>()) ? 0 : 1;
}
{
glm::packed_dquat const u(1., 2., 3., 4.);
glm::aligned_dquat const v(u);
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
Error += glm::equal(v.w, u.w, glm::epsilon<double>()) ? 0 : 1;
}
return Error;
}
static int test_splat_vec3()
{
int Error = 0;
@@ -499,6 +539,7 @@ int Error = 0;
Error += test_copy();
Error += test_copy_vec4();
Error += test_copy_vec3();
Error += test_copy_quat();
Error += test_aligned_ivec4();
Error += test_aligned_mat4();