10
QT_TEST(rigidbody_test)
12
RIGIDBODY <float> body;
13
MATHVECTOR <float, 3> initpos;
14
QUATERNION <float> quat;
16
body.SetPosition(initpos);
17
quat.Rotate(-3.141593*0.5, 1, 0, 0);
18
body.SetOrientation(quat);
20
MATHVECTOR <float, 3> localcoords;
21
localcoords.Set(0,0,1);
22
MATHVECTOR <float, 3> expected;
24
MATHVECTOR <float, 3> pos = body.TransformLocalToWorld(localcoords);
25
QT_CHECK_CLOSE(pos[0], expected[0], 0.0001);
26
QT_CHECK_CLOSE(pos[1], expected[1], 0.0001);
27
QT_CHECK_CLOSE(pos[2], expected[2], 0.0001);
29
QT_CHECK_CLOSE(body.TransformWorldToLocal(pos)[0], localcoords[0], 0.0001);
30
QT_CHECK_CLOSE(body.TransformWorldToLocal(pos)[1], localcoords[1], 0.0001);
31
QT_CHECK_CLOSE(body.TransformWorldToLocal(pos)[2], localcoords[2], 0.0001);