template<typename _Scalar>
Rotation2D class
Represents a rotation/orientation in a 2 dimensional space.
Template parameters | |
---|---|
_Scalar | the scalar type, i.e., the type of the coefficients |
Contents
This is defined in the Geometry module. #include <Eigen/Geometry>
This class is equivalent to a single scalar representing a counter clock wise rotation as a single angle in radian. It provides some additional features such as the automatic conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar interface to Quaternion in order to facilitate the writing of generic algorithms dealing with rotations.
Base classes
-
template<typename Derived, int _Dim>class RotationBase
- Common base class for compact rotation representations.
Public types
Public static functions
- static auto Identity() -> Rotation2D
Constructors, destructors, conversion operators
- Rotation2D(const Scalar& a) explicit
- Rotation2D()
-
template<typename Derived>Rotation2D(const MatrixBase<Derived>& m) explicit
-
template<typename OtherScalarType>Rotation2D(const Rotation2D<OtherScalarType>& other) explicit
Public functions
- auto angle() const -> Scalar
- auto angle() -> Scalar&
-
template<typename NewScalarType>auto cast() const -> internal::cast_return_type<Rotation2D, Rotation2D<NewScalarType>>::type
-
template<typename Derived>auto fromRotationMatrix(const MatrixBase<Derived>& m) -> Rotation2D&
-
template<typename Derived>auto fromRotationMatrix(const MatrixBase<Derived>& mat) -> Rotation2D<Scalar>&
- auto inverse() const -> Rotation2D
- auto isApprox(const Rotation2D& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const -> bool
- auto operator*(const Rotation2D& other) const -> Rotation2D
- auto operator*(const Vector2& vec) const -> Vector2
- auto operator*=(const Rotation2D& other) -> Rotation2D&
-
template<typename Derived>auto operator=(const MatrixBase<Derived>& m) -> Rotation2D&
- auto slerp(const Scalar& t, const Rotation2D& other) const -> Rotation2D
- auto smallestAngle() const -> Scalar
- auto smallestPositiveAngle() const -> Scalar
- auto toRotationMatrix() const -> Matrix2
Protected variables
Enum documentation
template<typename _Scalar>
enum Eigen:: Rotation2D<_Scalar>:: (anonymous)
Enumerators | |
---|---|
Dim |
Typedef documentation
template<typename _Scalar>
typedef _Scalar Eigen:: Rotation2D<_Scalar>:: Scalar
the scalar type of the coefficients
Function documentation
template<typename _Scalar>
static Rotation2D Eigen:: Rotation2D<_Scalar>:: Identity()
template<typename _Scalar>
Eigen:: Rotation2D<_Scalar>:: Rotation2D(const Scalar& a) explicit
Construct a 2D counter clock wise rotation from the angle a in radian.
template<typename _Scalar>
Eigen:: Rotation2D<_Scalar>:: Rotation2D()
Default constructor wihtout initialization. The represented rotation is undefined.
template<typename _Scalar>
template<typename Derived>
Eigen:: Rotation2D<_Scalar>:: Rotation2D(const MatrixBase<Derived>& m) explicit
Construct a 2D rotation from a 2x2 rotation matrix mat.
template<typename _Scalar>
template<typename OtherScalarType>
Eigen:: Rotation2D<_Scalar>:: Rotation2D(const Rotation2D<OtherScalarType>& other) explicit
Copy constructor with scalar type conversion
template<typename _Scalar>
template<typename NewScalarType>
internal::cast_return_type<Rotation2D, Rotation2D<NewScalarType>>::type Eigen:: Rotation2D<_Scalar>:: cast() const
Returns | *this with scalar type casted to NewScalarType |
---|
Note that if NewScalarType is equal to the current scalar type of *this
then this function smartly returns a const reference to *this
.
template<typename _Scalar>
template<typename Derived>
Rotation2D& Eigen:: Rotation2D<_Scalar>:: fromRotationMatrix(const MatrixBase<Derived>& m)
template<typename _Scalar>
template<typename Derived>
Rotation2D<Scalar>& Eigen:: Rotation2D<_Scalar>:: fromRotationMatrix(const MatrixBase<Derived>& mat)
Set *this
from a 2x2 rotation matrix mat. In other words, this function extract the rotation angle from the rotation matrix.
template<typename _Scalar>
Rotation2D Eigen:: Rotation2D<_Scalar>:: inverse() const
Returns | the inverse rotation |
---|
template<typename _Scalar>
Rotation2D Eigen:: Rotation2D<_Scalar>:: operator*(const Rotation2D& other) const
Concatenates two rotations
template<typename _Scalar>
Rotation2D& Eigen:: Rotation2D<_Scalar>:: operator*=(const Rotation2D& other)
Concatenates two rotations
template<typename _Scalar>
template<typename Derived>
Rotation2D& Eigen:: Rotation2D<_Scalar>:: operator=(const MatrixBase<Derived>& m)
Set *this
from a 2x2 rotation matrix mat. In other words, this function extract the rotation angle from the rotation matrix.
This method is an alias for fromRotationMatrix()
template<typename _Scalar>
Rotation2D Eigen:: Rotation2D<_Scalar>:: slerp(const Scalar& t,
const Rotation2D& other) const
Returns | the spherical interpolation between *this and other using parameter t. It is in fact equivalent to a linear interpolation. |
---|
template<typename _Scalar>
Scalar Eigen:: Rotation2D<_Scalar>:: smallestAngle() const
Returns | the rotation angle in [-pi,pi] |
---|
template<typename _Scalar>
Scalar Eigen:: Rotation2D<_Scalar>:: smallestPositiveAngle() const
Returns | the rotation angle in [0,2pi] |
---|
template<typename _Scalar>
Matrix2 Eigen:: Rotation2D<_Scalar>:: toRotationMatrix() const
Returns | an equivalent 2x2 rotation matrix. |
---|
Constructs and