Spec-Zone.ru › 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()
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 >
the scalar type of the coefficients
AngleAxis() [1/5]
template<typename _Scalar >
Default constructor without initialization.
AngleAxis() [2/5]
template<typename _Scalar >
template<typename Derived >
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 >
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 >
Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix.
AngleAxis() [5/5]
template<typename _Scalar >
template<typename OtherScalarType >
Copy constructor with scalar type conversion
angle() [1/2]
template<typename _Scalar >
Returns
a read-write reference to the stored angle in radian
angle() [2/2]
template<typename _Scalar >
Returns
the value of the rotation angle in radian
axis() [1/2]
template<typename _Scalar >
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 >
Returns
the rotation axis
cast() template<typename _Scalar >
template<typename NewScalarType >
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 >
Returns
the inverse rotation, i.e., an angle-axis with opposite rotation angle
isApprox() template<typename _Scalar >
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 >
Concatenates two rotations
operator*() [2/2]
template<typename _Scalar >
Concatenates two rotations
operator=() [1/2]
template<typename _Scalar >
template<typename Derived >
Set *this from a 3x3 rotation matrix mat .
operator=() [2/2]
template<typename _Scalar >
template<typename QuatDerived >
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 >
Constructs and
Returns
an equivalent 3x3 rotation matrix.
The documentation for this class was generated from the following file: