aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/geometry.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-07-19 13:03:23 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-07-19 13:03:23 +0000
commit05ad0834676b7f375df7fd33d90a7db871787330 (patch)
tree762654dac952a2abb928ec685c7009e95fa67c99 /test/geometry.cpp
parent7245c63067c69dcaac036ef9045c84ed1401c12d (diff)
Added MatrixBase::Unit*() static function to easily create unit/basis vectors.
Removed EulerAngles, addes typdefs for Quaternion and AngleAxis, and added automatic conversions from Quaternion/AngleAxis to Matrix3 such that: Matrix3f m = AngleAxisf(0.2,Vector3f::UnitX) * AngleAxisf(0.2,Vector3f::UnitY); just works.
Diffstat (limited to 'test/geometry.cpp')
-rw-r--r--test/geometry.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/test/geometry.cpp b/test/geometry.cpp
index 64b096aa8..395d1c2c8 100644
--- a/test/geometry.cpp
+++ b/test/geometry.cpp
@@ -40,12 +40,12 @@ template<typename Scalar> void geometry(void)
typedef Matrix<Scalar,4,1> Vector4;
typedef Quaternion<Scalar> Quaternion;
typedef AngleAxis<Scalar> AngleAxis;
- typedef EulerAngles<Scalar> EulerAngles;
Quaternion q1, q2;
Vector3 v0 = Vector3::random(),
v1 = Vector3::random(),
v2 = Vector3::random();
+ Matrix3 matrot1;
Scalar a = ei_random<Scalar>(-M_PI, M_PI);
@@ -61,11 +61,13 @@ template<typename Scalar> void geometry(void)
q2 = q1.toRotationMatrix();
VERIFY_IS_APPROX(q1*v1,q2*v1);
- // Euler angle conversion
- VERIFY_IS_APPROX(Quaternion(EulerAngles(q1)) * v1, q1 * v1);
- EulerAngles ea = q2;
- VERIFY_IS_APPROX(EulerAngles(Quaternion(ea)).coeffs(), ea.coeffs());
- VERIFY_IS_NOT_APPROX(EulerAngles(Quaternion(EulerAngles(v2.cwise() * Vector3(0.2,-0.2,1)))).coeffs(), v2);
+ matrot1 = AngleAxis(0.1, Vector3::UnitX())
+ * AngleAxis(0.2, Vector3::UnitY())
+ * AngleAxis(0.3, Vector3::UnitZ());
+ VERIFY_IS_APPROX(matrot1 * v1,
+ AngleAxis(0.1, Vector3(1,0,0)).toRotationMatrix()
+ * (AngleAxis(0.2, Vector3(0,1,0)).toRotationMatrix()
+ * (AngleAxis(0.3, Vector3(0,0,1)).toRotationMatrix() * v1)));
// angle-axis conversion
AngleAxis aa = q1;