Page principale   Liste des namespaces   Hiérarchie des classes   Liste par ordre alphabétique   Liste des composants   Liste des fichiers   Composants   Déclarations  

Référence de la classe ExQuaternion

#include <ExQuaternion.h>


Membres publics

 ExQuaternion ()
 ExQuaternion (float w, float x, float y, float z)
 ~ExQuaternion ()
void LoadIdentity (void)
void SetQuaternion (float w, float x, float y, float z)
void Normalize (void)
void Conjugate (void)
float GetMagnitude (void)
void SetEuler (float yaw, float pitch, float roll)
ExQuaternion operator- (const ExQuaternion &Q)
ExQuaternion operator+ (const ExQuaternion &Q)
ExQuaternion operator * (const float scalar)
ExQuaternion operator * (const ExQuaternion &Q)

Attributs Publics

float qw
float qx
float qy
float qz

Amis (friends)

std::ostream & operator<< (std::ostream &s, const ExQuaternion &q)


Documentation des contructeurs et destructeurs

ExQuaternion  
 

Définition à la ligne 26 du fichier ExQuaternion.cpp.

Références SetQuaternion().

00027 {
00028         SetQuaternion(1,0,0,0);
00029 }

ExQuaternion float    w,
float    x,
float    y,
float    z
 

Définition à la ligne 31 du fichier ExQuaternion.cpp.

Références SetQuaternion().

00032 {
00033         SetQuaternion(w,x,y,z);
00034 }

~ExQuaternion  
 

Définition à la ligne 36 du fichier ExQuaternion.cpp.

00037 {
00038 
00039 }


Documentation des méthodes

void Conjugate void   
 

Définition à la ligne 52 du fichier ExQuaternion.cpp.

00053 {
00054 
00055 }

float GetMagnitude void   
 

Définition à la ligne 63 du fichier ExQuaternion.cpp.

Références qw, qx, qy, et qz.

Référencé par Normalize().

00064 {
00065         return(sqrt(qw*qw+qx*qx+qy*qy+qz*qz));
00066         
00067 }

void LoadIdentity void   
 

Définition à la ligne 57 du fichier ExQuaternion.cpp.

Références qx, qy, et qz.

00058 {
00059         qx=-qx;
00060         qy=-qy;
00061         qz=-qz;
00062 }

void Normalize void   
 

Définition à la ligne 68 du fichier ExQuaternion.cpp.

Références GetMagnitude(), qw, qx, qy, et qz.

00069 {
00070         float factor=GetMagnitude();
00071         float scaleby(1.0/sqrt(factor));
00072         qw=qw*scaleby;
00073         qx=qx*scaleby;
00074         qy=qy*scaleby;
00075         qz=qz*scaleby;
00076 }

ExQuaternion operator * const ExQuaternion &    Q
 

Définition à la ligne 96 du fichier ExQuaternion.cpp.

Références qw, qx, qy, et qz.

00097 {
00098         ExQuaternion result;
00099         result.qw=(Q.qw*result.qw)-(Q.qx*result.qx)-(Q.qy*result.qy)-(Q.qz*result.qz);
00100         result.qx=(Q.qw*result.qx)-(Q.qx*result.qw)-(Q.qy*result.qz)-(Q.qz*result.qw);
00101         result.qy=(Q.qw*result.qy)-(Q.qx*result.qz)-(Q.qy*result.qw)-(Q.qz*result.qx);
00102         result.qz=(Q.qw*result.qz)-(Q.qx*result.qy)-(Q.qy*result.qx)-(Q.qz*result.qw);
00103         return result;
00104 }

ExQuaternion operator * const float    scalar
 

ExQuaternion operator+ const ExQuaternion &    Q
 

ExQuaternion operator- const ExQuaternion &    Q
 

void SetEuler float    yaw,
float    pitch,
float    roll
 

Définition à la ligne 78 du fichier ExQuaternion.cpp.

Références qw, qx, qy, et qz.

Référencé par ExCCamera::Draw().

00079 {
00080         float cosY = cosf(yaw/2.0f);
00081         float sinY = sinf(yaw/2.0f);
00082         float cosP = cosf(pitch/2.0f);
00083         float sinP = sinf(pitch/2.0f);
00084         float cosR = cosf(roll/2.0f);
00085         float sinR = sinf(roll/2.0f);
00086 
00087         qw=cosR*sinP*cosY+sinR*cosP*sinY;
00088         qx=cosR*cosP*sinY-sinR*sinP*cosY;
00089         qy=sinR*cosP*cosY-cosR*sinP*sinY;
00090         qz=cosR*cosP*cosY+sinR*sinP*sinY;
00091 
00092 }

void SetQuaternion float    w,
float    x,
float    y,
float    z
 

Définition à la ligne 44 du fichier ExQuaternion.cpp.

Référencé par ExQuaternion().

00045 {
00046         qw=w;
00047         qx=x;
00048         qy=y;
00049         qz=z;
00050 }


Documentation des fonctions amies et associées

std::ostream& operator<< std::ostream &    s,
const ExQuaternion &    q
[friend]
 

Définition à la ligne 109 du fichier ExQuaternion.cpp.

00110 {
00111 Guard(friend std::ostream& operator<<(std::ostream& s,const ExQuaternion &q))
00112         s<<"W:"<<q.qw<<"X:"<<q.qx<<"Y:"<<q.qy<<"Z:"<<q.qz<<std::endl;
00113         return s;
00114 UnGuard
00115 }


Documentation des données imbriquées

float qw
 

Définition à la ligne 55 du fichier ExQuaternion.h.

Référencé par GetMagnitude(), GetMatrixFromQuaternion(), GetQuaternionFromEuler(), Normalize(), operator *(), operator<<(), et SetEuler().

float qx
 

Définition à la ligne 55 du fichier ExQuaternion.h.

Référencé par GetAxisFromQuaternion(), GetMagnitude(), GetMatrixFromQuaternion(), GetQuaternionFromEuler(), LoadIdentity(), Normalize(), operator *(), operator<<(), et SetEuler().

float qy
 

Définition à la ligne 55 du fichier ExQuaternion.h.

Référencé par GetAxisFromQuaternion(), GetMagnitude(), GetMatrixFromQuaternion(), GetQuaternionFromEuler(), LoadIdentity(), Normalize(), operator *(), operator<<(), et SetEuler().

float qz
 

Définition à la ligne 55 du fichier ExQuaternion.h.

Référencé par GetAxisFromQuaternion(), GetMagnitude(), GetMatrixFromQuaternion(), GetQuaternionFromEuler(), LoadIdentity(), Normalize(), operator *(), operator<<(), et SetEuler().


La documentation associée à cette classe a été générée à partir des fichiers suivants :
Généré le Tue Aug 6 20:25:47 2002 pour ExNihilo par doxygen1.2.17