quaternion Class Reference

#include <quaternion.hpp>

Inheritance diagram for quaternion:

Inheritance graph
[legend]
Collaboration diagram for quaternion:

Collaboration graph
[legend]

List of all members.


Detailed Description

Quaternion class.

Definition at line 50 of file quaternion.hpp.


Public Member Functions

quaternion conjugate () const
 Returns the conjugate of the quaternion: w - xi - yj - zk.
double dot (const quaternion &) const
quaternion inverse () const
 Returns the inverse of the quaternion: inverse / norm.
double norm () const
 Returns the norm of the quaterion: sqrt(w*w + x*x + y*y + z*z).
void normalize ()
 Normalizes the quaternion; sets w*w + x*x + y*y + z*z == 1.
quaternion operator* (const double &) const
quaternion operator* (const quaternion &) const
quaternion operator+ (const quaternion &) const
quaternionoperator= (const transform &)
 Sets the quaternion from a rotation matrix (ignores any translation component in the transform).
quaternionoperator= (const quaternion &)
 Assignment operator; sets the quaternion equal to the given quaternion.
 quaternion (const transform &)
 Creates a quaternion from a rotation matrix (ignores any translation component in the transform).
 quaternion (const gsgl::string &)
 Intialize the quaternion from a string of numbers "x y z w"; the resulting quaternion is w + xi + yj + zk.
 quaternion (const quaternion &)
 Copy constructor; creates a copy of the given quaternion.
 quaternion (const vector &v, double a)
 Creates a quaternion representing a rotation around the given axis of a radians.
 quaternion (const double w=0, const double x=0, const double y=0, const double z=0)
 Creates a quaternion w + xi + yj + zk.
virtual ~quaternion ()

Static Public Member Functions

static quaternion interpolate (const quaternion &start, const quaternion &end, const double &percent)

Public Attributes

double w
double x
double y
double z

Constructor & Destructor Documentation

quaternion ( const double  w = 0,
const double  x = 0,
const double  y = 0,
const double  z = 0 
)

Creates a quaternion w + xi + yj + zk.

Definition at line 46 of file quaternion.cpp.

Referenced by quaternion::conjugate(), quaternion::inverse(), quaternion::operator*(), and quaternion::operator+().

quaternion ( const vector v,
double  a 
)

Creates a quaternion representing a rotation around the given axis of a radians.

Definition at line 53 of file quaternion.cpp.

References vector::get_x(), vector::get_y(), vector::get_z(), quaternion::normalize(), quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

quaternion ( const quaternion q  ) 

Copy constructor; creates a copy of the given quaternion.

Definition at line 66 of file quaternion.cpp.

References quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

quaternion ( const gsgl::string s  )  [explicit]

Intialize the quaternion from a string of numbers "x y z w"; the resulting quaternion is w + xi + yj + zk.

Definition at line 77 of file quaternion.cpp.

References vector::get_w(), vector::get_x(), vector::get_y(), vector::get_z(), quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

quaternion ( const transform t  )  [explicit]

Creates a quaternion from a rotation matrix (ignores any translation component in the transform).

Definition at line 90 of file quaternion.cpp.

~quaternion (  )  [virtual]

Definition at line 179 of file quaternion.cpp.


Member Function Documentation

quaternion conjugate (  )  const

Returns the conjugate of the quaternion: w - xi - yj - zk.

Definition at line 194 of file quaternion.cpp.

References quaternion::quaternion(), quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

double dot ( const quaternion q  )  const

Definition at line 254 of file quaternion.cpp.

References quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

Referenced by quaternion::interpolate().

quaternion interpolate ( const quaternion start,
const quaternion end,
const double &  percent 
) [static]

Definition at line 260 of file quaternion.cpp.

References quaternion::dot(), and quaternion::normalize().

quaternion inverse (  )  const

Returns the inverse of the quaternion: inverse / norm.

Definition at line 201 of file quaternion.cpp.

References quaternion::norm(), quaternion::quaternion(), quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

double norm (  )  const

Returns the norm of the quaterion: sqrt(w*w + x*x + y*y + z*z).

Definition at line 187 of file quaternion.cpp.

References quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

Referenced by quaternion::inverse(), and quaternion::normalize().

void normalize (  ) 

quaternion operator* ( const double &  n  )  const

quaternion operator* ( const quaternion q  )  const

quaternion operator+ ( const quaternion q  )  const

quaternion & operator= ( const transform t  ) 

Sets the quaternion from a rotation matrix (ignores any translation component in the transform).

Definition at line 98 of file quaternion.cpp.

References quaternion::normalize(), matrix::ptr(), quaternion::w, quaternion::x, quaternion::y, and quaternion::z.

quaternion & operator= ( const quaternion q  ) 

Assignment operator; sets the quaternion equal to the given quaternion.

Definition at line 169 of file quaternion.cpp.

References quaternion::w, quaternion::x, quaternion::y, and quaternion::z.


Member Data Documentation

double w

double x

double y

double z


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

Generated on Sat Mar 1 13:50:06 2008 for Periapsis Project by  doxygen 1.5.5