|  | OGRE
    1.11.6
    Object-Oriented Graphics Rendering Engine | 
Implementation of a Quaternion, i.e. More...
#include <OgreQuaternion.h>
| Public Member Functions | |
| Quaternion () | |
| Default constructor, initializes to identity rotation (aka 0°)  More... | |
| Quaternion (Real fW, Real fX, Real fY, Real fZ) | |
| Construct from an explicit list of values.  More... | |
| Quaternion (const Matrix3 &rot) | |
| Construct a quaternion from a rotation matrix.  More... | |
| Quaternion (const Radian &rfAngle, const Vector3 &rkAxis) | |
| Construct a quaternion from an angle/axis.  More... | |
| Quaternion (const Vector3 &xaxis, const Vector3 &yaxis, const Vector3 &zaxis) | |
| Construct a quaternion from 3 orthonormal local axes.  More... | |
| Quaternion (const Vector3 *akAxis) | |
| Construct a quaternion from 3 orthonormal local axes.  More... | |
| Quaternion (Real *valptr) | |
| Construct a quaternion from 4 manual w/x/y/z values.  More... | |
| Real | Dot (const Quaternion &rkQ) const | 
| Returns the dot product of the quaternion.  More... | |
| bool | equals (const Quaternion &rhs, const Radian &tolerance) const | 
| Equality with tolerance (tolerance is max angle difference)  More... | |
| Quaternion | Exp () const | 
| Apply to unit-length quaternion.  More... | |
| void | FromAngleAxis (const Radian &rfAngle, const Vector3 &rkAxis) | 
| Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.  More... | |
| void | FromAxes (const Vector3 *akAxis) | 
| Constructs the quaternion using 3 axes, the axes are assumed to be orthonormal.  More... | |
| void | FromAxes (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis) | 
| void | FromRotationMatrix (const Matrix3 &kRot) | 
| Radian | getPitch (bool reprojectAxis=true) const | 
| Calculate the local pitch element of this quaternion.  More... | |
| Radian | getRoll (bool reprojectAxis=true) const | 
| Calculate the local roll element of this quaternion.  More... | |
| Radian | getYaw (bool reprojectAxis=true) const | 
| Calculate the local yaw element of this quaternion.  More... | |
| Quaternion | Inverse () const | 
| bool | isNaN () const | 
| Check whether this quaternion contains valid values.  More... | |
| Quaternion | Log () const | 
| Real | Norm () const | 
| Returns the normal length of this quaternion.  More... | |
| Real | normalise (void) | 
| Normalises this quaternion, and returns the previous length.  More... | |
| bool | operator!= (const Quaternion &rhs) const | 
| Quaternion | operator* (const Quaternion &rkQ) const | 
| Quaternion | operator* (Real s) const | 
| Vector3 | operator* (const Vector3 &rkVector) const | 
| Rotation of a vector by a quaternion.  More... | |
| Quaternion | operator+ (const Quaternion &rkQ) const | 
| Quaternion | operator- (const Quaternion &rkQ) const | 
| Quaternion | operator- () const | 
| Quaternion & | operator= (const Quaternion &rkQ) | 
| bool | operator== (const Quaternion &rhs) const | 
| Real | operator[] (const size_t i) const | 
| Array accessor operator.  More... | |
| Real & | operator[] (const size_t i) | 
| Array accessor operator.  More... | |
| bool | orientationEquals (const Quaternion &other, Real tolerance=1e-3f) const | 
| Compare two quaternions which are assumed to be used as orientations.  More... | |
| Real * | ptr () | 
| Pointer accessor for direct copying.  More... | |
| const Real * | ptr () const | 
| Pointer accessor for direct copying.  More... | |
| void | swap (Quaternion &other) | 
| Exchange the contents of this quaternion with another.  More... | |
| void | ToAngleAxis (Radian &rfAngle, Vector3 &rkAxis) const | 
| void | ToAngleAxis (Degree &dAngle, Vector3 &rkAxis) const | 
| void | ToAxes (Vector3 *akAxis) const | 
| Gets the 3 orthonormal axes defining the quaternion.  More... | |
| void | ToAxes (Vector3 &xAxis, Vector3 &yAxis, Vector3 &zAxis) const | 
| void | ToRotationMatrix (Matrix3 &kRot) const | 
| Quaternion | UnitInverse () const | 
| Apply to non-zero quaternion.  More... | |
| Vector3 | xAxis (void) const | 
| Returns the X orthonormal axis defining the quaternion.  More... | |
| Vector3 | yAxis (void) const | 
| Returns the Y orthonormal axis defining the quaternion.  More... | |
| Vector3 | zAxis (void) const | 
| Returns the Z orthonormal axis defining the quaternion.  More... | |
| Static Public Member Functions | |
| static void | Intermediate (const Quaternion &rkQ0, const Quaternion &rkQ1, const Quaternion &rkQ2, Quaternion &rka, Quaternion &rkB) | 
| Setup for spherical quadratic interpolation.  More... | |
| static Quaternion | nlerp (Real fT, const Quaternion &rkP, const Quaternion &rkQ, bool shortestPath=false) | 
| Performs Normalised linear interpolation between two quaternions, and returns the result.  More... | |
| static Quaternion | Slerp (Real fT, const Quaternion &rkP, const Quaternion &rkQ, bool shortestPath=false) | 
| Performs Spherical linear interpolation between two quaternions, and returns the result.  More... | |
| static Quaternion | SlerpExtraSpins (Real fT, const Quaternion &rkP, const Quaternion &rkQ, int iExtraSpins) | 
| static Quaternion | Squad (Real fT, const Quaternion &rkP, const Quaternion &rkA, const Quaternion &rkB, const Quaternion &rkQ, bool shortestPath=false) | 
| Spherical quadratic interpolation.  More... | |
| Public Attributes | |
| Real | w | 
| Real | x | 
| Real | y | 
| Real | z | 
| Static Public Attributes | |
| static const Quaternion | IDENTITY | 
| static const Real | msEpsilon | 
| Cutoff for sine near zero.  More... | |
| static const Quaternion | ZERO | 
| Friends | |
| Quaternion | operator* (Real s, const Quaternion &q) | 
| std::ostream & | operator<< (std::ostream &o, const Quaternion &q) | 
| Function for writing to a stream.  More... | |
Implementation of a Quaternion, i.e.
a rotation around an axis. For more information about Quaternions and the theory behind it, we recommend reading: http://www.ogre3d.org/tikiwiki/Quaternion+and+Rotation+Primer and http://www.cprogramming.com/tutorial/3d/quaternions.html and http://www.gamedev.net/page/resources/_/reference/programming/math-and-physics/quaternions/quaternion-powers-r1095
| 
 | inline | 
Default constructor, initializes to identity rotation (aka 0°)
Construct from an explicit list of values.
| 
 | inline | 
Construct a quaternion from a rotation matrix.
Construct a quaternion from an angle/axis.
| 
 | inline | 
Construct a quaternion from 3 orthonormal local axes.
| 
 | inline | 
Construct a quaternion from 3 orthonormal local axes.
| 
 | inline | 
Construct a quaternion from 4 manual w/x/y/z values.
| 
 | inline | 
Exchange the contents of this quaternion with another.
References std::swap(), w, x, y, and z.
| 
 | inline | 
Array accessor operator.
| 
 | inline | 
Array accessor operator.
| 
 | inline | 
Pointer accessor for direct copying.
| 
 | inline | 
Pointer accessor for direct copying.
| void Ogre::Quaternion::FromRotationMatrix | ( | const Matrix3 & | kRot | ) | 
| void Ogre::Quaternion::ToRotationMatrix | ( | Matrix3 & | kRot | ) | const | 
Referenced by Ogre::Matrix4::Matrix4().
Setups the quaternion using the supplied vector, and "roll" around that vector by the specified radians.
Referenced by Ogre::VectorBase< 3, Real >::randomDeviant().
| void Ogre::Quaternion::FromAxes | ( | const Vector3 * | akAxis | ) | 
Constructs the quaternion using 3 axes, the axes are assumed to be orthonormal.
| void Ogre::Quaternion::FromAxes | ( | const Vector3 & | xAxis, | 
| const Vector3 & | yAxis, | ||
| const Vector3 & | zAxis | ||
| ) | 
| void Ogre::Quaternion::ToAxes | ( | Vector3 * | akAxis | ) | const | 
Gets the 3 orthonormal axes defining the quaternion.
| Vector3 Ogre::Quaternion::xAxis | ( | void | ) | const | 
Returns the X orthonormal axis defining the quaternion.
Same as doing xAxis = Vector3::UNIT_X * this. Also called the local X-axis
| Vector3 Ogre::Quaternion::yAxis | ( | void | ) | const | 
Returns the Y orthonormal axis defining the quaternion.
Same as doing yAxis = Vector3::UNIT_Y * this. Also called the local Y-axis
| Vector3 Ogre::Quaternion::zAxis | ( | void | ) | const | 
Returns the Z orthonormal axis defining the quaternion.
Same as doing zAxis = Vector3::UNIT_Z * this. Also called the local Z-axis
| 
 | inline | 
