Represents a 3D rotation as a rotation angle around an arbitrary 3D axis. More...
#include <AngleAxis.h>
Public Types | |
enum | { Dim = 3 } |
typedef Matrix< Scalar, 3, 3 > | Matrix3 |
typedef Quaternion< Scalar > | QuaternionType |
typedef _Scalar | Scalar |
typedef Matrix< Scalar, 3, 1 > | Vector3 |
Public Member Functions | |
Scalar & | angle () |
Scalar | angle () const |
template<typename OtherScalarType > | |
AngleAxis (const AngleAxis< OtherScalarType > &other) | |
template<typename Derived > | |
AngleAxis (const MatrixBase< Derived > &m) | |
AngleAxis (const QuaternionType &q) | |
template<typename Derived > | |
AngleAxis (Scalar angle, const MatrixBase< Derived > &axis) | |
AngleAxis () | |
Vector3 & | axis () |
const Vector3 & | axis () const |
template<typename NewScalarType > | |
ei_cast_return_type< AngleAxis, AngleAxis< NewScalarType > >::type | cast () const |
template<typename Derived > | |
AngleAxis & | fromRotationMatrix (const MatrixBase< Derived > &m) |
AngleAxis | inverse () const |
bool | isApprox (const AngleAxis &other, typename NumTraits< Scalar >::Real prec=precision< Scalar >()) const |
Vector3 | operator* (const Vector3 &other) const |
Matrix3 | operator* (const Matrix3 &other) const |
QuaternionType | operator* (const QuaternionType &other) const |
QuaternionType | operator* (const AngleAxis &other) const |
template<typename Derived > | |
AngleAxis & | operator= (const MatrixBase< Derived > &m) |
AngleAxis & | operator= (const QuaternionType &q) |
Matrix3 | toRotationMatrix (void) const |
Protected Attributes | |
Scalar | m_angle |
Vector3 | m_axis |
Private Types | |
typedef RotationBase < AngleAxis< _Scalar >, 3 > | Base |
Friends | |
Matrix3 | operator* (const Matrix3 &a, const AngleAxis &b) |
QuaternionType | operator* (const QuaternionType &a, const AngleAxis &b) |
Represents a 3D rotation as a rotation angle around an arbitrary 3D axis.
_Scalar | the scalar type, i.e., the type of the coefficients. |
The following two typedefs are provided for convenience:
AngleAxisf
for float
AngleAxisd
for double
AngleAxisForEuler How to define a rotation from Euler-angles
Combined with MatrixBase::Unit{X,Y,Z}, AngleAxis can be used to easily mimic Euler-angles. Here is an example:
Output:
Definition at line 60 of file AngleAxis.h.
typedef RotationBase<AngleAxis<_Scalar>,3> AngleAxis< _Scalar >::Base [private] |
Definition at line 62 of file AngleAxis.h.
Definition at line 71 of file AngleAxis.h.
typedef Quaternion<Scalar> AngleAxis< _Scalar >::QuaternionType |
Definition at line 73 of file AngleAxis.h.
the scalar type of the coefficients
Reimplemented from RotationBase< AngleAxis< _Scalar >, 3 >.
Definition at line 70 of file AngleAxis.h.
Definition at line 72 of file AngleAxis.h.
anonymous enum |
Definition at line 68 of file AngleAxis.h.
Default constructor without initialization.
Definition at line 83 of file AngleAxis.h.
AngleAxis< _Scalar >::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.
Definition at line 87 of file AngleAxis.h.
AngleAxis< _Scalar >::AngleAxis | ( | const QuaternionType & | q | ) | [inline] |
Constructs and initialize the angle-axis rotation from a quaternion q.
Definition at line 89 of file AngleAxis.h.
AngleAxis< _Scalar >::AngleAxis | ( | const MatrixBase< Derived > & | m | ) | [inline, explicit] |
Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix.
Definition at line 92 of file AngleAxis.h.
AngleAxis< _Scalar >::AngleAxis | ( | const AngleAxis< OtherScalarType > & | other | ) | [inline, explicit] |
Copy constructor with scalar type conversion
Definition at line 147 of file AngleAxis.h.
Definition at line 95 of file AngleAxis.h.
Definition at line 94 of file AngleAxis.h.
Definition at line 98 of file AngleAxis.h.
Definition at line 97 of file AngleAxis.h.
ei_cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type AngleAxis< _Scalar >::cast | ( | ) | const [inline] |
*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 142 of file AngleAxis.h.
AngleAxis& AngleAxis< _Scalar >::fromRotationMatrix | ( | const MatrixBase< Derived > & | m | ) | [inline] |
Reimplemented from RotationBase< AngleAxis< _Scalar >, 3 >.
Definition at line 125 of file AngleAxis.h.
bool AngleAxis< _Scalar >::isApprox | ( | const AngleAxis< _Scalar > & | other, | |
typename NumTraits< Scalar >::Real | prec = precision<Scalar>() | |||
) | const [inline] |
true
if *this
is approximately equal to other, within the precision determined by prec.Definition at line 157 of file AngleAxis.h.
Vector3 AngleAxis< _Scalar >::operator* | ( | const Vector3 & | other | ) | const [inline] |
Applies rotation to vector
Definition at line 121 of file AngleAxis.h.
Matrix3 AngleAxis< _Scalar >::operator* | ( | const Matrix3 & | other | ) | const [inline] |
Concatenates two rotations
Definition at line 113 of file AngleAxis.h.
QuaternionType AngleAxis< _Scalar >::operator* | ( | const QuaternionType & | other | ) | const [inline] |
Concatenates two rotations
Definition at line 105 of file AngleAxis.h.
QuaternionType AngleAxis< _Scalar >::operator* | ( | const AngleAxis< _Scalar > & | other | ) | const [inline] |
Concatenates two rotations
Definition at line 101 of file AngleAxis.h.
AngleAxis< Scalar > & AngleAxis< Scalar >::operator= | ( | const MatrixBase< Derived > & | mat | ) | [inline] |
Set *this
from a 3x3 rotation matrix mat.
Definition at line 192 of file AngleAxis.h.
AngleAxis< Scalar > & AngleAxis< Scalar >::operator= | ( | const QuaternionType & | q | ) | [inline] |
Set *this
from a quaternion. The axis is normalized.
Definition at line 172 of file AngleAxis.h.
AngleAxis< Scalar >::Matrix3 AngleAxis< Scalar >::toRotationMatrix | ( | void | ) | const [inline] |
Constructs and
Reimplemented from RotationBase< AngleAxis< _Scalar >, 3 >.
Definition at line 203 of file AngleAxis.h.
Matrix3 operator* | ( | const Matrix3 & | a, | |
const AngleAxis< _Scalar > & | b | |||
) | [friend] |
Concatenates two rotations
Definition at line 117 of file AngleAxis.h.
QuaternionType operator* | ( | const QuaternionType & | a, | |
const AngleAxis< _Scalar > & | b | |||
) | [friend] |
Concatenates two rotations
Definition at line 109 of file AngleAxis.h.
Definition at line 78 of file AngleAxis.h.
Definition at line 77 of file AngleAxis.h.