CrystalSpace

Public API Reference

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

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

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

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

 csQuaternion (const csQuaternion &q)
 Copy constructor. More...

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

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

void Negate ()
 Negate all parameters of the quaternion. More...

void Invert ()
 Invert the orientation of this quaternion. More...

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

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

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

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

void Normalize ()
 Normalize this quaternion. More...

void 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. More...

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

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


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::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, and PrepRotation.

void csQuaternion::Invert  
 

Invert the orientation of this quaternion.

void csQuaternion::Negate   [inline]
 

Negate all parameters of the quaternion.

Definition at line 82 of file quaterni.h.

References Init.

void csQuaternion::Normalize   [inline]
 

Normalize this quaternion.

Definition at line 122 of file quaterni.h.

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 104 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 111 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   const
 

Return an Axis Angle representation of this Quaternion.


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