Eigen  3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)
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:

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;
static const BasisReturnType UnitY()
Definition: CwiseNullaryOp.h:942
static const BasisReturnType UnitX()
Definition: CwiseNullaryOp.h:932
static const BasisReturnType UnitZ()
Definition: CwiseNullaryOp.h:952
AngleAxis< float > AngleAxisf
Definition: AngleAxis.h:159
Matrix< float, 3, 3 > Matrix3f
3×3 matrix of type float.
Definition: Matrix.h:500

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()
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.
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& 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: