From 69df64c9d77f789f5a755497f30382183f60f46d Mon Sep 17 00:00:00 2001 From: Thompson Lee Date: Fri, 12 Aug 2016 21:01:59 -0400 Subject: [PATCH] Adding Mtx_Transpose() test case to the PC main.cpp file. (Not tested, due to setup configurations not adequate on my end.) Code is mostly formatted from the 3DS equivalent, test/3ds/main.cpp. --- test/pc/main.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/pc/main.cpp b/test/pc/main.cpp index 3a5d8a9..b39f908 100644 --- a/test/pc/main.cpp +++ b/test/pc/main.cpp @@ -737,6 +737,31 @@ check_matrix(generator_t &gen, distribution_t &dist) assert(Mtx_MultiplyFVecH(&m, FVec3_New(v.x, v.y, v.z)) == glm::mat4x3(g)*v); } + + // check matrix transpose + { + C3D_Mtx m; + glm::mat4 check; + + randomMatrix(m, gen, dist); + + //Reducing rounding errors, and copying the values over to the check matrix. + for(size_t i = 0; i < 16; ++i) + { + m.m[i] = static_cast(m.m[i]); + } + + check = loadMatrix(m); + + Mtx_Transpose(&m); + Mtx_Transpose(&m); + assert(m == glm::transpose(glm::transpose(check))); + + //Comparing inverse(transpose(m)) == transpose(inverse(m)) + Mtx_Transpose(&m); + Mtx_Inverse(&m); + assert(m == glm::transpose(glm::inverse(check))); + } } }