CrystalSpace

Public API Reference

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

csQuaternion Class Reference
[Geometry utilities]

Class for a quaternion. More...

#include <csgeom/quaterni.h>

List of all members.

Public Member Functions

void Conjugate ()
 csQuaternion (const csMatrix3 &smat)
 Construct quaternion from a matrix.
 csQuaternion (const csVector3 &q)
 Construct quaternion from a vector.
 csQuaternion (const csQuaternion &q)
 Copy constructor.
 csQuaternion (float theR, float theX=0.0, float theY=0.0, float theZ=0.0)
 Construct a quaternion with the given parameters.
 csQuaternion ()
 Construct a 0,0,0,0 quaternion.
void GetAxisAngle (csVector3 &axis, float &phi) const
 Get an axis-angle representation of this orientation.
void GetEulerAngles (csVector3 &angles)
 Convert a Quaternion to a set of Euler angles.
void Init (float theR, float theX, float theY, float theZ)
 Initialize a quaternion with specific values.
void Invert ()
 Invert the orientation of this quaternion.
void Negate ()
 Negate all parameters of the quaternion.
void Normalize ()
 Normalize this quaternion.
csQuaternionoperator *= (const csQuaternion &q2)
 Multiply two quaternions.
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 SetWithAxisAngle (csVector3 axis, float phi)
 Set the quaternion using an axis-angle representation.
void SetWithEuler (const csVector3 &rot)
 Convert a set of Euler angles to a 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.
csQuaternion ToAxisAngle () const
 Return an Axis Angle representation of this Quaternion.

Public Attributes

float r
float x
float y
float z

Friends

csQuaternion operator * (const csQuaternion &q1, const csQuaternion &q2)
 Multiply two quaternions.
csQuaternion operator+ (const csQuaternion &q1, const csQuaternion &q2)
 Add two quaternions.
csQuaternion operator- (const csQuaternion &q1, const csQuaternion &q2)
 Subtract two quaternions.


Detailed Description

Class for a quaternion.

Definition at line 38 of file quaterni.h.


Constructor & Destructor Documentation

csQuaternion::csQuaternion  )  [inline]
 

Construct a 0,0,0,0 quaternion.

Definition at line 46 of file quaterni.h.

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 48 of file quaterni.h.

csQuaternion::csQuaternion const csQuaternion q  )  [inline]
 

Copy constructor.

Definition at line 51 of file quaterni.h.

References r, x, y, and z.

csQuaternion::csQuaternion const csVector3 q  )  [inline]
 

Construct quaternion from a vector.

Definition at line 53 of file quaterni.h.

References 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 42 of file quaterni.h.

void csQuaternion::Invert  ) 
 

Invert the orientation of this quaternion.

void csQuaternion::Negate  )  [inline]
 

Negate all parameters of the quaternion.

Definition at line 96 of file quaterni.h.

void csQuaternion::Normalize  )  [inline]
 

Normalize this quaternion.

Definition at line 139 of file quaterni.h.

References csQisqrt().

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

Multiply two quaternions.

Definition at line 83 of file quaterni.h.

References 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 120 of file quaterni.h.

References csVector3::x, csVector3::y, and csVector3::z.

csVector3 csQuaternion::Rotate csVector3  vec  )  [inline]
 

rotated = q * vec * qConj.

Definition at line 128 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.


Friends And Related Function Documentation

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

Multiply two quaternions.

Definition at line 73 of file quaterni.h.

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

Add two quaternions.

Definition at line 59 of file quaterni.h.

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

Subtract two quaternions.

Definition at line 66 of file quaterni.h.


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