Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Ogre::Quaternion Class Reference

Implementation of a Quaternion, i.e. More...

#include <OgreQuaternion.h>

List of all members.

Public Member Functions

 Quaternion (Real fW=1.0, Real fX=0.0, Real fY=0.0, Real fZ=0.0)
 Quaternion (const Quaternion &rkQ)
 Quaternion (const Matrix3 &rot)
 Construct a quaternion from a rotation matrix.

 Quaternion (const Radian &rfAngle, const Vector3 &rkAxis)
 Construct a quaternion from an angle/axis.

 Quaternion (const Vector3 &xaxis, const Vector3 &yaxis, const Vector3 &zaxis)
 Construct a quaternion from 3 orthonormal local axes.

 Quaternion (const Vector3 *akAxis)
 Construct a quaternion from 3 orthonormal local axes.

 Quaternion (Real *valptr)
 Construct a quaternion from 4 manual w/x/y/z values.

void FromRotationMatrix (const Matrix3 &kRot)
void ToRotationMatrix (Matrix3 &kRot) const
void FromAngleAxis (const Radian &rfAngle, const Vector3 &rkAxis)
void ToAngleAxis (Radian &rfAngle, Vector3 &rkAxis) const
void ToAngleAxis (Degree &dAngle, Vector3 &rkAxis) const
void FromAxes (const Vector3 *akAxis)
void FromAxes (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis)
void ToAxes (Vector3 *akAxis) const
void ToAxes (Vector3 &xAxis, Vector3 &yAxis, Vector3 &zAxis) const
Vector3 xAxis (void) const
 Get the local x-axis.

Vector3 yAxis (void) const
 Get the local y-axis.

Vector3 zAxis (void) const
 Get the local z-axis.

Quaternionoperator= (const Quaternion &rkQ)
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- () const
bool operator== (const Quaternion &rhs) const
bool operator!= (const Quaternion &rhs) const
Real Dot (const Quaternion &rkQ) const
Real Norm () const
Real normalise (void)
 Normalises this quaternion, and returns the previous length.

Quaternion Inverse () const
Quaternion UnitInverse () const
Quaternion Exp () const
Quaternion Log () const
Vector3 operator * (const Vector3 &rkVector) const
Radian getRoll (void) const
 Calculate the local roll element of this quaternion.

Radian getPitch (void) const
 Calculate the local pitch element of this quaternion.

Radian getYaw (void) const
 Calculate the local yaw element of this quaternion.

bool equals (const Quaternion &rhs, const Radian &tolerance) const
 Equality with tolerance (tolerance is max angle difference).


Static Public Member Functions

Quaternion Slerp (Real fT, const Quaternion &rkP, const Quaternion &rkQ, bool shortestPath=false)
Quaternion SlerpExtraSpins (Real fT, const Quaternion &rkP, const Quaternion &rkQ, int iExtraSpins)
void Intermediate (const Quaternion &rkQ0, const Quaternion &rkQ1, const Quaternion &rkQ2, Quaternion &rka, Quaternion &rkB)
Quaternion Squad (Real fT, const Quaternion &rkP, const Quaternion &rkA, const Quaternion &rkB, const Quaternion &rkQ, bool shortestPath=false)
Quaternion nlerp (Real fT, const Quaternion &rkP, const Quaternion &rkQ, bool shortestPath=false)

Static Public Attributes

const Real ms_fEpsilon
const Quaternion ZERO
const Quaternion IDENTITY

Friends

_OgreExport friend Quaternion operator * (Real fScalar, const Quaternion &rkQ)
_OgreExport friend std::ostream & operator<< (std::ostream &o, const Quaternion &q)
 Function for writing to a stream.


Detailed Description

Implementation of a Quaternion, i.e.

a rotation around an axis.

Definition at line 49 of file OgreQuaternion.h.


Constructor & Destructor Documentation

Ogre::Quaternion::Quaternion Real  fW = 1.0,
Real  fX = 0.0,
Real  fY = 0.0,
Real  fZ = 0.0
 

Definition at line 52 of file OgreQuaternion.h.

References Ogre::Real.

Ogre::Quaternion::Quaternion const Quaternion rkQ  ) 
 

Definition at line 61 of file OgreQuaternion.h.

References w, x, y, and z.

Ogre::Quaternion::Quaternion const Matrix3 rot  ) 
 

Construct a quaternion from a rotation matrix.

Definition at line 69 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion const Radian rfAngle,
const Vector3 rkAxis
 

Construct a quaternion from an angle/axis.

Definition at line 74 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion const Vector3 xaxis,
const Vector3 yaxis,
const Vector3 zaxis
 

Construct a quaternion from 3 orthonormal local axes.

Definition at line 85 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion const Vector3 akAxis  ) 
 

Construct a quaternion from 3 orthonormal local axes.

Definition at line 90 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion Real valptr  ) 
 

Construct a quaternion from 4 manual w/x/y/z values.

Definition at line 95 of file OgreQuaternion.h.

References Ogre::Real.


Member Function Documentation

Real Ogre::Quaternion::Dot const Quaternion rkQ  )  const
 

bool Ogre::Quaternion::equals const Quaternion rhs,
const Radian tolerance
const
 

Equality with tolerance (tolerance is max angle difference).

Quaternion Ogre::Quaternion::Exp  )  const
 

void Ogre::Quaternion::FromAngleAxis const Radian rfAngle,
const Vector3 rkAxis
 

Referenced by Ogre::Vector3::getRotationTo(), and Ogre::Vector3::randomDeviant().

void Ogre::Quaternion::FromAxes const Vector3 xAxis,
const Vector3 yAxis,
const Vector3 zAxis
 

void Ogre::Quaternion::FromAxes const Vector3 akAxis  ) 
 

void Ogre::Quaternion::FromRotationMatrix const Matrix3 kRot  ) 
 

Radian Ogre::Quaternion::getPitch void   )  const
 

Calculate the local pitch element of this quaternion.

Radian Ogre::Quaternion::getRoll void   )  const
 

Calculate the local roll element of this quaternion.

Radian Ogre::Quaternion::getYaw void   )  const
 

Calculate the local yaw element of this quaternion.

void Ogre::Quaternion::Intermediate const Quaternion rkQ0,
const Quaternion rkQ1,
const Quaternion rkQ2,
Quaternion rka,
Quaternion rkB
[static]
 

Quaternion Ogre::Quaternion::Inverse  )  const
 

Quaternion Ogre::Quaternion::Log  )  const
 

Quaternion Ogre::Quaternion::nlerp Real  fT,
const Quaternion rkP,
const Quaternion rkQ,
bool  shortestPath = false
[static]
 

Real Ogre::Quaternion::Norm  )  const
 

Real Ogre::Quaternion::normalise void   ) 
 

Normalises this quaternion, and returns the previous length.

Vector3 Ogre::Quaternion::operator * const Vector3 rkVector  )  const
 

Quaternion Ogre::Quaternion::operator * Real  fScalar  )  const
 

Quaternion Ogre::Quaternion::operator * const Quaternion rkQ  )  const
 

bool Ogre::Quaternion::operator!= const Quaternion rhs  )  const
 

Definition at line 150 of file OgreQuaternion.h.

References Ogre::operator==().

Quaternion Ogre::Quaternion::operator+ const Quaternion rkQ  )  const
 

Quaternion Ogre::Quaternion::operator-  )  const
 

Quaternion Ogre::Quaternion::operator- const Quaternion rkQ  )  const
 

Quaternion& Ogre::Quaternion::operator= const Quaternion rkQ  ) 
 

Definition at line 130 of file OgreQuaternion.h.

References w, x, y, and z.

bool Ogre::Quaternion::operator== const Quaternion rhs  )  const
 

Definition at line 145 of file OgreQuaternion.h.

References w, x, y, and z.

Quaternion Ogre::Quaternion::Slerp Real  fT,
const Quaternion rkP,
const Quaternion rkQ,
bool  shortestPath = false
[static]
 

Quaternion Ogre::Quaternion::SlerpExtraSpins Real  fT,
const Quaternion rkP,
const Quaternion rkQ,
int  iExtraSpins
[static]
 

Quaternion Ogre::Quaternion::Squad Real  fT,
const Quaternion rkP,
const Quaternion rkA,
const Quaternion rkB,
const Quaternion rkQ,
bool  shortestPath = false
[static]
 

void Ogre::Quaternion::ToAngleAxis Degree dAngle,
Vector3 rkAxis
const
 

Definition at line 104 of file OgreQuaternion.h.

void Ogre::Quaternion::ToAngleAxis Radian rfAngle,
Vector3 rkAxis
const
 

void Ogre::Quaternion::ToAxes Vector3 xAxis,
Vector3 yAxis,
Vector3 zAxis
const
 

void Ogre::Quaternion::ToAxes Vector3 akAxis  )  const
 

void Ogre::Quaternion::ToRotationMatrix Matrix3 kRot  )  const
 

Referenced by Ogre::Matrix4::Matrix4().

Quaternion Ogre::Quaternion::UnitInverse  )  const
 

Vector3 Ogre::Quaternion::xAxis void   )  const
 

Get the local x-axis.

Vector3 Ogre::Quaternion::yAxis void   )  const
 

Get the local y-axis.

Vector3 Ogre::Quaternion::zAxis void   )  const
 

Get the local z-axis.


Friends And Related Function Documentation

_OgreExport friend Quaternion operator * Real  fScalar,
const Quaternion rkQ
[friend]
 

_OgreExport friend std::ostream& operator<< std::ostream &  o,
const Quaternion q
[friend]
 

Function for writing to a stream.

Outputs "Quaternion(w, x, y, z)" with w,x,y,z being the member values of the quaternion.

Definition at line 217 of file OgreQuaternion.h.


Member Data Documentation

const Quaternion Ogre::Quaternion::IDENTITY [static]
 

Definition at line 203 of file OgreQuaternion.h.

const Real Ogre::Quaternion::ms_fEpsilon [static]
 

Definition at line 199 of file OgreQuaternion.h.

Real Ogre::Quaternion::val[4]
 

Definition at line 210 of file OgreQuaternion.h.

Referenced by Ogre::AnimableValue::setAsBaseValue().

Real Ogre::Quaternion::w
 

Definition at line 208 of file OgreQuaternion.h.

Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

Real Ogre::Quaternion::x
 

Definition at line 208 of file OgreQuaternion.h.

Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

Real Ogre::Quaternion::y
 

Definition at line 208 of file OgreQuaternion.h.

Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

Real Ogre::Quaternion::z
 

Definition at line 208 of file OgreQuaternion.h.

Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

const Quaternion Ogre::Quaternion::ZERO [static]
 

Definition at line 202 of file OgreQuaternion.h.


The documentation for this class was generated from the following file:

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:41:54 2006