enum
typedef QuaternionBase < Quaternion < _Scalar, _Options > > Base
typedef _Scalar Scalar
typedef internal::traits < Quaternion >::Coefficients Coefficients
typedef Base::AngleAxisType AngleAxisType
enum
typedef RotationBase < Quaternion < _Scalar, _Options >, 3 > Base
typedef internal::traits < Quaternion < _Scalar, _Options > >::Scalar Scalar
typedef NumTraits < Scalar >::Real RealScalar
typedef internal::traits < Quaternion < _Scalar, _Options > >::Coefficients Coefficients
typedef Coefficients::CoeffReturnType CoeffReturnType
typedef internal::conditional < bool(internal::traits < Quaternion < _Scalar, _Options > >::Flags &LvalueBit), Scalar &, CoeffReturnType >::type NonConstCoeffReturnType
typedef Matrix < Scalar , 3, 1 > Vector3
typedef Matrix < Scalar , 3, 3 > Matrix3
typedef AngleAxis < Scalar > AngleAxisType
enum { Dim = _Dim
}
typedef internal::traits < Derived >::Scalar Scalar
typedef Matrix < Scalar , Dim , Dim > RotationMatrixType
typedef Matrix < Scalar , Dim , 1 > VectorType
EIGEN_DEVICE_FUNC Quaternion ()
EIGEN_DEVICE_FUNC Quaternion (const Scalar &w , const Scalar &x , const Scalar &y , const Scalar &z )
EIGEN_DEVICE_FUNC Quaternion (const Scalar *data )
template<class Derived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion (const QuaternionBase < Derived > &other)
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)
EIGEN_DEVICE_FUNC Coefficients & coeffs ()
EIGEN_DEVICE_FUNC const Coefficients & coeffs () const
template<typename Derived1 , typename Derived2 >
EIGEN_DEVICE_FUNC Quaternion < Scalar , Options > FromTwoVectors (const MatrixBase < Derived1 > &a , const MatrixBase < Derived2 > &b )
EIGEN_DEVICE_FUNC CoeffReturnType x () const
EIGEN_DEVICE_FUNC NonConstCoeffReturnType x ()
EIGEN_DEVICE_FUNC CoeffReturnType y () const
EIGEN_DEVICE_FUNC NonConstCoeffReturnType y ()
EIGEN_DEVICE_FUNC CoeffReturnType z () const
EIGEN_DEVICE_FUNC NonConstCoeffReturnType z ()
EIGEN_DEVICE_FUNC CoeffReturnType w () const
EIGEN_DEVICE_FUNC NonConstCoeffReturnType w ()
EIGEN_DEVICE_FUNC const VectorBlock < const Coefficients , 3 > vec () const
EIGEN_DEVICE_FUNC VectorBlock < Coefficients , 3 > vec ()
EIGEN_DEVICE_FUNC const internal::traits < Quaternion < _Scalar, _Options > >::Coefficients & coeffs () const
EIGEN_DEVICE_FUNC internal::traits < Quaternion < _Scalar, _Options > >::Coefficients & coeffs ()
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE QuaternionBase < Quaternion < _Scalar, _Options > > & operator= (const QuaternionBase < Quaternion < _Scalar, _Options > > &other)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion < _Scalar, _Options > & operator= (const QuaternionBase < OtherDerived > &other)
EIGEN_DEVICE_FUNC Quaternion < _Scalar, _Options > & operator= (const AngleAxisType &aa)
EIGEN_DEVICE_FUNC Quaternion < _Scalar, _Options > & operator= (const MatrixBase < OtherDerived > &m )
EIGEN_DEVICE_FUNC Quaternion < _Scalar, _Options > & operator= (const MatrixBase < MatrixDerived > &xpr)
EIGEN_DEVICE_FUNC QuaternionBase & setIdentity ()
EIGEN_DEVICE_FUNC Scalar squaredNorm () const
EIGEN_DEVICE_FUNC Scalar norm () const
EIGEN_DEVICE_FUNC void normalize ()
EIGEN_DEVICE_FUNC Quaternion < Scalar > normalized () const
EIGEN_DEVICE_FUNC Scalar dot (const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC Scalar angularDistance (const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC internal::traits < Quaternion < _Scalar, _Options > >::Scalar angularDistance (const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC Matrix3 toRotationMatrix () const
EIGEN_DEVICE_FUNC Quaternion < _Scalar, _Options > & setFromTwoVectors (const MatrixBase < Derived1 > &a , const MatrixBase < Derived2 > &b )
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion < Scalar > operator* (const QuaternionBase < OtherDerived > &q) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion < typename internal::traits < Quaternion < _Scalar, _Options > >::Scalar > operator* (const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion < _Scalar, _Options > & operator*= (const QuaternionBase < OtherDerived > &q)
EIGEN_DEVICE_FUNC Quaternion < Scalar > inverse () const
EIGEN_DEVICE_FUNC Quaternion < Scalar > conjugate () const
EIGEN_DEVICE_FUNC Quaternion < Scalar > slerp (const Scalar &t, const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC Quaternion < typename internal::traits < Quaternion < _Scalar, _Options > >::Scalar > slerp (const Scalar &t, const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC bool operator== (const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC bool operator!= (const QuaternionBase < OtherDerived > &other) const
EIGEN_DEVICE_FUNC bool isApprox (const QuaternionBase < OtherDerived > &other, const RealScalar &prec=NumTraits < Scalar >::dummy_precision()) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Vector3 _transformVector (const Vector3 &v ) const
EIGEN_DEVICE_FUNC internal::enable_if < internal::is_same < Scalar , NewScalarType >::value, constDerived & >::type cast () const
EIGEN_DEVICE_FUNC internal::enable_if <!internal::is_same < Scalar , NewScalarType >::value, Quaternion < NewScalarType > >::type cast () const
EIGEN_DEVICE_FUNC const Derived & derived () const
EIGEN_DEVICE_FUNC Derived & derived ()
EIGEN_DEVICE_FUNC RotationMatrixType toRotationMatrix () const
EIGEN_DEVICE_FUNC RotationMatrixType matrix () const
EIGEN_DEVICE_FUNC Derived inverse () const
EIGEN_DEVICE_FUNC Transform < Scalar , Dim , Isometry > operator* (const Translation < Scalar , Dim > &t) const
EIGEN_DEVICE_FUNC RotationMatrixType operator* (const UniformScaling < Scalar > &s ) const
template<typename OtherDerived >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE internal::rotation_base_generic_product_selector < Derived, OtherDerived, OtherDerived::IsVectorAtCompileTime >::ReturnType operator* (const EigenBase < OtherDerived > &e ) const
template<int Mode, int Options>
EIGEN_DEVICE_FUNC Transform < Scalar , Dim , Mode > operator* (const Transform < Scalar , Dim , Mode, Options > &t) const
template<typename OtherVectorType >
EIGEN_DEVICE_FUNC VectorType _transformVector (const OtherVectorType &v ) const
template<typename _Scalar,
int _Options>
class Eigen::Quaternion< _Scalar, _Options >
The quaternion class used to represent 3D orientations and rotations.
\geometry_module
Template Parameters
_Scalar the scalar type, i.e., the type of the coefficients
_Options controls the memory alignment of the coefficients. Can be # AutoAlign or # DontAlign. Default is AutoAlign.
This class represents a quaternion 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:
compact storage (4 scalars)
efficient to compose (28 flops),
stable spherical interpolation
The following two typedefs are provided for convenience:
Quaternionf for float
Quaterniond for double
Warning Operations interpreting the quaternion as rotation have undefined behavior if the quaternion is not normalized.
See also class AngleAxis , class Transform