Quaternion self test fixed.
The self-test expects a unit quaternion. The Quaternion vector<3> constructor uses the vector as-is, expecting it to be potentially the output from an existing Quaternion. MakeQuaternion is the right function for build a unit quaternion, so the self-test should actually use this. This error had been hidden due to building with NDEBUG, which ifdefs out the self-test. The code was probably changed during the refactoring process.
This commit is contained in:
parent
f393f8614f
commit
168ee430f4
|
@ -75,13 +75,13 @@ QuaternionSelfTest()
|
||||||
Vector3F yAxis {0.0, 1.0, 0.0};
|
Vector3F yAxis {0.0, 1.0, 0.0};
|
||||||
float angle = M_PI / 2;
|
float angle = M_PI / 2;
|
||||||
|
|
||||||
Quaternionf p = quaternionf(yAxis, angle);
|
Quaternionf p = MakeQuaternion(yAxis, angle);
|
||||||
Quaternionf q;
|
Quaternionf q;
|
||||||
Vector3F vr {0.0, 0.0, 1.0};
|
Vector3F vr {0.0, 0.0, 1.0};
|
||||||
|
|
||||||
assert(p.isUnitQuaternion());
|
p.SetEpsilon(0.0001);
|
||||||
std::cerr << p.rotate(v) << std::endl;
|
assert(p.IsUnitQuaternion());
|
||||||
assert(p.rotate(v) == vr);
|
assert(p.Rotate(v) == vr);
|
||||||
assert(p * q == p);
|
assert(p * q == p);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue