From b66516e746f9d470b547f47e23a96329ff6ce73c Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Sat, 19 Sep 2009 20:00:36 -0400 Subject: [PATCH] fix bug #42: add missing Transform::Identity() --- Eigen/src/Geometry/Transform.h | 4 ++++ test/geometry.cpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/Eigen/src/Geometry/Transform.h b/Eigen/src/Geometry/Transform.h index 76f47a66f..8425a1cd9 100644 --- a/Eigen/src/Geometry/Transform.h +++ b/Eigen/src/Geometry/Transform.h @@ -198,6 +198,10 @@ public: /** \sa MatrixBase::setIdentity() */ void setIdentity() { m_matrix.setIdentity(); } + static const typename MatrixType::IdentityReturnType Identity() + { + return MatrixType::Identity(); + } template inline Transform& scale(const MatrixBase &other); diff --git a/test/geometry.cpp b/test/geometry.cpp index c76054322..d0e69439b 100644 --- a/test/geometry.cpp +++ b/test/geometry.cpp @@ -151,7 +151,13 @@ template void geometry(void) a = ei_random(-Scalar(0.4)*Scalar(M_PI), Scalar(0.4)*Scalar(M_PI)); q1 = AngleAxisx(a, v0.normalized()); Transform3 t0, t1, t2; + // first test setIdentity() and Identity() t0.setIdentity(); + VERIFY_IS_APPROX(t0.matrix(), Transform3::MatrixType::Identity()); + t0.matrix().setZero(); + t0 = Transform3::Identity(); + VERIFY_IS_APPROX(t0.matrix(), Transform3::MatrixType::Identity()); + t0.linear() = q1.toRotationMatrix(); t1.setIdentity(); t1.linear() = q1.toRotationMatrix();