# 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.
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.
Quaternion & | operator= (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)

## Public Attributes

Real | w
Real | x
Real | y
Real | z

## 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.

## 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::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 145 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 125 of file OgreQuaternion.h. References w, x, y, and z.

bool Ogre::Quaternion::operator== | ( | const Quaternion & | rhs | ) | const

| Definition at line 140 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 99 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. Definition at line 205 of file OgreQuaternion.h.

## Member Data Documentation

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

| Definition at line 198 of file OgreQuaternion.h.

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

| Definition at line 194 of file OgreQuaternion.h.

Real Ogre::Quaternion::w

| Definition at line 200 of file OgreQuaternion.h. Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

Real Ogre::Quaternion::x

| Definition at line 200 of file OgreQuaternion.h. Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

Real Ogre::Quaternion::y

| Definition at line 200 of file OgreQuaternion.h. Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

Real Ogre::Quaternion::z

| Definition at line 200 of file OgreQuaternion.h. Referenced by Ogre::Vector3::getRotationTo(), operator=(), operator==(), and Quaternion().

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

| Definition at line 197 of file OgreQuaternion.h.

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

- OgreQuaternion.h

Copyright © 2000-2005 by The OGRE Team
Last modified Sun Nov 20 12:38:31 2005