mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-13 03:33:48 +00:00
unit tests and fixes
implemented the rest of the tests euler single dimension angle tests now pass, missed 1.0f in z
This commit is contained in:
parent
d03851958d
commit
f96e044d89
2 changed files with 555 additions and 3 deletions
|
|
@ -93,6 +93,472 @@ TEST(MatrixTest, TestEulerPointSet)
|
|||
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, TestGetColumn4)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point4F column;
|
||||
|
||||
test.getColumn(0, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 0), 0.001f);
|
||||
|
||||
test.getColumn(1, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 1), 0.001f);
|
||||
|
||||
test.getColumn(2, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 2), 0.001f);
|
||||
|
||||
test.getColumn(3, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 3), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 3), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 3), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 3), 0.001f);
|
||||
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetRow4)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point4F column;
|
||||
|
||||
test.getRow(0, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(0, 3), 0.001f);
|
||||
|
||||
test.getRow(1, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(1, 3), 0.001f);
|
||||
|
||||
test.getRow(2, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(2, 3), 0.001f);
|
||||
|
||||
test.getRow(3, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(3, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(3, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(3, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 3), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetColumn3)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point3F column;
|
||||
|
||||
test.getColumn(0, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 0), 0.001f);
|
||||
|
||||
test.getColumn(1, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 1), 0.001f);
|
||||
|
||||
test.getColumn(2, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
|
||||
test.getColumn(3, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 3), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 3), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 3), 0.001f);
|
||||
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetRow3)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point3F column;
|
||||
|
||||
test.getRow(0, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(0, 2), 0.001f);
|
||||
|
||||
test.getRow(1, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(1, 2), 0.001f);
|
||||
|
||||
test.getRow(2, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
|
||||
test.getRow(3, &column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(3, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(3, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(3, 2), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetColumn4F)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point4F column;
|
||||
|
||||
column = test.getColumn4F(0);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 0), 0.001f);
|
||||
|
||||
column = test.getColumn4F(1);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 1), 0.001f);
|
||||
|
||||
column = test.getColumn4F(2);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 2), 0.001f);
|
||||
|
||||
column = test.getColumn4F(3);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 3), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 3), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 3), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 3), 0.001f);
|
||||
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetRow4F)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point4F column;
|
||||
|
||||
column = test.getRow4F(0);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(0, 3), 0.001f);
|
||||
|
||||
column = test.getRow4F(1);
|
||||
|
||||
EXPECT_NEAR(column.x, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(1, 3), 0.001f);
|
||||
|
||||
column = test.getRow4F(2);
|
||||
|
||||
EXPECT_NEAR(column.x, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(2, 3), 0.001f);
|
||||
|
||||
column = test.getRow4F(3);
|
||||
|
||||
EXPECT_NEAR(column.x, test(3, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(3, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(3, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 3), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetColumn3F)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point3F column;
|
||||
|
||||
column = test.getColumn3F(0);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 0), 0.001f);
|
||||
|
||||
column = test.getColumn3F(1);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 1), 0.001f);
|
||||
|
||||
column = test.getColumn3F(2);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
|
||||
column = test.getColumn3F(3);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 3), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 3), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 3), 0.001f);
|
||||
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetRow3F)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point3F column;
|
||||
|
||||
column = test.getRow3F(0);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(0, 2), 0.001f);
|
||||
|
||||
column = test.getRow3F(1);
|
||||
|
||||
EXPECT_NEAR(column.x, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(1, 2), 0.001f);
|
||||
|
||||
column = test.getRow3F(2);
|
||||
|
||||
EXPECT_NEAR(column.x, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
|
||||
column = test.getRow3F(3);
|
||||
|
||||
EXPECT_NEAR(column.x, test(3, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(3, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(3, 2), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestSetColumn4)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point4F column(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
|
||||
test.setColumn(0, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 0), 0.001f);
|
||||
|
||||
test.setColumn(1, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 1), 0.001f);
|
||||
|
||||
test.setColumn(2, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 2), 0.001f);
|
||||
|
||||
test.setColumn(3, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 3), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 3), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 3), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 3), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestSetRow4)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point4F column(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
|
||||
test.setRow(0, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(0, 3), 0.001f);
|
||||
|
||||
test.setRow(1, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(1, 3), 0.001f);
|
||||
|
||||
test.setRow(2, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(2, 3), 0.001f);
|
||||
|
||||
test.setRow(3, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(3, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(3, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(3, 2), 0.001f);
|
||||
EXPECT_NEAR(column.w, test(3, 3), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestSetColumn3)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point3F column(1.0f, 1.0f, 1.0f);
|
||||
|
||||
test.setColumn(0, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 0), 0.001f);
|
||||
|
||||
test.setColumn(1, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 1), 0.001f);
|
||||
|
||||
test.setColumn(2, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
|
||||
test.setColumn(3, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 3), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 3), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 3), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestSetRow3)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point3F column(1.0f, 1.0f, 1.0f);
|
||||
|
||||
test.setRow(0, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(0, 2), 0.001f);
|
||||
|
||||
test.setRow(1, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(1, 2), 0.001f);
|
||||
|
||||
test.setRow(2, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(2, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(2, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(2, 2), 0.001f);
|
||||
|
||||
test.setRow(3, column);
|
||||
|
||||
EXPECT_NEAR(column.x, test(3, 0), 0.001f);
|
||||
EXPECT_NEAR(column.y, test(3, 1), 0.001f);
|
||||
EXPECT_NEAR(column.z, test(3, 2), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestDisplace)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
Point3F column(1.0f, 1.0f, 1.0f);
|
||||
|
||||
test.displace(column);
|
||||
|
||||
EXPECT_NEAR(test(0, 3), 6.0f, 0.001f);
|
||||
EXPECT_NEAR(test(1, 3), 1.0f, 0.001f);
|
||||
EXPECT_NEAR(test(2, 3), 2.0f, 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestGetVectorFunctions)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
||||
test.set(EulerF(1.0f, 0.0f, 1.0f), Point3F(5.0f, 0.0f, 1.0f));
|
||||
|
||||
VectorF vector;
|
||||
|
||||
vector = test.getRightVector();
|
||||
|
||||
EXPECT_NEAR(vector.x, test(0, 0), 0.001f);
|
||||
EXPECT_NEAR(vector.y, test(1, 0), 0.001f);
|
||||
EXPECT_NEAR(vector.z, test(2, 0), 0.001f);
|
||||
|
||||
vector = test.getForwardVector();
|
||||
|
||||
EXPECT_NEAR(vector.x, test(0, 1), 0.001f);
|
||||
EXPECT_NEAR(vector.y, test(1, 1), 0.001f);
|
||||
EXPECT_NEAR(vector.z, test(2, 1), 0.001f);
|
||||
|
||||
vector = test.getUpVector();
|
||||
|
||||
EXPECT_NEAR(vector.x, test(0, 2), 0.001f);
|
||||
EXPECT_NEAR(vector.y, test(1, 2), 0.001f);
|
||||
EXPECT_NEAR(vector.z, test(2, 2), 0.001f);
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestSetCrossProduct)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
|
@ -175,6 +641,21 @@ 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, TestMulArgMultipleRotationMatrix)
|
||||
{
|
||||
MatrixF testResult(true);
|
||||
|
||||
MatrixF xRot(EulerF(-1.54f, 0.0f, 0.0f));
|
||||
MatrixF zRot(EulerF(0.0f, 0.0f, -1.57f));
|
||||
|
||||
testResult.mul(zRot, xRot);
|
||||
|
||||
EXPECT_NEAR(testResult(0, 0), 0.0008f, 0.001f); EXPECT_NEAR(testResult(0, 1), -0.0308f, 0.001f);EXPECT_NEAR(testResult(0, 2), 0.9995f, 0.001f); EXPECT_NEAR(testResult(0, 3), 0.0f, 0.001f);
|
||||
EXPECT_NEAR(testResult(1, 0), 1.0f, 0.001f); EXPECT_NEAR(testResult(1, 1), 0.0f, 0.001f); EXPECT_NEAR(testResult(1, 2), -0.0008f, 0.001f); EXPECT_NEAR(testResult(1, 3), 0.0f, 0.001f);
|
||||
EXPECT_NEAR(testResult(2, 0), 0.0f, 0.001f); EXPECT_NEAR(testResult(2, 1), 0.9995f, 0.001f); EXPECT_NEAR(testResult(2, 2), 0.0308f, 0.001f); EXPECT_NEAR(testResult(2, 3), 0.0f, 0.001f);
|
||||
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, TestMulScalarFunction)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
|
@ -294,6 +775,31 @@ TEST(MatrixTest, TestMulBox)
|
|||
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, TestMatrixAdd)
|
||||
{
|
||||
MatrixF test(true);
|
||||
MatrixF test2(true);
|
||||
for (U32 i = 0; i < 4; i++)
|
||||
{
|
||||
for (U32 j = 0; j < 4; j++)
|
||||
{
|
||||
test(i, j) = 1.0f;
|
||||
test2(i, j) = 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
test.add(test2);
|
||||
|
||||
for (U32 i = 0; i < 4; i++)
|
||||
{
|
||||
for (U32 j = 0; j < 4; j++)
|
||||
{
|
||||
EXPECT_NEAR(test(i,j), 2.0f, 0.001f);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TEST(MatrixTest, TestReverseProjection)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
|
@ -352,6 +858,22 @@ TEST(MatrixTest, TestInvertTo)
|
|||
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, TestFullInverse)
|
||||
{
|
||||
MatrixF test(true);
|
||||
test.setPosition(Point3F(5.0f, 2.0f, 1.0f));
|
||||
MatrixF test2(EulerF(1.0f, 0.0f, 1.0f));
|
||||
|
||||
test.mulL(test2);
|
||||
|
||||
EXPECT_TRUE(test.fullInverse());
|
||||
|
||||
EXPECT_NEAR(test(0, 0), 0.5403f, 0.001f); EXPECT_NEAR(test(0, 1), -0.4546f, 0.001f); EXPECT_NEAR(test(0, 2), 0.7081f, 0.001f); EXPECT_NEAR(test(0, 3), -5.0f, 0.001f);
|
||||
EXPECT_NEAR(test(1, 0), 0.8415f, 0.001f); EXPECT_NEAR(test(1, 1), 0.2919f, 0.001f); EXPECT_NEAR(test(1, 2), -0.4546f, 0.001f); EXPECT_NEAR(test(1, 3), -2.0f, 0.001f);
|
||||
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, TestIsAffine)
|
||||
{
|
||||
MatrixF test(true);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue