Please, help us to better know about our user community by answering the following short survey: https://forms.gle/wpyrxWi18ox9Z5ae9
 Eigen  3.3.9
Eigen::AngleAxis< _Scalar > Class Template Reference

## Detailed Description

### 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.
class Quaternion, class Transform, MatrixBase::UnitX()
Inheritance diagram for Eigen::AngleAxis< _Scalar >:

## Public Types

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

## Public Member Functions

Scalarangle ()

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)

Vector3axis ()

const Vector3axis () 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 >::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::dummy_precision() ) const
inline
Returns
true if *this is approximately equal to other, within the precision determined by prec.
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& 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& 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::MatrixBase::UnitZ
static const BasisReturnType UnitZ()
Definition: CwiseNullaryOp.h:851
Eigen::MatrixBase::UnitX
static const BasisReturnType UnitX()
Definition: CwiseNullaryOp.h:831
Eigen::AngleAxisf
AngleAxis< float > AngleAxisf
Definition: AngleAxis.h:157
Eigen::MatrixBase::UnitY
static const BasisReturnType UnitY()
Definition: CwiseNullaryOp.h:841