W3cubDocs

/Eigen3

Eigen::AngleAxis

template<typename _Scalar>
class Eigen::AngleAxis< _Scalar >

Represents a 3D rotation as a rotation angle around an arbitrary 3D axis.

This is defined in the Geometry module.

#include <Eigen/Geometry> 
Parameters
_Scalar the scalar type, i.e., the type of the coefficients.
Warning
When setting up an AngleAxis object, the axis vector must be normalized.

The following two typedefs are provided for convenience:

  • AngleAxisf for float
  • AngleAxisd for double

Combined with MatrixBase::Unit{X,Y,Z}, AngleAxis can be used to easily mimic Euler-angles. Here is an example:

Matrix3f m;
m = AngleAxisf(0.25*M_PI, Vector3f::UnitX())
  * AngleAxisf(0.5*M_PI,  Vector3f::UnitY())
  * AngleAxisf(0.33*M_PI, Vector3f::UnitZ());
cout << m << endl << "is unitary: " << m.isUnitary() << endl;

Output:

1.19e-07        0        1
   0.969   -0.249        0
   0.249    0.969 1.19e-07
is unitary: 1
Note
This class is not aimed to be used to store a rotation transformation, but rather to make easier the creation of other rotation (Quaternion, rotation Matrix) and transformation objects.
See also
class Quaternion, class Transform, MatrixBase::UnitX()
typedef _Scalar Scalar
- Public Types inherited from Eigen::RotationBase< AngleAxis< _Scalar >, 3 >
typedef Matrix< Scalar, Dim, Dim > RotationMatrixType
typedef internal::traits< AngleAxis< _Scalar > >::Scalar Scalar
Scalar & angle ()
Scalar angle () const
AngleAxis ()
template<typename OtherScalarType >
AngleAxis (const AngleAxis< OtherScalarType > &other)
template<typename Derived >
AngleAxis (const MatrixBase< Derived > &m)
template<typename QuatDerived >
AngleAxis (const QuaternionBase< QuatDerived > &q)
template<typename Derived >
AngleAxis (const Scalar &angle, const MatrixBase< Derived > &axis)
Vector3 & axis ()
const Vector3 & axis () const
template<typename NewScalarType >
internal::cast_return_type< AngleAxis, AngleAxis< NewScalarType > >::type cast () const
template<typename Derived >
AngleAxis< Scalar > & fromRotationMatrix (const MatrixBase< Derived > &mat)
Sets *this from a 3x3 rotation matrix.
AngleAxis inverse () const
bool isApprox (const AngleAxis &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
QuaternionType operator* (const AngleAxis &other) const
QuaternionType operator* (const QuaternionType &other) const
template<typename Derived >
AngleAxis< Scalar > & operator= (const MatrixBase< Derived > &mat)
template<typename QuatDerived >
AngleAxis< Scalar > & operator= (const QuaternionBase< QuatDerived > &q)
Matrix3 toRotationMatrix (void) const
- Public Member Functions inherited from Eigen::RotationBase< AngleAxis< _Scalar >, 3 >
AngleAxis< _Scalar > inverse () const
RotationMatrixType matrix () const
internal::rotation_base_generic_product_selector< AngleAxis< _Scalar >, OtherDerived, OtherDerived::IsVectorAtCompileTime >::ReturnType operator* (const EigenBase< OtherDerived > &e) const
Transform< Scalar, Dim, Mode > operator* (const Transform< Scalar, Dim, Mode, Options > &t) const
Transform< Scalar, Dim, Isometry > operator* (const Translation< Scalar, Dim > &t) const
RotationMatrixType operator* (const UniformScaling< Scalar > &s) const
RotationMatrixType toRotationMatrix () const

Scalar

template<typename _Scalar >
typedef _Scalar Eigen::AngleAxis< _Scalar >::Scalar

the scalar type of the coefficients

AngleAxis() [1/5]

template<typename _Scalar >
Eigen::AngleAxis< _Scalar >::AngleAxis ( )
inline

Default constructor without initialization.

AngleAxis() [2/5]

template<typename _Scalar >
template<typename Derived >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const Scalar & angle,
const MatrixBase< Derived > & axis
)
inline

Constructs and initialize the angle-axis rotation from an angle in radian and an axis which must be normalized.

Warning
If the axis vector is not normalized, then the angle-axis object represents an invalid rotation.

AngleAxis() [3/5]

template<typename _Scalar >
template<typename QuatDerived >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const QuaternionBase< QuatDerived > & q )
inlineexplicit

Constructs and initialize the angle-axis rotation from a quaternion q. This function implicitly normalizes the quaternion q.

AngleAxis() [4/5]

template<typename _Scalar >
template<typename Derived >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const MatrixBase< Derived > & m )
inlineexplicit

Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix.

AngleAxis() [5/5]

template<typename _Scalar >
template<typename OtherScalarType >
Eigen::AngleAxis< _Scalar >::AngleAxis ( const AngleAxis< OtherScalarType > & other )
inlineexplicit

Copy constructor with scalar type conversion

angle() [1/2]

template<typename _Scalar >
Scalar& Eigen::AngleAxis< _Scalar >::angle ( )
inline
Returns
a read-write reference to the stored angle in radian

angle() [2/2]

template<typename _Scalar >
Scalar Eigen::AngleAxis< _Scalar >::angle ( ) const
inline
Returns
the value of the rotation angle in radian

axis() [1/2]

template<typename _Scalar >
Vector3& Eigen::AngleAxis< _Scalar >::axis ( )
inline
Returns
a read-write reference to the stored rotation axis.
Warning
The rotation axis must remain a unit vector.

axis() [2/2]

template<typename _Scalar >
const Vector3& Eigen::AngleAxis< _Scalar >::axis ( ) const
inline
Returns
the rotation axis

cast()

template<typename _Scalar >
template<typename NewScalarType >
internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type Eigen::AngleAxis< _Scalar >::cast ( ) const
inline
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.

inverse()

template<typename _Scalar >
AngleAxis Eigen::AngleAxis< _Scalar >::inverse ( ) const
inline
Returns
the inverse rotation, i.e., an angle-axis with opposite rotation angle

isApprox()

template<typename _Scalar >
bool Eigen::AngleAxis< _Scalar >::isApprox ( const AngleAxis< _Scalar > & other,
const typename NumTraits< Scalar >::Real & prec = NumTraits<Scalar>::dummy_precision()
) const
inline
Returns
true if *this is approximately equal to other, within the precision determined by prec.
See also
MatrixBase::isApprox()

operator*() [1/2]

template<typename _Scalar >
QuaternionType Eigen::AngleAxis< _Scalar >::operator* ( const AngleAxis< _Scalar > & other ) const
inline

Concatenates two rotations

operator*() [2/2]

template<typename _Scalar >
QuaternionType Eigen::AngleAxis< _Scalar >::operator* ( const QuaternionType & other ) const
inline

Concatenates two rotations

operator=() [1/2]

template<typename _Scalar >
template<typename Derived >
AngleAxis<Scalar>& Eigen::AngleAxis< _Scalar >::operator= ( const MatrixBase< Derived > & mat )

Set *this from a 3x3 rotation matrix mat.

operator=() [2/2]

template<typename _Scalar >
template<typename QuatDerived >
AngleAxis<Scalar>& Eigen::AngleAxis< _Scalar >::operator= ( const QuaternionBase< QuatDerived > & q )

Set *this from a unit quaternion.

The resulting axis is normalized, and the computed angle is in the [0,pi] range.

This function implicitly normalizes the quaternion q.

toRotationMatrix()

template<typename Scalar >
AngleAxis< Scalar >::Matrix3 Eigen::AngleAxis< Scalar >::toRotationMatrix ( void ) const

Constructs and

Returns
an equivalent 3x3 rotation matrix.

The documentation for this class was generated from the following file:

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1AngleAxis.html