Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Eigen::Quaternion Class Reference

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

#include <ForwardDeclarations.h>

Public Types

enum  
 
typedef Base::AngleAxisType AngleAxisType
 
typedef QuaternionBase< Quaternion< _Scalar, _Options > > Base
 
typedef internal::traits< Quaternion >::Coefficients Coefficients
 
typedef _Scalar Scalar
 

Public Member Functions

EIGEN_DEVICE_FUNC Coefficientscoeffs ()
 
const EIGEN_DEVICE_FUNC Coefficientscoeffs () const
 
template<typename Derived1 , typename Derived2 >
EIGEN_DEVICE_FUNC Quaternion< Scalar, Options > FromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
template<class OtherDerived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator*= (const QuaternionBase< OtherDerived > &q)
 
EIGEN_DEVICE_FUNC Quaternion ()
 
EIGEN_DEVICE_FUNC Quaternion (const AngleAxisType &aa)
 
template<typename Derived >
EIGEN_DEVICE_FUNC Quaternion (const MatrixBase< Derived > &other)
 
template<typename OtherScalar , int OtherOptions>
EIGEN_DEVICE_FUNC Quaternion (const Quaternion< OtherScalar, OtherOptions > &other)
 
template<class Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion (const QuaternionBase< Derived > &other)
 
EIGEN_DEVICE_FUNC Quaternion (const Scalar &w, const Scalar &x, const Scalar &y, const Scalar &z)
 
EIGEN_DEVICE_FUNC Quaternion (const Scalar *data)
 

Static Public Member Functions

template<typename Derived1 , typename Derived2 >
static EIGEN_DEVICE_FUNC Quaternion FromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
static EIGEN_DEVICE_FUNC Quaternion UnitRandom ()
 

Static Protected Member Functions

static EIGEN_STRONG_INLINE void _check_template_params ()
 

Protected Attributes

Coefficients m_coeffs
 

Detailed Description

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

\geometry_module

Template Parameters
_Scalarthe scalar type, i.e., the type of the coefficients
_Optionscontrols the memory alignment of the coefficients. 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, quaternions offer the following advantages:

The following two typedefs are provided for convenience:

Warning
Operations interpreting the quaternion as rotation have undefined behavior if the quaternion is not normalized.
See also
class AngleAxis, class Transform

Definition at line 293 of file ForwardDeclarations.h.

Member Typedef Documentation

◆ AngleAxisType

◆ Base

typedef QuaternionBase<Quaternion<_Scalar,_Options> > Eigen::Quaternion::Base

◆ Coefficients

◆ Scalar

typedef _Scalar Eigen::Quaternion::Scalar

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Constructor & Destructor Documentation

◆ Quaternion() [1/7]

EIGEN_DEVICE_FUNC Eigen::Quaternion::Quaternion ( )
inline

Default constructor leaving the quaternion uninitialized.

Definition at line 288 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ Quaternion() [2/7]

EIGEN_DEVICE_FUNC Eigen::Quaternion::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 297 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ Quaternion() [3/7]

EIGEN_DEVICE_FUNC Eigen::Quaternion::Quaternion ( const Scalar data)
inlineexplicit

Constructs and initialize a quaternion from the array data

Definition at line 300 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ Quaternion() [4/7]

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

Copy constructor

Definition at line 303 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ Quaternion() [5/7]

EIGEN_DEVICE_FUNC Eigen::Quaternion::Quaternion ( const AngleAxisType aa)
inlineexplicit

Constructs and initializes a quaternion from the angle-axis aa

Definition at line 306 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ Quaternion() [6/7]

template<typename Derived >
EIGEN_DEVICE_FUNC Eigen::Quaternion::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 313 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ Quaternion() [7/7]

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

Explicit copy constructor with scalar conversion

Definition at line 317 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

Member Function Documentation

◆ _check_template_params()

static EIGEN_STRONG_INLINE void Eigen::Quaternion::_check_template_params ( )
inlinestaticprotected

◆ coeffs() [1/2]

EIGEN_DEVICE_FUNC Coefficients& Eigen::Quaternion::coeffs ( )
inline

◆ coeffs() [2/2]

const EIGEN_DEVICE_FUNC Coefficients& Eigen::Quaternion::coeffs ( ) const
inline

◆ FromTwoVectors() [1/2]

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

◆ FromTwoVectors() [2/2]

template<typename Derived1 , typename Derived2 >
EIGEN_DEVICE_FUNC Quaternion<Scalar,Options> Eigen::Quaternion::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 705 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ operator*=()

template<class OtherDerived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase::operator*= ( class OtherDerived  )
See also
operator*(Quaternion)

Definition at line 516 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

◆ UnitRandom()

EIGEN_DEVICE_FUNC Quaternion< Scalar, Options > Eigen::Quaternion::UnitRandom ( )
static
Returns
a random unit quaternion following a uniform distribution law on SO(3)
Note
The implementation is based on http://planning.cs.uiuc.edu/node198.html

Definition at line 679 of file 3rdparty/Eigen/Eigen/src/Geometry/Quaternion.h.

Member Data Documentation

◆ m_coeffs

Coefficients Eigen::Quaternion::m_coeffs
protected

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


gtsam
Author(s):
autogenerated on Sat Jun 1 2024 03:10:32