From c568f0a8c9f0aef00c770b494ee1ff3a89ab48de Mon Sep 17 00:00:00 2001 From: rtk0c Date: Sun, 22 May 2022 01:08:24 -0700 Subject: Changeset: 35 Fix missing sources in git submodules after migration to PlasticSCM --- .../glm/source/test/gtx/gtx_matrix_operation.cpp | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 3rdparty/glm/source/test/gtx/gtx_matrix_operation.cpp (limited to '3rdparty/glm/source/test/gtx/gtx_matrix_operation.cpp') diff --git a/3rdparty/glm/source/test/gtx/gtx_matrix_operation.cpp b/3rdparty/glm/source/test/gtx/gtx_matrix_operation.cpp new file mode 100644 index 0000000..79c95c5 --- /dev/null +++ b/3rdparty/glm/source/test/gtx/gtx_matrix_operation.cpp @@ -0,0 +1,86 @@ +#define GLM_ENABLE_EXPERIMENTAL +#include +#include +#include +#include + +int test_adjugate() +{ + int Error = 0; + + const float epsilon = std::numeric_limits::epsilon(); + + // mat2 + const glm::mat2 m2( + 2, 3, + 1, 5 + ); + + const glm::mat2 eam2( + 5, -3, + -1, 2 + ); + + const glm::mat2 am2 = glm::adjugate(m2); + + Error += glm::all(glm::bvec2( + glm::all(glm::epsilonEqual(am2[0], eam2[0], epsilon)), + glm::all(glm::epsilonEqual(am2[1], eam2[1], epsilon)) + )) ? 0 : 1; + + // mat3 + const glm::mat3 m3( + 2, 3, 3, + 1, 5, 4, + 4, 6, 8 + ); + + const glm::mat3 eam3( + 16, -6, -3, + 8, 4, -5, + -14, 0, 7 + ); + + const glm::mat3 am3 = glm::adjugate(m3); + + Error += glm::all(glm::bvec3( + glm::all(glm::epsilonEqual(am3[0], eam3[0], epsilon)), + glm::all(glm::epsilonEqual(am3[1], eam3[1], epsilon)), + glm::all(glm::epsilonEqual(am3[2], eam3[2], epsilon)) + )) ? 0 : 1; + + // mat4 + const glm::mat4 m4( + 2, 3, 3, 1, + 1, 5, 4, 3, + 4, 6, 8, 5, + -2, -3, -3, 4 + ); + + const glm::mat4 eam4( + 97, -30, -15, 17, + 45, 20, -25, 5, + -91, 0, 35, -21, + 14, 0, 0, 14 + ); + + const glm::mat4 am4 = glm::adjugate(m4); + + Error += glm::all(glm::bvec4( + glm::all(glm::epsilonEqual(am4[0], eam4[0], epsilon)), + glm::all(glm::epsilonEqual(am4[1], eam4[1], epsilon)), + glm::all(glm::epsilonEqual(am4[2], eam4[2], epsilon)), + glm::all(glm::epsilonEqual(am4[3], eam4[3], epsilon)) + )) ? 0 : 1; + + return Error; +} + +int main() +{ + int Error = 0; + + Error += test_adjugate(); + + return Error; +} -- cgit v1.2.3-70-g09d2