Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | Private Types | List of all members
Eigen::Quaternion< _Scalar > Class Template Reference

The quaternion class used to represent 3D orientations and rotations. More...

#include <Quaternion.h>

Inheritance diagram for Eigen::Quaternion< _Scalar >:
Inheritance graph
[legend]

Public Types

typedef AngleAxis< ScalarAngleAxisType
 
typedef Base::AngleAxisType AngleAxisType
 
typedef Matrix< Scalar, 4, 1 > Coefficients
 
typedef internal::traits< Quaternion >::Coefficients Coefficients
 
typedef Matrix< Scalar, 3, 3 > Matrix3
 
typedef _Scalar Scalar
 
typedef _Scalar Scalar
 
typedef Matrix< Scalar, 3, 1 > Vector3
 
- Public Types inherited from Eigen::QuaternionBase< Quaternion< _Scalar, _Options > >
enum  
 
typedef AngleAxis< ScalarAngleAxisType
 
typedef internal::traits< Quaternion< _Scalar, _Options > >::Coefficients Coefficients
 
typedef Matrix< Scalar, 3, 3 > Matrix3
 
typedef NumTraits< Scalar >::Real RealScalar
 
typedef internal::traits< Quaternion< _Scalar, _Options > >::Scalar Scalar
 
typedef Matrix< Scalar, 3, 1 > Vector3
 
- Public Types inherited from Eigen::RotationBase< Quaternion< _Scalar, _Options >, 3 >
enum  
 
enum  
 
typedef Matrix< Scalar, Dim, DimRotationMatrixType
 
typedef Matrix< Scalar, Dim, DimRotationMatrixType
 
typedef ei_traits< Quaternion< _Scalar, _Options > >::Scalar Scalar
 
typedef internal::traits< Quaternion< _Scalar, _Options > >::Scalar Scalar
 
typedef Matrix< Scalar, Dim, 1 > VectorType
 
- Public Types inherited from Eigen::RotationBase< Quaternion< _Scalar >, 3 >
enum  
 
enum  
 
typedef Matrix< Scalar, Dim, DimRotationMatrixType
 
typedef Matrix< Scalar, Dim, DimRotationMatrixType
 
typedef ei_traits< Quaternion< _Scalar > >::Scalar Scalar
 
typedef internal::traits< Quaternion< _Scalar > >::Scalar Scalar
 
typedef Matrix< Scalar, Dim, 1 > VectorType
 

Public Member Functions

Scalar angularDistance (const Quaternion &other) const
 
template<typename NewScalarType >
internal::cast_return_type< Quaternion, Quaternion< NewScalarType > >::type cast () const
 
const Coefficientscoeffs () const
 
Coefficientscoeffs ()
 
Coefficientscoeffs ()
 
const Coefficientscoeffs () const
 
Quaternion conjugate (void) const
 
Scalar eigen2_dot (const Quaternion &other) const
 
template<typename Derived1 , typename Derived2 >
Quaternion< Scalar, Options > FromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
Quaternion inverse (void) const
 
bool isApprox (const Quaternion &other, typename NumTraits< Scalar >::Real prec=precision< Scalar >()) const
 
Scalar norm () const
 
void normalize ()
 
Quaternion normalized () const
 
Quaternion operator* (const Quaternion &q) const
 
template<typename Derived >
Vector3 operator* (const MatrixBase< Derived > &vec) const
 
Quaternionoperator*= (const Quaternion &q)
 
Quaternionoperator= (const Quaternion &other)
 
Quaternionoperator= (const AngleAxisType &aa)
 
template<typename Derived >
Quaternionoperator= (const MatrixBase< Derived > &m)
 
template<typename Derived >
Quaternion< Scalar > & operator= (const MatrixBase< Derived > &xpr)
 
 Quaternion ()
 
 Quaternion (Scalar w, Scalar x, Scalar y, Scalar z)
 
 Quaternion (const Quaternion &other)
 
 Quaternion (const AngleAxisType &aa)
 
template<typename Derived >
 Quaternion (const MatrixBase< Derived > &other)
 
template<typename OtherScalarType >
 Quaternion (const Quaternion< OtherScalarType > &other)
 
 Quaternion ()
 
 Quaternion (const Scalar &w, const Scalar &x, const Scalar &y, const Scalar &z)
 
 Quaternion (const Scalar *data)
 
template<class Derived >
EIGEN_STRONG_INLINE Quaternion (const QuaternionBase< Derived > &other)
 
 Quaternion (const AngleAxisType &aa)
 
template<typename Derived >
 Quaternion (const MatrixBase< Derived > &other)
 
template<typename OtherScalar , int OtherOptions>
 Quaternion (const Quaternion< OtherScalar, OtherOptions > &other)
 
template<typename Derived1 , typename Derived2 >
QuaternionsetFromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
template<typename Derived1 , typename Derived2 >
Quaternion< Scalar > & setFromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
QuaternionsetIdentity ()
 
Quaternion slerp (Scalar t, const Quaternion &other) const
 
Scalar squaredNorm () const
 
Matrix3 toRotationMatrix (void) const
 
const Block< const Coefficients, 3, 1 > vec () const
 
Block< Coefficients, 3, 1 > vec ()
 
Scalar w () const
 
Scalarw ()
 
Scalar x () const
 
Scalarx ()
 
Scalar y () const
 
Scalary ()
 
Scalar z () const
 
Scalarz ()
 
- Public Member Functions inherited from Eigen::QuaternionBase< Quaternion< _Scalar, _Options > >
EIGEN_STRONG_INLINE Vector3 _transformVector (Vector3 v) const
 
Scalar angularDistance (const QuaternionBase< OtherDerived > &other) const
 
internal::cast_return_type< Quaternion< _Scalar, _Options >, Quaternion< NewScalarType > >::type cast () const
 
const internal::traits< Quaternion< _Scalar, _Options > >::Coefficientscoeffs () const
 
internal::traits< Quaternion< _Scalar, _Options > >::Coefficientscoeffs ()
 
Quaternion< Scalarconjugate () const
 
Scalar dot (const QuaternionBase< OtherDerived > &other) const
 
Quaternion< Scalarinverse () const
 
