#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 |
Definition at line 42 of file Geometry/Quaternion.h.
typedef AngleAxis<Scalar> QuaternionBase< Derived >::AngleAxisType |
the equivalent angle-axis type
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, Quaternion< float >, Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 62 of file Geometry/Quaternion.h.
typedef RotationBase<Derived, 3> QuaternionBase< Derived >::Base [private] |
Reimplemented in Map< Quaternion< _Scalar >, _Options >, Map< const Quaternion< _Scalar >, _Options >, Quaternion< _Scalar >, Quaternion< double >, Quaternion< float >, Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 44 of file Geometry/Quaternion.h.
typedef internal::traits<Derived>::Coefficients QuaternionBase< Derived >::Coefficients |
Reimplemented in Map< Quaternion< _Scalar >, _Options >, Map< const Quaternion< _Scalar >, _Options >, Quaternion< _Scalar >, Quaternion< double >, Quaternion< float >, Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 51 of file Geometry/Quaternion.h.
typedef Matrix<Scalar,3,3> QuaternionBase< Derived >::Matrix3 |
the equivalent rotation matrix type
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 60 of file Geometry/Quaternion.h.
typedef NumTraits<Scalar>::Real QuaternionBase< Derived >::RealScalar |
Definition at line 50 of file Geometry/Quaternion.h.
typedef internal::traits<Derived>::Scalar QuaternionBase< Derived >::Scalar |
the scalar type of the coefficients
Reimplemented from RotationBase< Derived, 3 >.
Reimplemented in Map< Quaternion< _Scalar >, _Options >, Map< const Quaternion< _Scalar >, _Options >, Quaternion< _Scalar >, Quaternion< double >, Quaternion< float >, Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 49 of file Geometry/Quaternion.h.
typedef Matrix<Scalar,3,1> QuaternionBase< Derived >::Vector3 |
the type of a 3D vector
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 58 of file Geometry/Quaternion.h.
anonymous enum |
Definition at line 52 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE QuaternionBase< Derived >::Vector3 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 471 of file Geometry/Quaternion.h.
internal::traits< Derived >::Scalar QuaternionBase< Derived >::angularDistance | ( | const QuaternionBase< OtherDerived > & | other | ) | const [inline] |
Definition at line 651 of file Geometry/Quaternion.h.
internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type 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 Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 183 of file Geometry/Quaternion.h.
const internal::traits<Derived>::Coefficients& QuaternionBase< Derived >::coeffs | ( | ) | const [inline] |
Reimplemented in Map< Quaternion< _Scalar >, _Options >, Map< const Quaternion< _Scalar >, _Options >, Quaternion< _Scalar >, Quaternion< double >, Quaternion< float >, Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 91 of file Geometry/Quaternion.h.
internal::traits<Derived>::Coefficients& QuaternionBase< Derived >::coeffs | ( | ) | [inline] |
Reimplemented in Map< Quaternion< _Scalar >, _Options >, Quaternion< _Scalar >, Quaternion< double >, Quaternion< float >, Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 94 of file Geometry/Quaternion.h.
Quaternion< typename internal::traits< Derived >::Scalar > 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 Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 640 of file Geometry/Quaternion.h.
Scalar 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 140 of file Geometry/Quaternion.h.
static Quaternion<Scalar> QuaternionBase< Derived >::Identity | ( | ) | [inline, static] |
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 112 of file Geometry/Quaternion.h.
Quaternion< typename internal::traits< Derived >::Scalar > 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 RotationBase< Derived, 3 >.
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 619 of file Geometry/Quaternion.h.
bool 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 171 of file Geometry/Quaternion.h.
Scalar QuaternionBase< Derived >::norm | ( | ) | const [inline] |
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 126 of file Geometry/Quaternion.h.
void QuaternionBase< Derived >::normalize | ( | void | ) | [inline] |
Normalizes the quaternion *this
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 130 of file Geometry/Quaternion.h.
Quaternion<Scalar> QuaternionBase< Derived >::normalized | ( | ) | const [inline] |
*this
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 133 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Quaternion< typename internal::traits< Derived >::Scalar > QuaternionBase< Derived >::operator* | ( | const QuaternionBase< OtherDerived > & | other | ) | const |
Definition at line 444 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & QuaternionBase< Derived >::operator*= | ( | const QuaternionBase< OtherDerived > & | other | ) |
Definition at line 456 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE QuaternionBase< Derived > & QuaternionBase< Derived >::operator= | ( | const QuaternionBase< Derived > & | other | ) |
Definition at line 484 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & QuaternionBase< Derived >::operator= | ( | const QuaternionBase< OtherDerived > & | other | ) |
Definition at line 492 of file Geometry/Quaternion.h.
EIGEN_STRONG_INLINE Derived & QuaternionBase< Derived >::operator= | ( | const AngleAxisType & | aa | ) |
Set *this
from an angle-axis aa and returns a reference to *this
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 501 of file Geometry/Quaternion.h.
Derived& QuaternionBase< Derived >::operator= | ( | const MatrixBase< OtherDerived > & | m | ) |
Derived& QuaternionBase< Derived >::operator= | ( | const MatrixBase< MatrixDerived > & | xpr | ) | [inline] |
Set *this
from the expression xpr:
Definition at line 517 of file Geometry/Quaternion.h.
Derived & 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 Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 576 of file Geometry/Quaternion.h.
QuaternionBase& QuaternionBase< Derived >::setIdentity | ( | ) | [inline] |
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 116 of file Geometry/Quaternion.h.
Quaternion< typename internal::traits< Derived >::Scalar > 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 666 of file Geometry/Quaternion.h.
Scalar QuaternionBase< Derived >::squaredNorm | ( | ) | const [inline] |
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 121 of file Geometry/Quaternion.h.
QuaternionBase< Derived >::Matrix3 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 RotationBase< Derived, 3 >.
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 530 of file Geometry/Quaternion.h.
const VectorBlock<const Coefficients,3> QuaternionBase< Derived >::vec | ( | ) | const [inline] |
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 85 of file Geometry/Quaternion.h.
VectorBlock<Coefficients,3> QuaternionBase< Derived >::vec | ( | ) | [inline] |
Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 88 of file Geometry/Quaternion.h.
Scalar QuaternionBase< Derived >::w | ( | ) | const [inline] |
w
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 73 of file Geometry/Quaternion.h.
Scalar& QuaternionBase< Derived >::w | ( | ) | [inline] |
w
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 82 of file Geometry/Quaternion.h.
Scalar QuaternionBase< Derived >::x | ( | ) | const [inline] |
x
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 67 of file Geometry/Quaternion.h.
Scalar& QuaternionBase< Derived >::x | ( | ) | [inline] |
x
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 76 of file Geometry/Quaternion.h.
Scalar QuaternionBase< Derived >::y | ( | ) | const [inline] |
y
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 69 of file Geometry/Quaternion.h.
Scalar& QuaternionBase< Derived >::y | ( | ) | [inline] |
y
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 78 of file Geometry/Quaternion.h.
Scalar QuaternionBase< Derived >::z | ( | ) | const [inline] |
z
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 71 of file Geometry/Quaternion.h.
Scalar& QuaternionBase< Derived >::z | ( | ) | [inline] |
z
coefficient Reimplemented in Quaternion< _Scalar >, Quaternion< double >, and Quaternion< float >.
Definition at line 80 of file Geometry/Quaternion.h.