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 (const 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, const 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 (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 |
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 | ( | const Vector3 & | v | ) | const |
return the result vector of v through the rotation
Rotation of a vector by a quaternion.
Definition at line 464 of file Geometry/Quaternion.h.
internal::traits< Derived >::Scalar Eigen::QuaternionBase< Derived >::angularDistance | ( | const QuaternionBase< OtherDerived > & | other | ) | const [inline] |
Definition at line 668 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 172 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 657 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 636 of file Geometry/Quaternion.h.
bool Eigen::QuaternionBase< Derived >::isApprox | ( | const QuaternionBase< OtherDerived > & | other, |
const 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 160 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 437 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase< Derived >::operator*= | ( | const QuaternionBase< OtherDerived > & | other | ) |
Definition at line 449 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE QuaternionBase< Derived > & Eigen::QuaternionBase< Derived >::operator= | ( | const QuaternionBase< Derived > & | other | ) |
Definition at line 477 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & Eigen::QuaternionBase< Derived >::operator= | ( | const QuaternionBase< OtherDerived > & | other | ) |
Definition at line 485 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 494 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 512 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 571 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 | ( | const Scalar & | t, |
const QuaternionBase< OtherDerived > & | other | ||
) | const |
*this
and other at the parameter t in [0;1].This represents an interpolation for a constant motion between *this
and other, see also http://en.wikipedia.org/wiki/Slerp.
Definition at line 687 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 525 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.