Public Types | Public Member Functions | Static Public Member Functions | Private Types | List of all members
Eigen::QuaternionBase< Derived > Class Template Reference

Base class for quaternion expressions. More...

#include <ForwardDeclarations.h>

Inheritance diagram for Eigen::QuaternionBase< Derived >:
Inheritance graph
[legend]

Public Types

enum  { Flags = Eigen::internal::traits<Derived>::Flags }
 
typedef AngleAxis< ScalarAngleAxisType
 
typedef internal::traits< Derived >::Coefficients Coefficients
 
typedef Matrix< Scalar, 3, 3 > Matrix3
 
typedef NumTraits< Scalar >::Real RealScalar
 
typedef internal::traits< Derived >::Scalar Scalar
 
typedef Matrix< Scalar, 3, 1 > Vector3
 
- Public Types inherited from Eigen::RotationBase< Derived, 3 >
enum  
 
enum  
 
typedef Matrix< Scalar, Dim, DimRotationMatrixType
 
typedef Matrix< Scalar, Dim, DimRotationMatrixType
 
typedef ei_traits< Derived >::Scalar Scalar
 
typedef internal::traits< Derived >::Scalar Scalar
 
typedef Matrix< Scalar, Dim, 1 > VectorType
 

Public Member Functions

EIGEN_STRONG_INLINE Vector3 _transformVector (Vector3 v) const
 
template<class OtherDerived >
Scalar angularDistance (const QuaternionBase< OtherDerived > &other) const
 
template<class OtherDerived >
internal::traits< Derived >::Scalar angularDistance (const QuaternionBase< OtherDerived > &other) const
 
template<typename NewScalarType >
internal::cast_return_type< Derived, Quaternion< NewScalarType > >::type cast () const
 
const internal::traits< Derived >::Coefficientscoeffs () const
 
internal::traits< Derived >::Coefficientscoeffs ()
 
Quaternion< Scalarconjugate () const
 
template<class OtherDerived >
Scalar dot (const QuaternionBase< OtherDerived > &other) const
 
Quaternion< Scalarinverse () const
 
template<class OtherDerived >
bool isApprox (const QuaternionBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 
Scalar norm () const
 
void normalize ()
 
Quaternion< Scalarnormalized () const
 
template<class OtherDerived >
EIGEN_STRONG_INLINE Quaternion< Scalaroperator* (const QuaternionBase< OtherDerived > &q) const
 
template<class OtherDerived >
EIGEN_STRONG_INLINE Quaternion< typename internal::traits< Derived >::Scalaroperator* (const QuaternionBase< OtherDerived > &other) const
 
template<class OtherDerived >
EIGEN_STRONG_INLINE Derived & operator*= (const QuaternionBase< OtherDerived > &q)
 
EIGEN_STRONG_INLINE QuaternionBase< Derived > & operator= (const QuaternionBase< Derived > &other)
 
template<class OtherDerived >
EIGEN_STRONG_INLINE Derived & operator= (const QuaternionBase< OtherDerived > &other)
 
Derived & operator= (const AngleAxisType &aa)
 
template<class OtherDerived >
Derived & operator= (const MatrixBase< OtherDerived > &m)
 
template<class MatrixDerived >
Derived & operator= (const MatrixBase< MatrixDerived > &xpr)
 
template<typename Derived1 , typename Derived2 >
Derived & setFromTwoVectors (const MatrixBase< Derived1 > &a, const MatrixBase< Derived2 > &b)
 
QuaternionBasesetIdentity ()
 
template<class OtherDerived >
Quaternion< Scalarslerp (const Scalar &t, const QuaternionBase< OtherDerived > &other) const
 
template<class OtherDerived >
Quaternion< typename internal::traits< Derived >::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< Derived, 3 >
VectorType _transformVector (const OtherVectorType &v) const
 
const Derived & derived () const
 
Derived & derived ()
 
const Derived & derived () const
 
Derived & derived ()
 
Derived inverse () const
 
Derived 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< Derived, 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

static Quaternion< ScalarIdentity ()
 

Private Types

typedef RotationBase< Derived, 3 > Base
 

Detailed Description

template<class Derived>
class Eigen::QuaternionBase< Derived >

Base class for quaternion expressions.

Template Parameters
Derivedderived type (CRTP)
See also
class Quaternion

Definition at line 233 of file ForwardDeclarations.h.

Member Typedef Documentation

template<class Derived>
typedef AngleAxis<Scalar> Eigen::QuaternionBase< Derived >::AngleAxisType

the equivalent angle-axis type

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

template<class Derived>
typedef RotationBase<Derived, 3> Eigen::QuaternionBase< Derived >::Base
private

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

template<class Derived>
typedef internal::traits<Derived>::Coefficients Eigen::QuaternionBase< Derived >::Coefficients

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

template<class Derived>
typedef Matrix<Scalar,3,3> Eigen::QuaternionBase< Derived >::Matrix3

the equivalent rotation matrix type

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

template<class Derived>
typedef NumTraits<Scalar>::Real Eigen::QuaternionBase< Derived >::RealScalar

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

template<class Derived>
typedef internal::traits<Derived>::Scalar Eigen::QuaternionBase< Derived >::Scalar

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

template<class Derived>
typedef Matrix<Scalar,3,1> Eigen::QuaternionBase< Derived >::Vector3

the type of a 3D vector

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

Member Enumeration Documentation

template<class Derived>
anonymous enum
Enumerator
Flags 

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

Member Function Documentation

template<class Derived >
EIGEN_STRONG_INLINE QuaternionBase< Derived >::Vector3 Eigen::QuaternionBase< Derived >::_transformVector ( Vector3  v) const

return the result vector of v through the rotation

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:
  • Quaternion2: 30n
  • Via a Matrix3: 24 + 15n

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

template<class Derived>
template<class OtherDerived >
Scalar Eigen::QuaternionBase< Derived >::angularDistance ( const QuaternionBase< OtherDerived > &  other) const
template<class Derived>
template<class OtherDerived >
internal::traits<Derived>::Scalar Eigen::QuaternionBase< Derived >::angularDistance ( const QuaternionBase< OtherDerived > &  other) const
inline
Returns
the angle (in radian) between two rotations
See also
dot()

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

template<class Derived>
template<typename NewScalarType >
internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type Eigen::QuaternionBase< Derived >::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 176 of file Geometry/Quaternion.h.

template<class Derived>
const internal::traits<Derived>::Coefficients& Eigen::QuaternionBase< Derived >::coeffs ( ) const
inline
Returns
a read-only vector expression of the coefficients (x,y,z,w)

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

template<class Derived>
internal::traits<Derived>::Coefficients& Eigen::QuaternionBase< Derived >::coeffs ( )
inline
Returns
a vector expression of the coefficients (x,y,z,w)

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

template<class Derived >
Quaternion< typename internal::traits< Derived >::Scalar > Eigen::QuaternionBase< Derived >::conjugate ( void  ) const
inline
Returns
the conjugated quaternion
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
Quaternion2::inverse()

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

template<class Derived>
template<class OtherDerived >
Scalar Eigen::QuaternionBase< Derived >::dot ( const QuaternionBase< OtherDerived > &  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 133 of file Geometry/Quaternion.h.

template<class Derived>
static Quaternion<Scalar> Eigen::QuaternionBase< Derived >::Identity ( )
inlinestatic
Returns
a quaternion representing an identity rotation
See also
MatrixBase::Identity()

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

template<class Derived >
Quaternion< typename internal::traits< Derived >::Scalar > Eigen::QuaternionBase< Derived >::inverse ( void  ) const
inline
Returns
the quaternion describing the inverse rotation
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
QuaternionBase::conjugate()

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

template<class Derived>
template<class OtherDerived >
bool Eigen::QuaternionBase< Derived >::isApprox ( const QuaternionBase< OtherDerived > &  other,
const RealScalar 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 164 of file Geometry/Quaternion.h.

template<class Derived>
Scalar Eigen::QuaternionBase< Derived >::norm ( ) const
inline
Returns
the norm of the quaternion's coefficients
See also
QuaternionBase::squaredNorm(), MatrixBase::norm()

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

template<class Derived>
void Eigen::QuaternionBase< Derived >::normalize ( void  )
inline

Normalizes the quaternion *this

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

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

template<class Derived>
Quaternion<Scalar> Eigen::QuaternionBase< Derived >::normalized ( ) const
inline
Returns
a normalized copy of *this
See also
normalize(), MatrixBase::normalized()

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

template<class Derived>
template<class OtherDerived >
EIGEN_STRONG_INLINE Quaternion<Scalar> Eigen::QuaternionBase< Derived >::operator* ( const QuaternionBase< OtherDerived > &  q) const
template<class Derived>
template<class OtherDerived >
EIGEN_STRONG_INLINE Quaternion<typename internal::traits<Derived>::Scalar> Eigen::QuaternionBase< Derived >::operator* ( const QuaternionBase< OtherDerived > &  other) const
Returns
the concatenation of two rotations as a quaternion-quaternion product

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

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

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

template<class Derived>
EIGEN_STRONG_INLINE QuaternionBase< Derived > & Eigen::QuaternionBase< Derived >::operator= ( const QuaternionBase< Derived > &  other)

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

template<class Derived >
template<class OtherDerived >
EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase< Derived >::operator= ( const QuaternionBase< OtherDerived > &  other)

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

template<class Derived>
EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase< Derived >::operator= ( const AngleAxisType aa)

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

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

template<class Derived>
template<class OtherDerived >
Derived& Eigen::QuaternionBase< Derived >::operator= ( const MatrixBase< OtherDerived > &  m)
template<class Derived>
template<class MatrixDerived >
Derived& Eigen::QuaternionBase< Derived >::operator= ( const MatrixBase< MatrixDerived > &  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 514 of file Geometry/Quaternion.h.

template<class Derived >
template<typename Derived1 , typename Derived2 >
Derived & Eigen::QuaternionBase< Derived >::setFromTwoVectors ( const MatrixBase< Derived1 > &  a,
const MatrixBase< Derived2 > &  b 
)
inline
Returns
the quaternion which transform a into b through a rotation

Sets *this to be 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
a reference to *this.

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

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

template<class Derived>
QuaternionBase& Eigen::QuaternionBase< Derived >::setIdentity ( )
inline
template<class Derived>
template<class OtherDerived >
Quaternion<Scalar> Eigen::QuaternionBase< Derived >::slerp ( const Scalar t,
const QuaternionBase< OtherDerived > &  other 
) const
Returns
an interpolation for a constant motion between other and *this t in [0;1] see http://en.wikipedia.org/wiki/Slerp
template<class Derived>
template<class OtherDerived >
Quaternion<typename internal::traits<Derived>::Scalar> Eigen::QuaternionBase< Derived >::slerp ( const Scalar t,
const QuaternionBase< OtherDerived > &  other 
) const
Returns
the spherical linear interpolation between the two quaternions *this and other at the parameter t

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

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

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

template<class Derived >
QuaternionBase< Derived >::Matrix3 Eigen::QuaternionBase< Derived >::toRotationMatrix ( void  ) const
inline
Returns
an equivalent 3x3 rotation matrix

Convert the quaternion to a 3x3 rotation matrix. The quaternion is required to be normalized, otherwise the result is undefined.

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

template<class Derived>
const VectorBlock<const Coefficients,3> Eigen::QuaternionBase< Derived >::vec ( ) const
inline
Returns
a read-only vector expression of the imaginary part (x,y,z)

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

template<class Derived>
VectorBlock<Coefficients,3> Eigen::QuaternionBase< Derived >::vec ( )
inline
Returns
a vector expression of the imaginary part (x,y,z)

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

template<class Derived>
Scalar Eigen::QuaternionBase< Derived >::w ( ) const
inline
Returns
the w coefficient

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

template<class Derived>
Scalar& Eigen::QuaternionBase< Derived >::w ( )
inline
Returns
a reference to the w coefficient

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

template<class Derived>
Scalar Eigen::QuaternionBase< Derived >::x ( ) const
inline
Returns
the x coefficient

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

template<class Derived>
Scalar& Eigen::QuaternionBase< Derived >::x ( )
inline
Returns
a reference to the x coefficient

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

template<class Derived>
Scalar Eigen::QuaternionBase< Derived >::y ( ) const
inline
Returns
the y coefficient

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

template<class Derived>
Scalar& Eigen::QuaternionBase< Derived >::y ( )
inline
Returns
a reference to the y coefficient

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

template<class Derived>
Scalar Eigen::QuaternionBase< Derived >::z ( ) const
inline
Returns
the z coefficient

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

template<class Derived>
Scalar& Eigen::QuaternionBase< Derived >::z ( )
inline
Returns
a reference to the z coefficient

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


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


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Mon Jun 10 2019 12:35:38