Main MRPT website > C++ reference
MRPT logo
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Types | Friends
Eigen::AngleAxis Class Reference

Detailed Description

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

Parameters:
_Scalarthe 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:

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

Output:

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:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { Dim = 3 }
typedef _Scalar Scalar
 the scalar type of the coefficients
typedef Matrix< Scalar, 3, 3 > Matrix3
typedef Matrix< Scalar, 3, 1 > Vector3
typedef Quaternion< ScalarQuaternionType
enum  
typedef Matrix< Scalar, Dim, Dim > RotationMatrixType
 corresponding linear transformation matrix type
typedef Matrix< Scalar, Dim, 1 > VectorType

Public Member Functions

 AngleAxis ()
 Default constructor without initialization.
template<typename Derived >
 AngleAxis (Scalar angle, const MatrixBase< Derived > &axis)
 Constructs and initialize the angle-axis rotation from an angle in radian and an axis which must be normalized.
template<typename QuatDerived >
 AngleAxis (const QuaternionBase< QuatDerived > &q)
 Constructs and initialize the angle-axis rotation from a quaternion q.
template<typename Derived >
 AngleAxis (const MatrixBase< Derived > &m)
 Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix.
Scalar angle () const
Scalarangle ()
const Vector3axis () const
Vector3axis ()
QuaternionType operator* (const AngleAxis &other) const
 Concatenates two rotations.
QuaternionType operator* (const QuaternionType &other) const
 Concatenates two rotations.
AngleAxis inverse () const
template<class QuatDerived >
AngleAxisoperator= (const QuaternionBase< QuatDerived > &q)
 Set *this from a unit quaternion.
template<typename Derived >
AngleAxisoperator= (const MatrixBase< Derived > &m)
 Set *this from a 3x3 rotation matrix mat.
template<typename Derived >
AngleAxisfromRotationMatrix (const MatrixBase< Derived > &m)
 Sets *this from a 3x3 rotation matrix.
Matrix3 toRotationMatrix (void) const
 Constructs and.
template<typename NewScalarType >
internal::cast_return_type
< AngleAxis, AngleAxis
< NewScalarType > >::type 
cast () const
template<typename OtherScalarType >
 AngleAxis (const AngleAxis< OtherScalarType > &other)
 Copy constructor with scalar type conversion.
bool isApprox (const AngleAxis &other, typename NumTraits< Scalar >::Real prec=NumTraits< Scalar >::dummy_precision()) const
const Derived & derived () const
Derived & derived ()
RotationMatrixType matrix () const
Transform< Scalar, Dim, Isometry > operator* (const Translation< Scalar, Dim > &t) const
RotationMatrixType operator* (const UniformScaling< Scalar > &s) const
EIGEN_STRONG_INLINE
internal::rotation_base_generic_product_selector
< Derived, OtherDerived,
OtherDerived::IsVectorAtCompileTime >
::ReturnType 
operator* (const EigenBase< OtherDerived > &e) const
Transform< Scalar, Dim, Mode > operator* (const Transform< Scalar, Dim, Mode, Options > &t) const
VectorType _transformVector (const OtherVectorType &v) const

Static Public Member Functions

static const AngleAxis Identity ()

Protected Attributes

Vector3 m_axis
Scalar m_angle

Private Types

typedef RotationBase
< AngleAxis< _Scalar >, 3 > 
Base

Friends

QuaternionType operator* (const QuaternionType &a, const AngleAxis &b)
 Concatenates two rotations.
RotationMatrixType operator* (const EigenBase< OtherDerived > &l, const Derived &r)
Transform< Scalar, Dim, Affine > operator* (const DiagonalMatrix< Scalar, Dim > &l, const Derived &r)

Member Typedef Documentation

typedef RotationBase<AngleAxis<_Scalar>,3> Eigen::AngleAxis::Base [private]

Definition at line 65 of file Geometry.

Definition at line 74 of file Geometry.

Definition at line 76 of file Geometry.

corresponding linear transformation matrix type

Definition at line 51 of file Geometry.

typedef _Scalar Eigen::AngleAxis::Scalar

the scalar type of the coefficients

Reimplemented from Eigen::RotationBase< AngleAxis< _Scalar >, 3 >.

Definition at line 73 of file Geometry.

Definition at line 75 of file Geometry.

typedef Matrix<Scalar,Dim,1> Eigen::RotationBase::VectorType [inherited]

Definition at line 52 of file Geometry.


Member Enumeration Documentation

anonymous enum [inherited]

Definition at line 46 of file Geometry.

anonymous enum
Enumerator:
Dim 

Definition at line 71 of file Geometry.


Constructor & Destructor Documentation

Eigen::AngleAxis::AngleAxis ( ) [inline]

Default constructor without initialization.

Definition at line 86 of file Geometry.

