Wm4::Quaternion< Real > Class Template Reference

#include <Wm4Quaternion.h>

Collaboration diagram for Wm4::Quaternion< Real >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Quaternion ()
 Quaternion (Real fW, Real fX, Real fY, Real fZ)
 Quaternion (const Quaternion &rkQ)
 Quaternion (const Matrix3< Real > &rkRot)
 Quaternion (const Vector3< Real > &rkAxis, Real fAngle)
 Quaternion (const Vector3< Real > akRotColumn[3])
 operator const Real * () const
 operator Real * ()
Real operator[] (int i) const
Real & operator[] (int i)
Real W () const
Real & W ()
Real X () const
Real & X ()
Real Y () const
Real & Y ()
Real Z () const
Real & Z ()
Quaternionoperator= (const Quaternion &rkQ)
bool operator== (const Quaternion &rkQ) const
bool operator!= (const Quaternion &rkQ) const
bool operator< (const Quaternion &rkQ) const
bool operator<= (const Quaternion &rkQ) const
bool operator> (const Quaternion &rkQ) const
bool operator>= (const Quaternion &rkQ) const
Quaternion operator+ (const Quaternion &rkQ) const
Quaternion operator- (const Quaternion &rkQ) const
Quaternion operator * (const Quaternion &rkQ) const
Quaternion operator * (Real fScalar) const
Quaternion operator/ (Real fScalar) const
Quaternion operator- () const
Quaternionoperator+= (const Quaternion &rkQ)
Quaternionoperator-= (const Quaternion &rkQ)
Quaternionoperator *= (Real fScalar)
Quaternionoperator/= (Real fScalar)
QuaternionFromRotationMatrix (const Matrix3< Real > &rkRot)
void ToRotationMatrix (Matrix3< Real > &rkRot) const
QuaternionFromRotationMatrix (const Vector3< Real > akRotColumn[3])
void ToRotationMatrix (Vector3< Real > akRotColumn[3]) const
QuaternionFromAxisAngle (const Vector3< Real > &rkAxis, Real fAngle)
void ToAxisAngle (Vector3< Real > &rkAxis, Real &rfAngle) const
Real Length () const
Real SquaredLength () const
Real Dot (const Quaternion &rkQ) const
Real Normalize ()
Quaternion Inverse () const
Quaternion Conjugate () const
Quaternion Exp () const
Quaternion Log () const
Vector3< Real > Rotate (const Vector3< Real > &rkVector) const
QuaternionSlerp (Real fT, const Quaternion &rkP, const Quaternion &rkQ)
QuaternionSlerpExtraSpins (Real fT, const Quaternion &rkP, const Quaternion &rkQ, int iExtraSpins)
QuaternionIntermediate (const Quaternion &rkQ0, const Quaternion &rkQ1, const Quaternion &rkQ2)
QuaternionSquad (Real fT, const Quaternion &rkQ0, const Quaternion &rkA0, const Quaternion &rkA1, const Quaternion &rkQ1)
QuaternionAlign (const Vector3< Real > &rkV1, const Vector3< Real > &rkV2)
void DecomposeTwistTimesSwing (const Vector3< Real > &rkV1, Quaternion &rkTwist, Quaternion &rkSwing)
void DecomposeSwingTimesTwist (const Vector3< Real > &rkV1, Quaternion &rkSwing, Quaternion &rkTwist)
Quaternion GetClosestX () const
Quaternion GetClosestY () const
Quaternion GetClosestZ () const
Quaternion GetClosestXY () const
Quaternion GetClosestYX () const
Quaternion GetClosestZX () const
Quaternion GetClosestXZ () const
Quaternion GetClosestYZ () const
Quaternion GetClosestZY () const
void FactorXYZ (Real &rfCx, Real &rfSx, Real &rfCy, Real &rfSy, Real &rfCz, Real &rfSz)
void FactorXZY (Real &rfCx, Real &rfSx, Real &rfCz, Real &rfSz, Real &rfCy, Real &rfSy)
void FactorYZX (Real &rfCy, Real &rfSy, Real &rfCz, Real &rfSz, Real &rfCx, Real &rfSx)
void FactorYXZ (Real &rfCy, Real &rfSy, Real &rfCx, Real &rfSx, Real &rfCz, Real &rfSz)
void FactorZXY (Real &rfCz, Real &rfSz, Real &rfCx, Real &rfSx, Real &rfCy, Real &rfSy)
void FactorZYX (Real &rfCz, Real &rfSz, Real &rfCy, Real &rfSy, Real &rfCx, Real &rfSx)
Quaternion GetClosestX (const Constraints &rkXCon) const
Quaternion GetClosestY (const Constraints &rkYCon) const
Quaternion GetClosestZ (const Constraints &rkZCon) const
Quaternion GetClosestXY (const Constraints &rkXCon, const Constraints &rkYCon) const
Quaternion GetClosestYX (const Constraints &rkYCon, const Constraints &rkXCon) const
Quaternion GetClosestZX (const Constraints &rkZCon, const Constraints &rkXCon) const
Quaternion GetClosestXZ (const Constraints &rkXCon, const Constraints &rkZCon) const
Quaternion GetClosestZY (const Constraints &rkZCon, const Constraints &rkYCon) const
Quaternion GetClosestYZ (const Constraints &rkYCon, const Constraints &rkZCon) const
template<>
const Quaternion< float > IDENTITY (1.0f, 0.0f, 0.0f, 0.0f)
template<>
const Quaternion< float > ZERO (0.0f, 0.0f, 0.0f, 0.0f)
template<>
int ms_iNext [3]
template<>
float ms_fTolerance
template<>
float ms_fRootTwo
template<>
float ms_fRootHalf
template<>
const Quaternion< double > IDENTITY (1.0, 0.0, 0.0, 0.0)
template<>
const Quaternion< double > ZERO (0.0, 0.0, 0.0, 0.0)
template<>
int ms_iNext [3]
template<>
double ms_fTolerance
template<>
double ms_fRootTwo
template<>
double ms_fRootHalf

