- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# 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.
Real | operator[] (const size_t i) const
| Array accessor operator.
Real & | operator[] (const size_t i)
| Array accessor operator.
Real * | ptr ()
| Pointer accessor for direct copying.
const Real * | ptr () const
| Pointer accessor for direct copying.
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 (bool reprojectAxis=true) const
| Calculate the local roll element of this quaternion.
Radian | getPitch (bool reprojectAxis=true) const
| Calculate the local pitch element of this quaternion.
Radian | getYaw (bool reprojectAxis=true) 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
static Quaternion | Slerp (Real fT, const Quaternion &rkP, const Quaternion &rkQ, bool shortestPath=false)
static Quaternion | SlerpExtraSpins (Real fT, const Quaternion &rkP, const Quaternion &rkQ, int iExtraSpins)
static void | Intermediate (const Quaternion &rkQ0, const Quaternion &rkQ1, const Quaternion &rkQ2, Quaternion &rka, Quaternion &rkB)
static Quaternion | Squad (Real fT, const Quaternion &rkP, const Quaternion &rkA, const Quaternion &rkB, const Quaternion &rkQ, bool shortestPath=false)
static 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
static const Real | ms_fEpsilon
static const Quaternion | ZERO
static 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 53 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 56 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion | ( | const Quaternion & | rkQ | ) |

Definition at line 65 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 73 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion | ( | const Radian & | rfAngle,
|  | const Vector3 & | rkAxis |
| ) |  |  |

Construct a quaternion from an angle/axis.

Definition at line 78 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 89 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion | ( | const Vector3 * | akAxis | ) |

Construct a quaternion from 3 orthonormal local axes.

Definition at line 94 of file OgreQuaternion.h.

Ogre::Quaternion::Quaternion | ( | Real * | valptr | ) |

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

Definition at line 99 of file OgreQuaternion.h.

## Member Function Documentation

Real Ogre::Quaternion::operator[] | ( | const size_t | i | ) | const

Array accessor operator.

Definition at line 105 of file OgreQuaternion.h.

Real& Ogre::Quaternion::operator[] | ( | const size_t | i | ) |

Array accessor operator.

Definition at line 113 of file OgreQuaternion.h.

Real* Ogre::Quaternion::ptr | ( |  | ) |

Pointer accessor for direct copying.

Definition at line 121 of file OgreQuaternion.h.

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

const Real* Ogre::Quaternion::ptr | ( |  | ) | const

Pointer accessor for direct copying.

Definition at line 127 of file OgreQuaternion.h.

void Ogre::Quaternion::FromRotationMatrix | ( | const Matrix3 & | kRot | ) |

void Ogre::Quaternion::ToRotationMatrix | ( | Matrix3 & | kRot | ) | const

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

void Ogre::Quaternion::FromAngleAxis | ( | const Radian & | rfAngle,
|  | const Vector3 & | rkAxis |
| ) |  |  |

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

void Ogre::Quaternion::ToAngleAxis | ( | Radian & | rfAngle,
|  | Vector3 & | rkAxis |
| ) |  |  | const

void Ogre::Quaternion::ToAngleAxis | ( | Degree & | dAngle,
|  | Vector3 & | rkAxis |
| ) |  |  | const

Definition at line 136 of file OgreQuaternion.h.

void Ogre::Quaternion::FromAxes | ( | const Vector3 * | akAxis | ) |

void Ogre::Quaternion::FromAxes | ( | const Vector3 & | xAxis,
|  | const Vector3 & | yAxis,
|  | const Vector3 & | zAxis |
| ) |  |  |

void Ogre::Quaternion::ToAxes | ( | Vector3 * | akAxis | ) | const

void Ogre::Quaternion::ToAxes | ( | Vector3 & | xAxis,
|  | Vector3 & | yAxis,
|  | Vector3 & | zAxis |
| ) |  |  | 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.

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

Definition at line 162 of file OgreQuaternion.h.

References w, x, y, and z.

Quaternion Ogre::Quaternion::operator+ | ( | const Quaternion & | rkQ | ) | const

Quaternion Ogre::Quaternion::operator- | ( | const Quaternion & | rkQ | ) | const

Quaternion Ogre::Quaternion::operator * | ( | const Quaternion & | rkQ | ) | const

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

Quaternion Ogre::Quaternion::operator- | ( |  | ) | const

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

Definition at line 177 of file OgreQuaternion.h.

References w, x, y, and z.

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

Definition at line 182 of file OgreQuaternion.h.

References Ogre::operator==().