bool isApprox (const QuaternionBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
Scalar norm () const
 
void normalize ()
 
Quaternion< Scalarnormalized () const
 
EIGEN_STRONG_INLINE Quaternion< Scalaroperator* (const QuaternionBase< OtherDerived > &q) const
 
EIGEN_STRONG_INLINE Quaternion< _Scalar, _Options > & operator*= (const QuaternionBase< OtherDerived > &q)
 
EIGEN_STRONG_INLINE QuaternionBase< Quaternion< _Scalar, _Options > > & operator= (const QuaternionBase< Quaternion< _Scalar, _Options > > &other)
 
EIGEN_STRONG_INLINE Quaternion< _Scalar, _Options > & operator= (const QuaternionBase< OtherDerived > &other)
 
Quaternion< _Scalar, _Options > & operator= (const AngleAxisType &aa)
 
Quaternion< _Scalar, _Options > & operator= (const MatrixBase< OtherDerived > &m)
 
Quaternion< _Scalar, _Options > & setFromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
QuaternionBasesetIdentity ()
 
Quaternion< Scalarslerp (const Scalar &t, const QuaternionBase< OtherDerived > &other) const
 
Scalar squaredNorm () const
 
Matrix3 toRotationMatrix () const
 
const VectorBlock< const Coefficients, 3 > vec () const
 
VectorBlock< Coefficients, 3 > vec ()
 
Scalar w () const
 
Scalarw ()
 
Scalar x () const
 
Scalarx ()
 
Scalar y () const
 
Scalary ()
 
Scalar z () const
 
Scalarz ()
 
- Public Member Functions inherited from Eigen::RotationBase< Quaternion< _Scalar, _Options >, 3 >
VectorType _transformVector (const OtherVectorType &v) const
 
const Quaternion< _Scalar, _Options > & derived () const
 
Quaternion< _Scalar, _Options > & derived ()
 
const Quaternion< _Scalar, _Options > & derived () const
 
Quaternion< _Scalar, _Options > & derived ()
 
Quaternion< _Scalar, _Options > inverse () const
 
Quaternion< _Scalar, _Options > inverse () const
 
RotationMatrixType matrix () const
 
Transform< Scalar, Dimoperator* (const Translation< Scalar, Dim > &t) const
 
RotationMatrixType operator* (const Scaling< Scalar, Dim > &s) const
 
Transform< Scalar, Dimoperator* (const Transform< Scalar, Dim > &t) 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< Quaternion< _Scalar, _Options >, OtherDerived, OtherDerived::IsVectorAtCompileTime >::ReturnType operator* (const EigenBase< OtherDerived > &e) const
 
Transform< Scalar, Dim, Mode > operator* (const Transform< Scalar, Dim, Mode, Options > &t) const
 
RotationMatrixType toRotationMatrix () const
 
RotationMatrixType toRotationMatrix () const
 
- Public Member Functions inherited from Eigen::RotationBase< Quaternion< _Scalar >, 3 >
VectorType _transformVector (const OtherVectorType &v) const
 
const Quaternion< _Scalar > & derived () const
 
Quaternion< _Scalar > & derived ()
 
const Quaternion< _Scalar > & derived () const
 
Quaternion< _Scalar > & derived ()
 
Quaternion< _Scalar > inverse () const
 
Quaternion< _Scalar > inverse () const
 
RotationMatrixType matrix () const
 
Transform< Scalar, Dimoperator* (const Translation< Scalar, Dim > &t) const
 
RotationMatrixType operator* (const Scaling< Scalar, Dim > &s) const
 
Transform< Scalar, Dimoperator* (const Transform< Scalar, Dim > &t) 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< Quaternion< _Scalar >, OtherDerived, OtherDerived::IsVectorAtCompileTime >::ReturnType operator* (const EigenBase< OtherDerived > &e) const
 
Transform< Scalar, Dim, Mode > operator* (const Transform< Scalar, Dim, Mode, Options > &t) const
 
RotationMatrixType toRotationMatrix () const
 
RotationMatrixType toRotationMatrix () const
 

Static Public Member Functions

template<typename Derived1 , typename Derived2 >
static Quaternion FromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
static Quaternion Identity ()
 
- Static Public Member Functions inherited from Eigen::QuaternionBase< Quaternion< _Scalar, _Options > >
static Quaternion< ScalarIdentity ()
 

Static Protected Member Functions

static EIGEN_STRONG_INLINE void _check_template_params ()
 

Protected Attributes

Coefficients m_coeffs
 

Private Types

enum  { IsAligned = internal::traits<Quaternion>::IsAligned }
 
typedef RotationBase< Quaternion< _Scalar >, 3 > Base
 
typedef QuaternionBase< Quaternion< _Scalar, _Options > > Base
 

Detailed Description

template<typename _Scalar>
class Eigen::Quaternion< _Scalar >

The quaternion class used to represent 3D orientations and rotations.

Parameters
_Scalarthe scalar type, i.e., the type of the coefficients

This class represents a quaternion $ w+xi+yj+zk $ that is a convenient representation of orientations and rotations of objects in three dimensions. Compared to other representations like Euler angles or 3x3 matrices, quatertions offer the following advantages:

The following two typedefs are provided for convenience:

See also
class AngleAxis, class Transform
Template Parameters
_Scalarthe scalar type, i.e., the type of the coefficients
_Optionscontrols the memory alignement of the coeffecients. Can be # AutoAlign or # DontAlign. Default is AutoAlign.

This class represents a quaternion $ w+xi+yj+zk $ that is a convenient representation of orientations and rotations of objects in three dimensions. Compared to other representations like Euler angles or 3x3 matrices, quatertions offer the following advantages:

The following two typedefs are provided for convenience:

See also
class AngleAxis, class Transform

Definition at line 47 of file Eigen2Support/Geometry/Quaternion.h.

Member Typedef Documentation

template<typename _Scalar>
typedef AngleAxis<Scalar> Eigen::Quaternion< _Scalar >::AngleAxisType

the equivalent angle-axis type

Definition at line 66 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
typedef Base::AngleAxisType Eigen::Quaternion< _Scalar >::AngleAxisType

Definition at line 240 of file Geometry/Quaternion.h.

template<typename _Scalar>
typedef RotationBase<Quaternion<_Scalar>,3> Eigen::Quaternion< _Scalar >::Base
private

Definition at line 49 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
typedef QuaternionBase<Quaternion<_Scalar,_Options> > Eigen::Quaternion< _Scalar >::Base
private

Definition at line 230 of file Geometry/Quaternion.h.

template<typename _Scalar>
typedef Matrix<Scalar, 4, 1> Eigen::Quaternion< _Scalar >::Coefficients

the type of the Coefficients 4-vector

Definition at line 60 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
typedef internal::traits<Quaternion>::Coefficients Eigen::Quaternion< _Scalar >::Coefficients

Definition at line 239 of file Geometry/Quaternion.h.

template<typename _Scalar>
typedef Matrix<Scalar,3,3> Eigen::Quaternion< _Scalar >::Matrix3

the equivalent rotation matrix type

Definition at line 64 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
typedef _Scalar Eigen::Quaternion< _Scalar >::Scalar

the scalar type of the coefficients

Definition at line 57 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
typedef _Scalar Eigen::Quaternion< _Scalar >::Scalar

Definition at line 234 of file Geometry/Quaternion.h.

template<typename _Scalar>
typedef Matrix<Scalar,3,1> Eigen::Quaternion< _Scalar >::Vector3

the type of a 3D vector

Definition at line 62 of file Eigen2Support/Geometry/Quaternion.h.

Member Enumeration Documentation

template<typename _Scalar>
anonymous enum
private
Enumerator
IsAligned 

Definition at line 231 of file Geometry/Quaternion.h.

Constructor & Destructor Documentation

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( )
inline

Default constructor leaving the quaternion uninitialized.

Definition at line 99 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( Scalar  w,
Scalar  x,
Scalar  y,
Scalar  z 
)
inline

Constructs and initializes the quaternion $ w+xi+yj+zk $ from its four coefficients w, x, y and z.

Warning
Note the order of the arguments: the real w coefficient first, while internally the coefficients are stored in the following order: [x, y, z, w]

Definition at line 108 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( const Quaternion< _Scalar > &  other)
inline

Copy constructor

Definition at line 112 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( const AngleAxisType aa)
inlineexplicit

Constructs and initializes a quaternion from the angle-axis aa

Definition at line 115 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
template<typename Derived >
Eigen::Quaternion< _Scalar >::Quaternion ( const MatrixBase< Derived > &  other)
inlineexplicit

Constructs and initializes a quaternion from either:

  • a rotation matrix expression,
  • a 4D vector expression representing quaternion coefficients.
    See also
    operator=(MatrixBase<Derived>)

Definition at line 123 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
template<typename OtherScalarType >
Eigen::Quaternion< _Scalar >::Quaternion ( const Quaternion< OtherScalarType > &  other)
inlineexplicit

Copy constructor with scalar type conversion

Definition at line 192 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( )
inline

Default constructor leaving the quaternion uninitialized.

Definition at line 243 of file Geometry/Quaternion.h.

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( const Scalar w,
const Scalar x,
const Scalar y,
const Scalar z 
)
inline

Constructs and initializes the quaternion $ w+xi+yj+zk $ from its four coefficients w, x, y and z.

Warning
Note the order of the arguments: the real w coefficient first, while internally the coefficients are stored in the following order: [x, y, z, w]

Definition at line 252 of file Geometry/Quaternion.h.

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( const Scalar data)
inline

Constructs and initialize a quaternion from the array data

Definition at line 255 of file Geometry/Quaternion.h.

template<typename _Scalar>
template<class Derived >
EIGEN_STRONG_INLINE Eigen::Quaternion< _Scalar >::Quaternion ( const QuaternionBase< Derived > &  other)
inline

Copy constructor

Definition at line 258 of file Geometry/Quaternion.h.

template<typename _Scalar>
Eigen::Quaternion< _Scalar >::Quaternion ( const AngleAxisType aa)
inlineexplicit

Constructs and initializes a quaternion from the angle-axis aa

Definition at line 261 of file Geometry/Quaternion.h.

template<typename _Scalar>
template<typename Derived >
Eigen::Quaternion< _Scalar >::Quaternion ( const MatrixBase< Derived > &  other)
inlineexplicit

Constructs and initializes a quaternion from either:

  • a rotation matrix expression,
  • a 4D vector expression representing quaternion coefficients.

Definition at line 268 of file Geometry/Quaternion.h.

template<typename _Scalar>
template<typename OtherScalar , int OtherOptions>
Eigen::Quaternion< _Scalar >::Quaternion ( const Quaternion< OtherScalar, OtherOptions > &  other)
inlineexplicit

Explicit copy constructor with scalar conversion

Definition at line 272 of file Geometry/Quaternion.h.

Member Function Documentation

template<typename _Scalar>
static EIGEN_STRONG_INLINE void Eigen::Quaternion< _Scalar >::_check_template_params ( )
inlinestaticprotected

Definition at line 287 of file Geometry/Quaternion.h.

template<typename Scalar >
Scalar Quaternion::angularDistance ( const Quaternion< _Scalar > &  other) const
inline
Returns
the angle (in radian) between two rotations
See also
eigen2_dot()

Definition at line 404 of file Eigen2Support/Geometry/Quaternion.h.

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

Definition at line 187 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
const Coefficients& Eigen::Quaternion< _Scalar >::coeffs ( ) const
inline
Returns
a read-only vector expression of the coefficients (x,y,z,w)

Definition at line 93 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Coefficients& Eigen::Quaternion< _Scalar >::coeffs ( )
inline
Returns
a vector expression of the coefficients (x,y,z,w)

Definition at line 96 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Coefficients& Eigen::Quaternion< _Scalar >::coeffs ( )
inline

Definition at line 278 of file Geometry/Quaternion.h.

template<typename _Scalar>
const Coefficients& Eigen::Quaternion< _Scalar >::coeffs ( ) const
inline

Definition at line 279 of file Geometry/Quaternion.h.

template<typename Scalar >
Quaternion< Scalar > Quaternion::conjugate ( void  ) const
inline
Returns
the conjugate of the *this which is equal to the multiplicative inverse if the quaternion is normalized. The conjugate of a quaternion represents the opposite rotation.
See also
Quaternion::inverse()

Definition at line 395 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar Eigen::Quaternion< _Scalar >::eigen2_dot ( const Quaternion< _Scalar > &  other) const
inline
Returns
the dot product of *this and other Geometrically speaking, the dot product of two unit quaternions corresponds to the cosine of half the angle between the two rotations.
See also
angularDistance()

Definition at line 161 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
template<typename Derived1 , typename Derived2 >
static Quaternion Eigen::Quaternion< _Scalar >::FromTwoVectors ( const MatrixBase< Derived1 > &  a,
const MatrixBase< Derived2 > &  b 
)
static
template<typename _Scalar>
template<typename Derived1 , typename Derived2 >
Quaternion<Scalar,Options> Eigen::Quaternion< _Scalar >::FromTwoVectors ( const MatrixBase< Derived1 > &  a,
const MatrixBase< Derived2 > &  b 
)

Returns a quaternion representing a rotation between the two arbitrary vectors a and b. In other words, the built rotation represent a rotation sending the line of direction a to the line of direction b, both lines passing through the origin.

Returns
resulting quaternion

Note that the two input vectors do not have to be normalized, and do not need to have the same norm.

Definition at line 623 of file Geometry/Quaternion.h.

template<typename _Scalar>
static Quaternion Eigen::Quaternion< _Scalar >::Identity ( )
inlinestatic
Returns
a quaternion representing an identity rotation
See also
MatrixBase::Identity()

Definition at line 133 of file Eigen2Support/Geometry/Quaternion.h.

template<typename Scalar >
Quaternion< Scalar > Quaternion::inverse ( void  ) const
inline
Returns
the multiplicative inverse of *this Note that in most cases, i.e., if you simply want the opposite rotation, and/or the quaternion is normalized, then it is enough to use the conjugate.
See also
Quaternion::conjugate()

Definition at line 375 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
bool Eigen::Quaternion< _Scalar >::isApprox ( const Quaternion< _Scalar > &  other,
typename NumTraits< Scalar >::Real  prec = precision<Scalar>() 
) const
inline
Returns
true if *this is approximately equal to other, within the precision determined by prec.
See also
MatrixBase::isApprox()

Definition at line 199 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar Eigen::Quaternion< _Scalar >::norm ( ) const
inline
Returns
the norm of the quaternion's coefficients
See also
Quaternion::squaredNorm(), MatrixBase::norm()

Definition at line 147 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
void Eigen::Quaternion< _Scalar >::normalize ( void  )
inline

Normalizes the quaternion *this

See also
normalized(), MatrixBase::normalize()

Definition at line 151 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Quaternion Eigen::Quaternion< _Scalar >::normalized ( ) const
inline
Returns
a normalized version of *this
See also
normalize(), MatrixBase::normalized()

Definition at line 154 of file Eigen2Support/Geometry/Quaternion.h.

template<typename Scalar >
Quaternion< Scalar > Quaternion::operator* ( const Quaternion< _Scalar > &  other) const
inline
Returns
the concatenation of two rotations as a quaternion-quaternion product

Definition at line 228 of file Eigen2Support/Geometry/Quaternion.h.

template<typename Scalar >
template<typename Derived >
Quaternion< Scalar >::Vector3 Quaternion::operator* ( const MatrixBase< Derived > &  v) const
inline

Rotation of a vector by a quaternion.

Remarks
If the quaternion is used to rotate several points (>1) then it is much more efficient to first convert it to a 3x3 Matrix. Comparison of the operation cost for n transformations:

Definition at line 250 of file Eigen2Support/Geometry/Quaternion.h.

template<typename Scalar >
Quaternion< Scalar > & Quaternion::operator*= ( const Quaternion< _Scalar > &  other)
inline
See also
operator*(Quaternion)

Definition at line 235 of file Eigen2Support/Geometry/Quaternion.h.

template<typename Scalar >
Quaternion< Scalar > & Quaternion::operator= ( const Quaternion< _Scalar > &  other)
inline

Definition at line 263 of file Eigen2Support/Geometry/Quaternion.h.

template<typename Scalar >
Quaternion< Scalar > & Quaternion::operator= ( const AngleAxisType aa)
inline

Set *this from an angle-axis aa and returns a reference to *this

Definition at line 272 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
template<typename Derived >
Quaternion& Eigen::Quaternion< _Scalar >::operator= ( const MatrixBase< Derived > &  m)
template<typename _Scalar>
template<typename Derived >
Quaternion<Scalar>& Eigen::Quaternion< _Scalar >::operator= ( const MatrixBase< Derived > &  xpr)
inline

Set *this from the expression xpr:

  • if xpr is a 4x1 vector, then xpr is assumed to be a quaternion
  • if xpr is a 3x3 matrix, then xpr is assumed to be rotation matrix and xpr is converted to a quaternion

Definition at line 287 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
template<typename Derived1 , typename Derived2 >
Quaternion& Eigen::Quaternion< _Scalar >::setFromTwoVectors ( const MatrixBase< Derived1 > &  a,
const MatrixBase< Derived2 > &  b 
)
template<typename _Scalar>
template<typename Derived1 , typename Derived2 >
Quaternion<Scalar>& Eigen::Quaternion< _Scalar >::setFromTwoVectors ( const MatrixBase< Derived1 > &  a,
const MatrixBase< Derived2 > &  b 
)
inline

Sets *this to be a quaternion representing a rotation sending the vector a to the vector b.

Returns
a reference to *this.

Note that the two input vectors do not have to be normalized.

Definition at line 338 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Quaternion& Eigen::Quaternion< _Scalar >::setIdentity ( )
inline
template<typename Scalar >
Quaternion< Scalar > Quaternion::slerp ( Scalar  t,
const Quaternion< _Scalar > &  other 
) const
Returns
the spherical linear interpolation between the two quaternions *this and other at the parameter t

Definition at line 416 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar Eigen::Quaternion< _Scalar >::squaredNorm ( ) const
inline
Returns
the squared norm of the quaternion's coefficients
See also
Quaternion::norm(), MatrixBase::squaredNorm()

Definition at line 142 of file Eigen2Support/Geometry/Quaternion.h.

template<typename Scalar >
Quaternion< Scalar >::Matrix3 Quaternion::toRotationMatrix ( void  ) const
inline

Convert the quaternion to a 3x3 rotation matrix

Definition at line 296 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
const Block<const Coefficients,3,1> Eigen::Quaternion< _Scalar >::vec ( ) const
inline
Returns
a read-only vector expression of the imaginary part (x,y,z)

Definition at line 87 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Block<Coefficients,3,1> Eigen::Quaternion< _Scalar >::vec ( )
inline
Returns
a vector expression of the imaginary part (x,y,z)

Definition at line 90 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar Eigen::Quaternion< _Scalar >::w ( ) const
inline
Returns
the w coefficient

Definition at line 75 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar& Eigen::Quaternion< _Scalar >::w ( )
inline
Returns
a reference to the w coefficient

Definition at line 84 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar Eigen::Quaternion< _Scalar >::x ( ) const
inline
Returns
the x coefficient

Definition at line 69 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar& Eigen::Quaternion< _Scalar >::x ( )
inline
Returns
a reference to the x coefficient

Definition at line 78 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar Eigen::Quaternion< _Scalar >::y ( ) const
inline
Returns
the y coefficient

Definition at line 71 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar& Eigen::Quaternion< _Scalar >::y ( )
inline
Returns
a reference to the y coefficient

Definition at line 80 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar Eigen::Quaternion< _Scalar >::z ( ) const
inline
Returns
the z coefficient

Definition at line 73 of file Eigen2Support/Geometry/Quaternion.h.

template<typename _Scalar>
Scalar& Eigen::Quaternion< _Scalar >::z ( )
inline
Returns
a reference to the z coefficient

Definition at line 82 of file Eigen2Support/Geometry/Quaternion.h.

Member Data Documentation

template<typename _Scalar>
Coefficients Quaternion::m_coeffs
protected

Definition at line 203 of file Eigen2Support/Geometry/Quaternion.h.


The documentation for this class was generated from the following file:


tuw_aruco
Author(s): Lukas Pfeifhofer
autogenerated on Mon Jun 10 2019 15:41:09