diff --git a/Engine/source/testing/mathMatrixTest.cpp b/Engine/source/testing/mathMatrixTest.cpp index 5807989b5..a2e7da5e1 100644 --- a/Engine/source/testing/mathMatrixTest.cpp +++ b/Engine/source/testing/mathMatrixTest.cpp @@ -164,6 +164,20 @@ TEST(MatrixTest, TestMulArgMatrixFunction) EXPECT_NEAR(testResult(3, 0), 0.0f, 0.001f); EXPECT_NEAR(testResult(3, 1), 0.0f, 0.001f); EXPECT_NEAR(testResult(3, 2), 0.0f, 0.001f); EXPECT_NEAR(testResult(3, 3), 1.0f, 0.001f); } +TEST(MatrixTest, TestMulBox) +{ + MatrixF test(true); + test.setPosition(Point3F(5.0f, 2.0f, 1.0f)); + MatrixF test2(EulerF(1.0f, 0.0f, 1.0f)); + + Box3F testBox(1.0f); + + test.mul(testBox); + + EXPECT_NEAR(testBox.minExtents.x, 4.5f, 0.001f); EXPECT_NEAR(testBox.minExtents.y, 1.5f, 0.001f); EXPECT_NEAR(testBox.minExtents.z, 0.5f, 0.001f); + EXPECT_NEAR(testBox.maxExtents.x, 5.5f, 0.001f); EXPECT_NEAR(testBox.maxExtents.y, 2.5f, 0.001f); EXPECT_NEAR(testBox.maxExtents.z, 1.5f, 0.001f); +} + TEST(MatrixTest, TestInverse) { MatrixF test(true); @@ -179,3 +193,23 @@ TEST(MatrixTest, TestInverse) EXPECT_NEAR(test(2, 0), 0.0, 0.001f); EXPECT_NEAR(test(2, 1), 0.8415f, 0.001f); EXPECT_NEAR(test(2, 2), 0.5403f, 0.001f); EXPECT_NEAR(test(2, 3), -1.0f, 0.001f); EXPECT_NEAR(test(3, 0), 0.0f, 0.001f); EXPECT_NEAR(test(3, 1), 0.0f, 0.001f); EXPECT_NEAR(test(3, 2), 0.0f, 0.001f); EXPECT_NEAR(test(3, 3), 1.0f, 0.001f); } + +TEST(MatrixTest, TestTransformPlane) +{ + MatrixF test(true); + test.setPosition(Point3F(5.0f, 2.0f, 1.0f)); + MatrixF test2(EulerF(1.0f, 0.0f, 1.0f)); + + test.mulL(test2); + + PlaneF plane(Point3F(0.0f, 0.0f, 0.0f), Point3F(0.0f, 0.0f, 1.0f)); + + PlaneF res; + mTransformPlane(test, Point3F(1.0f, 1.0f, 1.0f), plane, &res); + + EXPECT_NEAR(res.x, 0.0f, 0.001f); + EXPECT_NEAR(res.y, 0.8414f, 0.001f); + EXPECT_NEAR(res.z, 0.5403f, 0.001f); + EXPECT_NEAR(res.d, -1.0f, 0.001f); + +}