Real Ogre::Quaternion::Dot | ( | const Quaternion & | rkQ | ) | const

Real Ogre::Quaternion::Norm | ( |  | ) | const

Real Ogre::Quaternion::normalise | ( | void |  | ) |

Normalises this quaternion, and returns the previous length.

Referenced by Ogre::Vector3::getRotationTo().

Quaternion Ogre::Quaternion::Inverse | ( |  | ) | const

Quaternion Ogre::Quaternion::UnitInverse | ( |  | ) | const

Quaternion Ogre::Quaternion::Exp | ( |  | ) | const

Quaternion Ogre::Quaternion::Log | ( |  | ) | const

Vector3 Ogre::Quaternion::operator * | ( | const Vector3 & | rkVector | ) | const

Radian Ogre::Quaternion::getRoll | ( | bool | reprojectAxis = `true` | ) | const

Calculate the local roll element of this quaternion.

Parameters:

  | reprojectAxis | By default the method returns the 'intuitive' result that is, if you projected the local Y of the quaterion onto the X and Y axes, the angle between them is returned. If set to false though, the result is the actual yaw that will be used to implement the quaternion, which is the shortest possible path to get to the same orientation and may involve less axial rotation.

Radian Ogre::Quaternion::getPitch | ( | bool | reprojectAxis = `true` | ) | const

Calculate the local pitch element of this quaternion.

Parameters:

  | reprojectAxis | By default the method returns the 'intuitive' result that is, if you projected the local Z of the quaterion onto the X and Y axes, the angle between them is returned. If set to true though, the result is the actual yaw that will be used to implement the quaternion, which is the shortest possible path to get to the same orientation and may involve less axial rotation.

Radian Ogre::Quaternion::getYaw | ( | bool | reprojectAxis = `true` | ) | const

Calculate the local yaw element of this quaternion.

Parameters:

  | reprojectAxis | By default the method returns the 'intuitive' result that is, if you projected the local Z of the quaterion onto the X and Z axes, the angle between them is returned. If set to true though, the result is the actual yaw that will be used to implement the quaternion, which is the shortest possible path to get to the same orientation and may involve less axial rotation.

bool Ogre::Quaternion::equals | ( | const Quaternion & | rhs,
|  | const Radian & | tolerance |
| ) |  |  | const

Equality with tolerance (tolerance is max angle difference).

static Quaternion Ogre::Quaternion::Slerp | ( | Real | fT,
|  | const Quaternion & | rkP,
|  | const Quaternion & | rkQ,
|  | bool | shortestPath = `false` |
| ) |  |  | `[static]`

static Quaternion Ogre::Quaternion::SlerpExtraSpins | ( | Real | fT,
|  | const Quaternion & | rkP,
|  | const Quaternion & | rkQ,
|  | int | iExtraSpins |
| ) |  |  | `[static]`

static void Ogre::Quaternion::Intermediate | ( | const Quaternion & | rkQ0,
|  | const Quaternion & | rkQ1,
|  | const Quaternion & | rkQ2,
|  | Quaternion & | rka,
|  | Quaternion & | rkB |
| ) |  |  | `[static]`

static Quaternion Ogre::Quaternion::Squad | ( | Real | fT,
|  | const Quaternion & | rkP,
|  | const Quaternion & | rkA,
|  | const Quaternion & | rkB,
|  | const Quaternion & | rkQ,
|  | bool | shortestPath = `false` |
| ) |  |  | `[static]`

static Quaternion Ogre::Quaternion::nlerp | ( | Real | fT,
|  | const Quaternion & | rkP,
|  | const Quaternion & | rkQ,
|  | bool | shortestPath = `false` |
| ) |  |  | `[static]`

## 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 264 of file OgreQuaternion.h.

## Member Data Documentation

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

Definition at line 252 of file OgreQuaternion.h.

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

Definition at line 255 of file OgreQuaternion.h.

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

Definition at line 256 of file OgreQuaternion.h.

Referenced by Ogre::Vector3::getRotationTo(), and Ogre::BorderRenderable::getWorldOrientation().

Real Ogre::Quaternion::w

Definition at line 258 of file OgreQuaternion.h.

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

Real Ogre::Quaternion::x

Definition at line 258 of file OgreQuaternion.h.

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

Real Ogre::Quaternion::y

Definition at line 258 of file OgreQuaternion.h.

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

Real Ogre::Quaternion::z

Definition at line 258 of file OgreQuaternion.h.

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

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

- OgreQuaternion.h

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Mon Jun 16 12:51:57 2008