- Page principale
- Espaces de nommage
- Classes
- Fichiers

- Liste des fichiers
- Membres de fichier

# src/Math/Quaternion.hpp

Aller à la documentation de ce fichier.

    00001 #ifndef QUATERNION_HPP
    00002 #define QUATERNION_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 // Classe mère
    00008 #include "Math.hpp"
    00009 #include "Matrix4x4.hpp"
    00010 #include "Point3D.hpp"
    00011 #include "Vector3D.hpp"
    00012
    00013 namespace USpeedGameEngine
    00014 {
    00015
    00016 class Math::Quaternion
    00017 {
    00018     /****************
    00019     * Les attributs *
    00020     ****************/
    00021     public :
    00022     protected :
    00023     private :
    00024         float w;
    00025         float x;
    00026         float y;
    00027         float z;
    00028
    00029     /***************
    00030     * Les méthodes *
    00031     ***************/
    00032     public :
    00033         // Constructeurs
    00034         Quaternion();
    00035         Quaternion(float w, float x, float y, float z);
    00036         Quaternion(float xEuler, float yEuler, float zEuler);
    00037         Quaternion(Math::Vector3D *vector, float angle);
    00038
    00039         // Destructeur par défaut
    00040         ~Quaternion();
    00041
    00043         // Les opérateurs //
    00045         // Produit de quaternions
    00046         Math::Quaternion        operator*(const Math::Quaternion &q) const;
    00047         // Copie (affectation)
    00048         Math::Quaternion&       operator=(const Math::Quaternion &q);
    00049         // Produit et affectation
    00050         Math::Quaternion&       operator*=(const Math::Quaternion &q);
    00051
    00053         // Autres fonctions //
    00055         // Récupération des 4 composantes
    00056         void getValues(float *w, float *x, float *y, float *z);
    00057         // Calcule et retourne la norme du quaternion
    00058         float getNorm();
    00059         // Génère la matrice 4x4 associée au quaternion
    00060         void getMatrix(Math::Matrix4x4 *matrix);
    00061         // Normalisation du quaternion
    00062         void normalize();
    00063         // Quaternion Identité
    00064         void loadIdentity();
    00065         // Convertion d'un quaternion en 3 angles d'Euler
    00066         void toEuler(float *xEuler, float *yEuler, float *zEuler);
    00067         // Convertion d'un quaternion en un vecteur et un angle
    00068         void toAxis(Math::Vector3D *vector, float *angle);
    00069         // Convertion des angles d'Euler en un Quaternion
    00070         void fromEuler(float xEuler, float yEuler, float zEuler);
    00071         // Convertion d'un vecteur et d'un angle en un quaternion
    00072         void fromAxis(Math::Vector3D *vector, float angle);
    00073
    00074     protected :
    00075     private :
    00076
    00077 };
    00078
    00079 }        // Fin "namespace USpeedGameEngine"
    00080
    00081 #endif