References Ogre::operator*(), Ogre::operator+(), Ogre::operator-(), 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 | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
References Ogre::operator==().
| 
 | inline | 
| 
 | inline | 
Returns the normal length of this quaternion.
References Ogre::Math::Sqrt().
| 
 | inline | 
Normalises this quaternion, and returns the previous length.
References Ogre::operator*().
Referenced by Ogre::VectorBase< 3, Real >::getRotationTo().
| Quaternion Ogre::Quaternion::Inverse | ( | ) | const | 
| Quaternion Ogre::Quaternion::UnitInverse | ( | ) | const | 
Apply to non-zero quaternion.
| Quaternion Ogre::Quaternion::Exp | ( | ) | const | 
Apply to unit-length quaternion.
| Quaternion Ogre::Quaternion::Log | ( | ) | const | 
Rotation of a vector by a quaternion.
| Radian Ogre::Quaternion::getRoll | ( | bool | reprojectAxis = true | ) | const | 
Calculate the local roll element of this quaternion.
| reprojectAxis | By default the method returns the 'intuitive' result that is, if you projected the local X of the quaternion onto the XY plane, the angle between it and global X is returned. The co-domain of the returned value is from -180 to 180 degrees. If set to false though, the result is the rotation around Z axis that could be used to implement the quaternion using some non-intuitive order of rotations. This behavior is preserved for backward compatibility, to decompose quaternion into yaw, pitch and roll use q.ToRotationMatrix().ToEulerAnglesYXZ(yaw, pitch, roll) instead. | 
| Radian Ogre::Quaternion::getPitch | ( | bool | reprojectAxis = true | ) | const | 
Calculate the local pitch element of this quaternion.
| reprojectAxis | By default the method returns the 'intuitive' result that is, if you projected the local Y of the quaternion onto the YZ plane, the angle between it and global Y is returned. The co-domain of the returned value is from -180 to 180 degrees. If set to false though, the result is the rotation around X axis that could be used to implement the quaternion using some non-intuitive order of rotations. This behavior is preserved for backward compatibility, to decompose quaternion into yaw, pitch and roll use q.ToRotationMatrix().ToEulerAnglesYXZ(yaw, pitch, roll) instead. | 
| Radian Ogre::Quaternion::getYaw | ( | bool | reprojectAxis = true | ) | const | 
Calculate the local yaw element of this quaternion.
| reprojectAxis | By default the method returns the 'intuitive' result that is, if you projected the local Z of the quaternion onto the ZX plane, the angle between it and global Z is returned. The co-domain of the returned value is from -180 to 180 degrees. If set to false though, the result is the rotation around Y axis that could be used to implement the quaternion using some non-intuitive order of rotations. This behavior is preserved for backward compatibility, to decompose quaternion into yaw, pitch and roll use q.ToRotationMatrix().ToEulerAnglesYXZ(yaw, pitch, roll) instead. | 
| 
 | inline | 
Equality with tolerance (tolerance is max angle difference)
References Ogre::Math::Abs(), Ogre::Math::ACos(), and Ogre::Radian::valueRadians().
| 
 | inline | 
Compare two quaternions which are assumed to be used as orientations.
| 
 | static | 
Performs Spherical linear interpolation between two quaternions, and returns the result.
Slerp ( 0.0f, A, B ) = A Slerp ( 1.0f, A, B ) = B
| 
 | static | 
| 
 | static | 
Setup for spherical quadratic interpolation.
| 
 | static | 
Spherical quadratic interpolation.
| 
 | static | 
Performs Normalised linear interpolation between two quaternions, and returns the result.
nlerp ( 0.0f, A, B ) = A nlerp ( 1.0f, A, B ) = B
| 
 | inline | 
Check whether this quaternion contains valid values.
References Ogre::Math::isNaN().
| 
 | friend | 
| 
 | 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.
| 
 | static | 
Cutoff for sine near zero.
| 
 | static | 
| 
 | static | 
| Real Ogre::Quaternion::w | 
Referenced by Dot(), operator=(), operator==(), and swap().
| Real Ogre::Quaternion::x | 
Referenced by Dot(), operator=(), operator==(), and swap().
| Real Ogre::Quaternion::y | 
Referenced by Dot(), operator=(), operator==(), and swap().
| Real Ogre::Quaternion::z | 
Referenced by Dot(), operator=(), operator==(), and swap().