- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# src/Math/Matrix4x4.hpp

Go to the documentation of this file.

    00001 #ifndef MATRIX_4X4_HPP
    00002 #define MATRIX_4X4_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 // Classe mère
    00008 #include "Math.hpp"
    00009
    00010
    00011 namespace USpeedGameEngine
    00012 {
    00013
    00014 class Math::Matrix4x4
    00015 {
    00016     /****************
    00017     * Les attributs *
    00018     ****************/
    00019     public :
    00020     protected :
    00021     private :
    00022         float matrix[16];
    00023
    00024     /***************
    00025     * Les méthodes *
    00026     ***************/
    00027     public :
    00028         // Constructeurs
    00029         Matrix4x4();
    00030         Matrix4x4(const float pMatrix[16]);
    00031         Matrix4x4(Math::Vector3D *vector);
    00032         Matrix4x4(float angle, Math::Vector3D *vector);
    00033         // Destructeur par défaut
    00034         ~Matrix4x4();
    00035
    00036         // Affectations
    00037         void setValues(const float pMatrix[16]);
    00038         void setValues(Math::Point3D *point);
    00039         void setValues(Math::Vector3D *vector);
    00040         void setValues(float angle, Math::Vector3D *vector);
    00041
    00042         // Chargement d'une matrice rotation selon l'axe spécifié.
    00043         void loadRotationMatrix(float angle, char axis);
    00044         // Récupération de la matrice 4x4.
    00045         void getMatrix(float *matrix);
    00046         void getMatrix(float *matrix, bool rows);
    00047
    00048         // Charge la matrice identité
    00049         void loadIdentity();
    00050         // Les valeurs proches de zéro sont mise à zéro (tolérance définie par Math::Epsilon)
    00051         void zeroClamp();
    00052         // Force la dernière ligne de la matrice à être [ 0, 0, 0, 1 ].
    00053         void verifyMatrix();
    00054         // Génération des 3 angles d'Euler à partir de la matrice courante.
    00055         void toEuler(float *x, float *y, float *z);
    00056         void toEulerXYZ(float *x, float *y, float *z);
    00057         // Effectue le produit de la matrice actuelle par la matrice fournie.
    00058         void product(Math::Matrix4x4 *pMatrix);
    00059
    00060     protected :
    00061     private :
    00062
    00063 };
    00064
    00065 }        // Fin "namespace USpeedGameEngine"
    00066
    00067 #endif