Static Public Attributes

static WM4_FOUNDATION_ITEM
const Quaternion 
IDENTITY
static WM4_FOUNDATION_ITEM
const Quaternion 
ZERO

Classes

class  Constraints

template<class Real>
class Wm4::Quaternion< Real >


Constructor & Destructor Documentation

template<class Real>
Wm4::Quaternion< Real >::Quaternion (  ) 

template<class Real>
Wm4::Quaternion< Real >::Quaternion ( Real  fW,
Real  fX,
Real  fY,
Real  fZ 
)

template<class Real>
Wm4::Quaternion< Real >::Quaternion ( const Quaternion< Real > &  rkQ  ) 

template<class Real>
Wm4::Quaternion< Real >::Quaternion ( const Matrix3< Real > &  rkRot  ) 

template<class Real>
Wm4::Quaternion< Real >::Quaternion ( const Vector3< Real > &  rkAxis,
Real  fAngle 
)

template<class Real>
Wm4::Quaternion< Real >::Quaternion ( const Vector3< Real >  akRotColumn[3]  ) 


Member Function Documentation

template<class Real>
Wm4::Quaternion< Real >::operator const Real * (  )  const [inline]

template<class Real>
Wm4::Quaternion< Real >::operator Real * (  )  [inline]

template<class Real>
Real Wm4::Quaternion< Real >::operator[] ( int  i  )  const [inline]

template<class Real>
Real & Wm4::Quaternion< Real >::operator[] ( int  i  )  [inline]

template<class Real>
Real Wm4::Quaternion< Real >::W (  )  const [inline]

template<class Real>
Real & Wm4::Quaternion< Real >::W (  )  [inline]

template<class Real>
Real Wm4::Quaternion< Real >::X (  )  const [inline]

template<class Real>
Real & Wm4::Quaternion< Real >::X (  )  [inline]

template<class Real>
Real Wm4::Quaternion< Real >::Y (  )  const [inline]

template<class Real>
Real & Wm4::Quaternion< Real >::Y (  )  [inline]

template<class Real>
Real Wm4::Quaternion< Real >::Z (  )  const [inline]

