10#ifndef EIGEN_ROTATION2D_H
11#define EIGEN_ROTATION2D_H
36 typedef _Scalar Scalar;
40template<
typename _Scalar>
47 using Base::operator*;
71 template<
typename Derived>
74 fromRotationMatrix(m.derived());
78 EIGEN_DEVICE_FUNC
inline Scalar angle()
const {
return m_angle; }
93 else if(tmp<-
Scalar(EIGEN_PI)) tmp +=
Scalar(2*EIGEN_PI);
102 {
return Rotation2D(m_angle + other.m_angle); }
106 { m_angle += other.m_angle;
return *
this; }
112 template<
typename Derived>
123 template<
typename Derived>
125 {
return fromRotationMatrix(m.derived()); }
141 template<
typename NewScalarType>
146 template<
typename OtherScalarType>
149 m_angle =
Scalar(other.angle());
159 {
return internal::isApprox(m_angle,other.m_angle,
prec); }
174template<
typename Scalar>
175template<
typename Derived>
178 EIGEN_USING_STD(
atan2)
179 EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
186template<
typename Scalar>
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:50
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
\geometry_module
Definition Rotation2D.h:42
EIGEN_DEVICE_FUNC Rotation2D(const Rotation2D< OtherScalarType > &other)
Copy constructor with scalar type conversion.
Definition Rotation2D.h:147
EIGEN_DEVICE_FUNC Rotation2D inverse() const
Definition Rotation2D.h:98
EIGEN_DEVICE_FUNC Scalar smallestAngle() const
Definition Rotation2D.h:90
EIGEN_DEVICE_FUNC Rotation2D operator*(const Rotation2D &other) const
Concatenates two rotations.
Definition Rotation2D.h:101
EIGEN_DEVICE_FUNC Matrix2 toRotationMatrix() const
Constructs and.
Definition Rotation2D.h:188
EIGEN_DEVICE_FUNC Rotation2D slerp(const Scalar &t, const Rotation2D &other) const
Definition Rotation2D.h:130
EIGEN_DEVICE_FUNC Rotation2D(const Scalar &a)
Construct a 2D counter clock wise rotation from the angle a in radian.
Definition Rotation2D.h:62
EIGEN_DEVICE_FUNC Rotation2D(const MatrixBase< Derived > &m)
Construct a 2D rotation from a 2x2 rotation matrix mat.
Definition Rotation2D.h:72
EIGEN_DEVICE_FUNC Rotation2D & operator*=(const Rotation2D &other)
Concatenates two rotations.
Definition Rotation2D.h:105
EIGEN_DEVICE_FUNC internal::cast_return_type< Rotation2D, Rotation2D< NewScalarType > >::type cast() const
Definition Rotation2D.h:142
_Scalar Scalar
the scalar type of the coefficients
Definition Rotation2D.h:51
EIGEN_DEVICE_FUNC bool isApprox(const Rotation2D &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
Definition Rotation2D.h:158
EIGEN_DEVICE_FUNC Rotation2D & operator=(const MatrixBase< Derived > &m)
Set *this from a 2x2 rotation matrix mat.
Definition Rotation2D.h:124
EIGEN_DEVICE_FUNC Scalar smallestPositiveAngle() const
Definition Rotation2D.h:84
EIGEN_DEVICE_FUNC Rotation2D()
Default constructor wihtout initialization.
Definition Rotation2D.h:65
EIGEN_DEVICE_FUNC Scalar angle() const
Definition Rotation2D.h:78
EIGEN_DEVICE_FUNC Scalar & angle()
Definition Rotation2D.h:81
Common base class for compact rotation representations.
Definition RotationBase.h:30
friend EIGEN_DEVICE_FUNC RotationMatrixType operator*(const EigenBase< OtherDerived > &l, const Rotation2D< _Scalar > &r)
Definition RotationBase.h:76
Namespace containing all symbols from the Eigen library.
Definition LDLT.h:16
Holds information about the various numeric (i.e.
Definition NumTraits.h:236
Definition XprHelper.h:510
Definition ForwardDeclarations.h:17