Add missing default ctor in Rotation2D
diff --git a/Eigen/src/Geometry/Rotation2D.h b/Eigen/src/Geometry/Rotation2D.h index c82762a..776c361 100644 --- a/Eigen/src/Geometry/Rotation2D.h +++ b/Eigen/src/Geometry/Rotation2D.h
@@ -60,6 +60,9 @@ /** Construct a 2D counter clock wise rotation from the angle \a a in radian. */ explicit inline Rotation2D(const Scalar& a) : m_angle(a) {} + + /** Default constructor wihtout initialization. The represented rotation is undefined. */ + Rotation2D() {} /** \returns the rotation angle */ inline Scalar angle() const { return m_angle; } @@ -81,10 +84,10 @@ /** Applies the rotation to a 2D vector */ Vector2 operator* (const Vector2& vec) const { return toRotationMatrix() * vec; } - + template<typename Derived> Rotation2D& fromRotationMatrix(const MatrixBase<Derived>& m); - Matrix2 toRotationMatrix(void) const; + Matrix2 toRotationMatrix() const; /** \returns the spherical interpolation between \c *this and \a other using * parameter \a t. It is in fact equivalent to a linear interpolation.
diff --git a/test/geo_transformations.cpp b/test/geo_transformations.cpp index 7d90803..1768d7b 100644 --- a/test/geo_transformations.cpp +++ b/test/geo_transformations.cpp
@@ -397,6 +397,15 @@ t20 = Translation2(v20) * (Rotation2D<Scalar>(s0) * Eigen::Scaling(s0)); t21 = Translation2(v20) * Rotation2D<Scalar>(s0) * Eigen::Scaling(s0); VERIFY_IS_APPROX(t20,t21); + + // check basic features + { + Rotation2D<Scalar> r1; // default ctor + r1 = Rotation2D<Scalar>(s0); // copy assignment + VERIFY_IS_APPROX(r1.angle(),s0); + Rotation2D<Scalar> r2(r1); // copy ctor + VERIFY_IS_APPROX(r2.angle(),s0); + } } template<typename Scalar> void transform_alignment()