template<class Real>
Real & Wm4::Quaternion< Real >::Z (  )  [inline]

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::operator= ( const Quaternion< Real > &  rkQ  )  [inline]

template<class Real>
bool Wm4::Quaternion< Real >::operator== ( const Quaternion< Real > &  rkQ  )  const

template<class Real>
bool Wm4::Quaternion< Real >::operator!= ( const Quaternion< Real > &  rkQ  )  const

template<class Real>
bool Wm4::Quaternion< Real >::operator< ( const Quaternion< Real > &  rkQ  )  const

template<class Real>
bool Wm4::Quaternion< Real >::operator<= ( const Quaternion< Real > &  rkQ  )  const

template<class Real>
bool Wm4::Quaternion< Real >::operator> ( const Quaternion< Real > &  rkQ  )  const

template<class Real>
bool Wm4::Quaternion< Real >::operator>= ( const Quaternion< Real > &  rkQ  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::operator+ ( const Quaternion< Real > &  rkQ  )  const [inline]

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::operator- ( const Quaternion< Real > &  rkQ  )  const [inline]

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::operator * ( const Quaternion< Real > &  rkQ  )  const [inline]

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::operator * ( Real  fScalar  )  const [inline]

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::operator/ ( Real  fScalar  )  const [inline]

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::operator- (  )  const [inline]

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::operator+= ( const Quaternion< Real > &  rkQ  )  [inline]

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::operator-= ( const Quaternion< Real > &  rkQ  )  [inline]

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::operator *= ( Real  fScalar  )  [inline]

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::operator/= ( Real  fScalar  )  [inline]

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::FromRotationMatrix ( const Matrix3< Real > &  rkRot  ) 

template<class Real>
void Wm4::Quaternion< Real >::ToRotationMatrix ( Matrix3< Real > &  rkRot  )  const

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::FromRotationMatrix ( const Vector3< Real >  akRotColumn[3]  ) 

template<class Real>
void Wm4::Quaternion< Real >::ToRotationMatrix ( Vector3< Real >  akRotColumn[3]  )  const

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::FromAxisAngle ( const Vector3< Real > &  rkAxis,
Real  fAngle 
)

template<class Real>
void Wm4::Quaternion< Real >::ToAxisAngle ( Vector3< Real > &  rkAxis,
Real &  rfAngle 
) const

template<class Real>
Real Wm4::Quaternion< Real >::Length (  )  const [inline]

template<class Real>
Real Wm4::Quaternion< Real >::SquaredLength (  )  const [inline]

template<class Real>
Real Wm4::Quaternion< Real >::Dot ( const Quaternion< Real > &  rkQ  )  const [inline]

template<class Real>
Real Wm4::Quaternion< Real >::Normalize (  )  [inline]

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::Inverse (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::Conjugate (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::Exp (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::Log (  )  const

template<class Real>
Vector3< Real > Wm4::Quaternion< Real >::Rotate ( const Vector3< Real > &  rkVector  )  const

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::Slerp ( Real  fT,
const Quaternion< Real > &  rkP,
const Quaternion< Real > &  rkQ 
)

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::SlerpExtraSpins ( Real  fT,
const Quaternion< Real > &  rkP,
const Quaternion< Real > &  rkQ,
int  iExtraSpins 
)

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::Intermediate ( const Quaternion< Real > &  rkQ0,
const Quaternion< Real > &  rkQ1,
const Quaternion< Real > &  rkQ2 
)

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::Squad ( Real  fT,
const Quaternion< Real > &  rkQ0,
const Quaternion< Real > &  rkA0,
const Quaternion< Real > &  rkA1,
const Quaternion< Real > &  rkQ1 
)

template<class Real>
Quaternion< Real > & Wm4::Quaternion< Real >::Align ( const Vector3< Real > &  rkV1,
const Vector3< Real > &  rkV2 
)

template<class Real>
void Wm4::Quaternion< Real >::DecomposeTwistTimesSwing ( const Vector3< Real > &  rkV1,
Quaternion< Real > &  rkTwist,
Quaternion< Real > &  rkSwing 
)

template<class Real>
void Wm4::Quaternion< Real >::DecomposeSwingTimesTwist ( const Vector3< Real > &  rkV1,
Quaternion< Real > &  rkSwing,
Quaternion< Real > &  rkTwist 
)

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestX (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestY (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestZ (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestXY (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestYX (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestZX (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestXZ (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestYZ (  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestZY (  )  const

template<class Real>
void Wm4::Quaternion< Real >::FactorXYZ ( Real &  rfCx,
Real &  rfSx,
Real &  rfCy,
Real &  rfSy,
Real &  rfCz,
Real &  rfSz 
)

template<class Real>
void Wm4::Quaternion< Real >::FactorXZY ( Real &  rfCx,
Real &  rfSx,
Real &  rfCz,
Real &  rfSz,
Real &  rfCy,
Real &  rfSy 
)

template<class Real>
void Wm4::Quaternion< Real >::FactorYZX ( Real &  rfCy,
Real &  rfSy,
Real &  rfCz,
Real &  rfSz,
Real &  rfCx,
Real &  rfSx 
)

template<class Real>
void Wm4::Quaternion< Real >::FactorYXZ ( Real &  rfCy,
Real &  rfSy,
Real &  rfCx,
Real &  rfSx,
Real &  rfCz,
Real &  rfSz 
)

template<class Real>
void Wm4::Quaternion< Real >::FactorZXY ( Real &  rfCz,
Real &  rfSz,
Real &  rfCx,
Real &  rfSx,
Real &  rfCy,
Real &  rfSy 
)

template<class Real>
void Wm4::Quaternion< Real >::FactorZYX ( Real &  rfCz,
Real &  rfSz,
Real &  rfCy,
Real &  rfSy,
Real &  rfCx,
Real &  rfSx 
)

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestX ( const Constraints rkXCon  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestY ( const Constraints rkYCon  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestZ ( const Constraints rkZCon  )  const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestXY ( const Constraints rkXCon,
const Constraints rkYCon 
) const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestYX ( const Constraints rkYCon,
const Constraints rkXCon 
) const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestZX ( const Constraints rkZCon,
const Constraints rkXCon 
) const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestXZ ( const Constraints rkXCon,
const Constraints rkZCon 
) const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestZY ( const Constraints rkZCon,
const Constraints rkYCon 
) const

template<class Real>
Quaternion< Real > Wm4::Quaternion< Real >::GetClosestYZ ( const Constraints rkYCon,
const Constraints rkZCon 
) const

template<>
const Quaternion< float > Wm4::Quaternion< float >::IDENTITY ( 1.  0f,
0.  0f,
0.  0f,
0.  0f 
)

template<>
const Quaternion< float > Wm4::Quaternion< float >::ZERO ( 0.  0f,
0.  0f,
0.  0f,
0.  0f 
)

template<>
int Wm4::Quaternion< float >::ms_iNext (  ) 

template<>
float Wm4::Quaternion< float >::ms_fTolerance (  ) 

template<>
float Wm4::Quaternion< float >::ms_fRootTwo (  ) 

template<>
float Wm4::Quaternion< float >::ms_fRootHalf (  ) 

template<>
const Quaternion< double > Wm4::Quaternion< double >::IDENTITY ( 1.  0,
0.  0,
0.  0,
0.  0 
)

template<>
const Quaternion< double > Wm4::Quaternion< double >::ZERO ( 0.  0,
0.  0,
0.  0,
0.  0 
)

template<>
int Wm4::Quaternion< double >::ms_iNext (  ) 

template<>
double Wm4::Quaternion< double >::ms_fTolerance (  ) 

template<>
double Wm4::Quaternion< double >::ms_fRootTwo (  ) 

template<>
double Wm4::Quaternion< double >::ms_fRootHalf (  ) 


Member Data Documentation

template<class Real>
WM4_FOUNDATION_ITEM const Quaternion Wm4::Quaternion< Real >::IDENTITY [static]

template<class Real>
WM4_FOUNDATION_ITEM const Quaternion Wm4::Quaternion< Real >::ZERO [static]


The documentation for this class was generated from the following file:
Generated on Fri Feb 13 13:58:46 2009 for meshmorph by  doxygen 1.5.1