template<typename Derived >
Eigen::AngleAxis::AngleAxis ( 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.

Definition at line 93 of file Geometry.

template<typename QuatDerived >
Eigen::AngleAxis::AngleAxis ( const QuaternionBase< QuatDerived > &  q) [inline, explicit]

Constructs and initialize the angle-axis rotation from a quaternion q.

Definition at line 95 of file Geometry.

template<typename Derived >
Eigen::AngleAxis::AngleAxis ( const MatrixBase< Derived > &  m) [inline, explicit]

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

Definition at line 98 of file Geometry.

template<typename OtherScalarType >
Eigen::AngleAxis::AngleAxis ( const AngleAxis< OtherScalarType > &  other) [inline, explicit]

Copy constructor with scalar type conversion.

Definition at line 142 of file Geometry.


Member Function Documentation

VectorType Eigen::RotationBase::_transformVector ( const OtherVectorType &  v) const [inline, inherited]

Definition at line 107 of file Geometry.

Scalar Eigen::AngleAxis::angle ( ) const [inline]

Definition at line 100 of file Geometry.

Scalar& Eigen::AngleAxis::angle ( ) [inline]

Definition at line 101 of file Geometry.

const Vector3& Eigen::AngleAxis::axis ( ) const [inline]

Definition at line 103 of file Geometry.

Vector3& Eigen::AngleAxis::axis ( ) [inline]

Definition at line 104 of file Geometry.

template<typename NewScalarType >
internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type Eigen::AngleAxis::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.

Definition at line 137 of file Geometry.

const Derived& Eigen::RotationBase::derived ( ) const [inline, inherited]

Definition at line 55 of file Geometry.

Derived& Eigen::RotationBase::derived ( ) [inline, inherited]

Definition at line 56 of file Geometry.

template<typename Derived >
AngleAxis< Scalar > & Eigen::AngleAxis::fromRotationMatrix ( const MatrixBase< Derived > &  m)

Sets *this from a 3x3 rotation matrix.

Definition at line 208 of file Geometry.

static const AngleAxis Eigen::AngleAxis::Identity ( ) [inline, static]

Definition at line 148 of file Geometry.

AngleAxis Eigen::AngleAxis::inverse ( ) const [inline]
Returns:
the inverse rotation, i.e., an angle-axis with opposite rotation angle

Reimplemented from Eigen::RotationBase< AngleAxis< _Scalar >, 3 >.

Definition at line 119 of file Geometry.

bool Eigen::AngleAxis::isApprox ( const AngleAxis other,
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()

Definition at line 154 of file Geometry.

RotationMatrixType Eigen::RotationBase::matrix ( ) const [inline, inherited]
Returns:
an equivalent rotation matrix This function is added to be conform with the Transform class' naming scheme.

Definition at line 64 of file Geometry.

Transform<Scalar,Dim,Isometry> Eigen::RotationBase::operator* ( const Translation< Scalar, Dim > &  t) const [inline, inherited]
Returns:
the concatenation of the rotation *this with a translation t

Definition at line 70 of file Geometry.

RotationMatrixType Eigen::RotationBase::operator* ( const UniformScaling< Scalar > &  s) const [inline, inherited]
Returns:
the concatenation of the rotation *this with a uniform scaling s

Definition at line 74 of file Geometry.

EIGEN_STRONG_INLINE internal::rotation_base_generic_product_selector<Derived,OtherDerived,OtherDerived::IsVectorAtCompileTime>::ReturnType Eigen::RotationBase::operator* ( const EigenBase< OtherDerived > &  e) const [inline, inherited]
Returns:
the concatenation of the rotation *this with a generic expression e e can be:
  • a DimxDim linear transformation matrix
  • a DimxDim diagonal matrix (axis aligned scaling)
  • a vector of size Dim

Definition at line 85 of file Geometry.

Transform<Scalar,Dim,Mode> Eigen::RotationBase::operator* ( const Transform< Scalar, Dim, Mode, Options > &  t) const [inline, inherited]
Returns:
the concatenation of the rotation *this with a transformation t

Definition at line 103 of file Geometry.

QuaternionType Eigen::AngleAxis::operator* ( const AngleAxis other) const [inline]

Concatenates two rotations.

Definition at line 107 of file Geometry.

QuaternionType Eigen::AngleAxis::operator* ( const QuaternionType other) const [inline]

Concatenates two rotations.

Definition at line 111 of file Geometry.

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

Set *this from a unit quaternion.

The axis is normalized.

Warning:
As any other method dealing with quaternion, if the input quaternion is not normalized then the result is undefined.

Definition at line 173 of file Geometry.

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

Set *this from a 3x3 rotation matrix mat.

Definition at line 196 of file Geometry.

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

Constructs and.

Returns:
an equivalent 3x3 rotation matrix.

Reimplemented from Eigen::RotationBase< AngleAxis< _Scalar >, 3 >.

Definition at line 217 of file Geometry.


Friends And Related Function Documentation

RotationMatrixType operator* ( const EigenBase< OtherDerived > &  l,
const Derived &  r 
) [friend, inherited]
Returns:
the concatenation of a linear transformation l with the rotation r

Definition at line 90 of file Geometry.

Transform<Scalar,Dim,Affine> operator* ( const DiagonalMatrix< Scalar, Dim > &  l,
const Derived &  r 
) [friend, inherited]
Returns:
the concatenation of a scaling l with the rotation r

Definition at line 94 of file Geometry.

QuaternionType operator* ( const QuaternionType a,
const AngleAxis b 
) [friend]

Concatenates two rotations.

Definition at line 115 of file Geometry.


Member Data Documentation

Definition at line 81 of file Geometry.

Definition at line 80 of file Geometry.




Page generated by Doxygen 1.7.5 for MRPT 0.9.5 SVN: at Thu Oct 13 21:25:36 UTC 2011