Base class for quaternion expressions. More...
#include <Quaternion.h>
Public Types | |
enum | { Flags = Eigen::internal::traits<Derived>::Flags } |
typedef AngleAxis< Scalar > | AngleAxisType |
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 Member Functions | |
EIGEN_STRONG_INLINE Vector3 | _transformVector (Vector3 v) const |
template<class OtherDerived > | |
Scalar | angularDistance (const QuaternionBase< OtherDerived > &other) const |
template<typename NewScalarType > | |
internal::cast_return_type < Derived, Quaternion < NewScalarType > >::type | cast () const |
const internal::traits < Derived >::Coefficients & | coeffs () const |
internal::traits< Derived > ::Coefficients & | coeffs () |
Quaternion< Scalar > | conjugate () const |
template<class OtherDerived > | |
Scalar | dot (const QuaternionBase< OtherDerived > &other) const |
Quaternion< Scalar > | inverse () const |
template<class OtherDerived > | |
bool | isApprox (const QuaternionBase< OtherDerived > &other, RealScalar prec=NumTraits< Scalar >::dummy_precision()) const |
Scalar | norm () const |
void | normalize () |
Quaternion< Scalar > | normalized () const |
template<class OtherDerived > | |
EIGEN_STRONG_INLINE Quaternion < Scalar > | operator* (const QuaternionBase< OtherDerived > &q) 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) |
QuaternionBase & | setIdentity () |
template<class OtherDerived > | |
Quaternion< Scalar > | slerp (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 |
Scalar & | w () |
Scalar | x () const |
Scalar & | x () |
Scalar | y () const |
Scalar & | y () |
Scalar | z () const |
Scalar & | z () |
Static Public Member Functions | |
static Quaternion< Scalar > | Identity () |
Private Types | |
typedef RotationBase< Derived, 3 > | Base |
Base class for quaternion expressions.
Derived | derived type (CRTP) |
Definition at line 35 of file Geometry/Quaternion.h.
typedef AngleAxis<Scalar> Eigen::QuaternionBase< Derived >::AngleAxisType |
the equivalent angle-axis type
Reimplemented in Eigen::Quaternion< _Scalar >, and Eigen::Quaternion< _Scalar >.
Definition at line 55 of file Geometry/Quaternion.h.
typedef RotationBase<Derived, 3> Eigen::QuaternionBase< Derived >::Base [private] |
Reimplemented in Eigen::Map< Quaternion< _Scalar >, _Options >, Eigen::Map< const Quaternion< _Scalar >, _Options >, Eigen::Quaternion< _Scalar >, and Eigen::Quaternion< _Scalar >.
Definition at line 37 of file Geometry/Quaternion.h.
typedef internal::traits<Derived>::Coefficients Eigen::QuaternionBase< Derived >::Coefficients |
Reimplemented in Eigen::Map< Quaternion< _Scalar >, _Options >, Eigen::Map< const Quaternion< _Scalar >, _Options >, Eigen::Quaternion< _Scalar >, and Eigen::Quaternion< _Scalar >.
Definition at line 44 of file Geometry/Quaternion.h.
typedef Matrix<Scalar,3,3> Eigen::QuaternionBase< Derived >::Matrix3 |
the equivalent rotation matrix type
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 53 of file Geometry/Quaternion.h.
typedef NumTraits<Scalar>::Real Eigen::QuaternionBase< Derived >::RealScalar |
Definition at line 43 of file Geometry/Quaternion.h.
typedef internal::traits<Derived>::Scalar Eigen::QuaternionBase< Derived >::Scalar |
the scalar type of the coefficients
Reimplemented from Eigen::RotationBase< Derived, 3 >.
Reimplemented in Eigen::Map< Quaternion< _Scalar >, _Options >, Eigen::Map< const Quaternion< _Scalar >, _Options >, Eigen::Quaternion< _Scalar >, and Eigen::Quaternion< _Scalar >.
Definition at line 42 of file Geometry/Quaternion.h.
typedef Matrix<Scalar,3,1> Eigen::QuaternionBase< Derived >::Vector3 |
the type of a 3D vector
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 51 of file Geometry/Quaternion.h.
anonymous enum |
Definition at line 45 of file Geometry/Quaternion.h.
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.
Definition at line 476 of file Geometry/Quaternion.h.
internal::traits< Derived >::Scalar Eigen::QuaternionBase< Derived >::angularDistance | ( | const QuaternionBase< OtherDerived > & | other | ) | const [inline] |
Definition at line 677 of file Geometry/Quaternion.h.
internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type Eigen::QuaternionBase< Derived >::cast | ( | ) | const [inline] |
*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
.
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 176 of file Geometry/Quaternion.h.
const internal::traits<Derived>::Coefficients& Eigen::QuaternionBase< Derived >::coeffs | ( | ) | const [inline] |
Reimplemented in Eigen::Map< Quaternion< _Scalar >, _Options >, Eigen::Map< const Quaternion< _Scalar >, _Options >, Eigen::Quaternion< _Scalar >, and Eigen::Quaternion< _Scalar >.
Definition at line 84 of file Geometry/Quaternion.h.
internal::traits<Derived>::Coefficients& Eigen::QuaternionBase< Derived >::coeffs | ( | ) | [inline] |
Reimplemented in Eigen::Map< Quaternion< _Scalar >, _Options >, Eigen::Quaternion< _Scalar >, and Eigen::Quaternion< _Scalar >.
Definition at line 87 of file Geometry/Quaternion.h.
Quaternion< typename internal::traits< Derived >::Scalar > Eigen::QuaternionBase< Derived >::conjugate | ( | void | ) | const [inline] |
*this
which is equal to the multiplicative inverse if the quaternion is normalized. The conjugate of a quaternion represents the opposite rotation.Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 666 of file Geometry/Quaternion.h.
Scalar Eigen::QuaternionBase< Derived >::dot | ( | const QuaternionBase< OtherDerived > & | other | ) | const [inline] |
*this
and other Geometrically speaking, the dot product of two unit quaternions corresponds to the cosine of half the angle between the two rotations. Definition at line 133 of file Geometry/Quaternion.h.
static Quaternion<Scalar> Eigen::QuaternionBase< Derived >::Identity | ( | ) | [inline, static] |
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 105 of file Geometry/Quaternion.h.
Quaternion< typename internal::traits< Derived >::Scalar > Eigen::QuaternionBase< Derived >::inverse | ( | void | ) | const [inline] |
*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.Reimplemented from Eigen::RotationBase< Derived, 3 >.
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 645 of file Geometry/Quaternion.h.
bool Eigen::QuaternionBase< Derived >::isApprox | ( | const QuaternionBase< OtherDerived > & | other, |
RealScalar | prec = NumTraits<Scalar>::dummy_precision() |
||
) | const [inline] |
true
if *this
is approximately equal to other, within the precision determined by prec.Definition at line 164 of file Geometry/Quaternion.h.
Scalar Eigen::QuaternionBase< Derived >::norm | ( | ) | const [inline] |
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 119 of file Geometry/Quaternion.h.
void Eigen::QuaternionBase< Derived >::normalize | ( | void | ) | [inline] |
Normalizes the quaternion *this
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 123 of file Geometry/Quaternion.h.
Quaternion<Scalar> Eigen::QuaternionBase< Derived >::normalized | ( | ) | const [inline] |
*this
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 126 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Quaternion< typename internal::traits< Derived >::Scalar > Eigen::QuaternionBase< Derived >::operator* | ( | const QuaternionBase< OtherDerived > & | other | ) | const |
Definition at line 449 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase< Derived >::operator*= | ( | const QuaternionBase< OtherDerived > & | other | ) |
Definition at line 461 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE QuaternionBase< Derived > & Eigen::QuaternionBase< Derived >::operator= | ( | const QuaternionBase< Derived > & | other | ) |
Definition at line 489 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase< Derived >::operator= | ( | const QuaternionBase< OtherDerived > & | other | ) |
Definition at line 497 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase< Derived >::operator= | ( | const AngleAxisType & | aa | ) |
Set *this
from an angle-axis aa and returns a reference to *this
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 506 of file Geometry/Quaternion.h.
Derived& Eigen::QuaternionBase< Derived >::operator= | ( | const MatrixBase< OtherDerived > & | m | ) |
Derived& Eigen::QuaternionBase< Derived >::operator= | ( | const MatrixBase< MatrixDerived > & | xpr | ) | [inline] |
Set *this
from the expression xpr:
Definition at line 522 of file Geometry/Quaternion.h.
Derived & Eigen::QuaternionBase< Derived >::setFromTwoVectors | ( | const MatrixBase< Derived1 > & | a, |
const MatrixBase< Derived2 > & | b | ||
) | [inline] |
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.
*this
.Note that the two input vectors do not have to be normalized, and do not need to have the same norm.
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 581 of file Geometry/Quaternion.h.
QuaternionBase& Eigen::QuaternionBase< Derived >::setIdentity | ( | ) | [inline] |
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 109 of file Geometry/Quaternion.h.
Quaternion< typename internal::traits< Derived >::Scalar > Eigen::QuaternionBase< Derived >::slerp | ( | Scalar | t, |
const QuaternionBase< OtherDerived > & | other | ||
) | const |
*this
t in [0;1] see http://en.wikipedia.org/wiki/Slerp*this
and other at the parameter t Definition at line 692 of file Geometry/Quaternion.h.
Scalar Eigen::QuaternionBase< Derived >::squaredNorm | ( | ) | const [inline] |
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 114 of file Geometry/Quaternion.h.
QuaternionBase< Derived >::Matrix3 Eigen::QuaternionBase< Derived >::toRotationMatrix | ( | void | ) | const [inline] |
Convert the quaternion to a 3x3 rotation matrix. The quaternion is required to be normalized, otherwise the result is undefined.
Reimplemented from Eigen::RotationBase< Derived, 3 >.
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 535 of file Geometry/Quaternion.h.
const VectorBlock<const Coefficients,3> Eigen::QuaternionBase< Derived >::vec | ( | ) | const [inline] |
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 78 of file Geometry/Quaternion.h.
VectorBlock<Coefficients,3> Eigen::QuaternionBase< Derived >::vec | ( | ) | [inline] |
Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 81 of file Geometry/Quaternion.h.
Scalar Eigen::QuaternionBase< Derived >::w | ( | ) | const [inline] |
w
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 66 of file Geometry/Quaternion.h.
Scalar& Eigen::QuaternionBase< Derived >::w | ( | ) | [inline] |
w
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 75 of file Geometry/Quaternion.h.
Scalar Eigen::QuaternionBase< Derived >::x | ( | ) | const [inline] |
x
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 60 of file Geometry/Quaternion.h.
Scalar& Eigen::QuaternionBase< Derived >::x | ( | ) | [inline] |
x
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 69 of file Geometry/Quaternion.h.
Scalar Eigen::QuaternionBase< Derived >::y | ( | ) | const [inline] |
y
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 62 of file Geometry/Quaternion.h.
Scalar& Eigen::QuaternionBase< Derived >::y | ( | ) | [inline] |
y
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 71 of file Geometry/Quaternion.h.
Scalar Eigen::QuaternionBase< Derived >::z | ( | ) | const [inline] |
z
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 64 of file Geometry/Quaternion.h.
Scalar& Eigen::QuaternionBase< Derived >::z | ( | ) | [inline] |
z
coefficient Reimplemented in Eigen::Quaternion< _Scalar >.
Definition at line 73 of file Geometry/Quaternion.h.