CrystalSpace

Public API Reference

Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

csQuaternion Class Reference
[Geometry utilities]

Class for a quaternion. More...

#include <quaterni.h>

List of all members.

Public Methods

void Init (float theR, float theX, float theY, float theZ)
 Initialize a quaternion with specific values.

 csQuaternion ()
 Construct a 0,0,0,0 quaternion.

 csQuaternion (float theR, float theX=0.0, float theY=0.0, float theZ=0.0)
 Construct a quaternion with the given parameters.

 csQuaternion (const csQuaternion &q)
 Copy constructor.

 csQuaternion (const csVector3 &q)
 Construct quaternion from a vector.

 csQuaternion (const csMatrix3 &smat)
 Construct quaternion from a matrix.

csQuaternion & operator *= (const csQuaternion &q2)
 Multiply two quaternions.

void Negate ()
 Negate all parameters of the quaternion.

void Invert ()
 Invert the orientation of this quaternion.

void GetAxisAngle (csVector3 &axis, float &phi) const
 Get an axis-angle representation of this orientation.

void SetWithAxisAngle (csVector3 axis, float phi)
 Set the quaternion using an axis-angle representation.

void PrepRotation (float angle, csVector3 vec)
 Prepare a rotation quaternion, we do a rotation around vec by an angle of "angle".

csVector3 Rotate (csVector3 vec)
 rotated = q * vec * qConj.

void Normalize ()
 Normalize this quaternion.

void SetWithEuler (const csVector3 &rot)
 Convert a set of Euler angles to a Quaternion.

void GetEulerAngles (csVector3 &angles)
 Convert a Quaternion to a set of Euler angles.

csQuaternion ToAxisAngle () const
 Return an Axis Angle representation of this Quaternion.

csQuaternion Slerp (const csQuaternion &quat2, float slerp) const
 Spherical Linear Interpolation between two quaternions Calculated between this class & the second quaternion by the slerp factor and returned as a new quaternion.


Friends

csQuaternion operator+ (const csQuaternion &q1, const csQuaternion &q2)
 Add two quaternions.

csQuaternion operator- (const csQuaternion &q1, const csQuaternion &q2)
 Subtract two quaternions.

csQuaternion operator * (const csQuaternion &q1, const csQuaternion &q2)
 Multiply two quaternions.


Detailed Description

Class for a quaternion.

Definition at line 35 of file quaterni.h.


Constructor & Destructor Documentation

csQuaternion::csQuaternion   [inline]
 

Construct a 0,0,0,0 quaternion.

Definition at line 43 of file quaterni.h.

References Init().

csQuaternion::csQuaternion float    theR,
float    theX = 0.0,
float    theY = 0.0,
float    theZ = 0.0
[inline]
 

Construct a quaternion with the given parameters.

Definition at line 45 of file quaterni.h.

References Init().

csQuaternion::csQuaternion const csQuaternion &    q [inline]
 

Copy constructor.

Definition at line 48 of file quaterni.h.

References Init(), r, x, y, and z.

csQuaternion::csQuaternion const csVector3   q [inline]
 

Construct quaternion from a vector.

Definition at line 50 of file quaterni.h.

References Init(), csVector3::x, csVector3::y, and csVector3::z.

csQuaternion::csQuaternion const csMatrix3   smat
 

Construct quaternion from a matrix.


Member Function Documentation

void csQuaternion::GetAxisAngle csVector3   axis,
float &    phi
const
 

Get an axis-angle representation of this orientation.

Parameters:
axis  this vector specifies the axis on which to make a rotation
phi  the angle (in radians) about this axis

void csQuaternion::GetEulerAngles csVector3   angles
 

Convert a Quaternion to a set of Euler angles.

Returns a (X,Y,Z) rather than Yaw-Pitch-Roll (Y,X,Z).

void csQuaternion::Init float    theR,
float    theX,
float    theY,
float    theZ
[inline]
 

Initialize a quaternion with specific values.

Definition at line 39 of file quaterni.h.

Referenced by csQuaternion(), Negate(), operator *=(), and PrepRotation().

void csQuaternion::Invert  
 

Invert the orientation of this quaternion.

void csQuaternion::Negate   [inline]
 

Negate all parameters of the quaternion.

Definition at line 93 of file quaterni.h.

References Init().

void csQuaternion::Normalize   [inline]
 

Normalize this quaternion.

Definition at line 136 of file quaterni.h.

References qisqrt().

csQuaternion& csQuaternion::operator *= const csQuaternion &    q2 [inline]
 

Multiply two quaternions.

Definition at line 80 of file quaterni.h.

References Init(), r, x, y, and z.

void csQuaternion::PrepRotation float    angle,
csVector3    vec
[inline]
 

Prepare a rotation quaternion, we do a rotation around vec by an angle of "angle".

Note that vec needs to be a normalized vector (we don't check this).

Definition at line 117 of file quaterni.h.

References Init(), csVector3::x, csVector3::y, and csVector3::z.

csVector3 csQuaternion::Rotate csVector3    vec [inline]
 

rotated = q * vec * qConj.

Definition at line 125 of file quaterni.h.

References x, y, and z.

void csQuaternion::SetWithAxisAngle csVector3    axis,
float    phi
 

Set the quaternion using an axis-angle representation.

Parameters:
axis  this vector specifies the axis on which to make a rotation
phi  the angle (in radians) about this axis

void csQuaternion::SetWithEuler const csVector3   rot
 

Convert a set of Euler angles to a Quaternion.

Takes a (X,Y,Z) rather than Yaw-Pitch-Roll (Y,X,Z) The output is NOT Normalized, if you wish to do so, normalize it yourself.

csQuaternion csQuaternion::Slerp const csQuaternion &    quat2,
float    slerp
const
 

Spherical Linear Interpolation between two quaternions Calculated between this class & the second quaternion by the slerp factor and returned as a new quaternion.

csQuaternion csQuaternion::ToAxisAngle  
 

Return an Axis Angle representation of this Quaternion.


Friends And Related Function Documentation

csQuaternion operator * const csQuaternion &    q1,
const csQuaternion &    q2
[friend]
 

Multiply two quaternions.

Definition at line 70 of file quaterni.h.

csQuaternion operator+ const csQuaternion &    q1,
const csQuaternion &    q2
[friend]
 

Add two quaternions.

Definition at line 56 of file quaterni.h.

csQuaternion operator- const csQuaternion &    q1,
const csQuaternion &    q2
[friend]
 

Subtract two quaternions.

Definition at line 63 of file quaterni.h.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.2.18