Fonctions membres publiques

# Référence de la classe USpeedGameEngine::Math::Matrix4x4

Classe mère pour les calculs matriciels 4x4. Plus de détails...

Liste de tous les membres

## Fonctions membres publiques

| Matrix4x4 ()
| Constructeur par défaut : matrice identité.
| Matrix4x4 (const float pMatrix[16])
| Constructeur avec liste des valeurs.
| Matrix4x4 (Math::Vector3D *vector)
| Constructeur à partir d'un vecteur 3D.
| Matrix4x4 (float angle, Math::Vector3D *vector)
| Constructeur à partir d'un vecteur 3D et d'un angle.
| ~Matrix4x4 ()
| Destructeur par défaut.
void | setValues (const float pMatrix[16])
| Affectation des 16 valeurs de la matrice.
void | setValues (Math::Point3D *point)
| Affectation depuis un point 3D.
void | setValues (Math::Vector3D *vector)
| Affectation depuis un vecteur 3D.
void | setValues (float angle, Math::Vector3D *vector)
| Affectation depuis un vecteur 3D et un angle (en radians).
void | loadRotationMatrix (float angle, char axis)
| Chargement d'une matrice rotation selon l'axe spécifié.
void | getMatrix (float *matrix)
| Récupération de la matrice 4x4 (en colonnes).
void | getMatrix (float *matrix, bool rows)
| Récupération de la matrice 4x4.
void | loadIdentity ()
| Charge la matrice identité.
void | zeroClamp ()
| Les valeurs proches de zéro sont mise à zéro (tolérance définie par Math::Epsilon).
void | verifyMatrix ()
| Force la dernière ligne de la matrice à être [ 0, 0, 0, 1 ].
void | toEuler (float *x, float *y, float *z)
| Génération des 3 angles d'Euler à partir de la matrice courante.
void | toEulerXYZ (float *x, float *y, float *z)
| Génération des 3 angles séquentiels d'Euler à partir de la matrice courante.
void | product (Math::Matrix4x4 *pMatrix)
| Effectue le produit de la matrice actuelle par la matrice fournie.

## Description détaillée

Classe mère pour les calculs matriciels 4x4.

Auteur:
  U.Speed

## Documentation des constructeurs et destructeur

Math::Matrix4x4::Matrix4x4 | ( |  | ) |

Constructeur par défaut : matrice identité.

Auteur:
  U.Speed

Math::Matrix4x4::Matrix4x4 | ( | const float | pMatrix[16] | ) |

Constructeur avec liste des valeurs.

     0 .. 4 .. 8  .. 12
     1 .. 5 .. 9  .. 13
     2 .. 6 .. 10 .. 14
     3 .. 7 .. 11 .. 15

Auteur:
  U.Speed

Paramètres:

  | pMatrix | const float[16] : liste des valeurs

Math::Matrix4x4::Matrix4x4 | ( | Math::Vector3D * | vector | ) |

Constructeur à partir d'un vecteur 3D.

Auteur:
  U.Speed

Paramètres:

  | vector | Math::Vector3D* : pointeur du vecteur à utiliser pour initialiser la matrice

Math::Matrix4x4::Matrix4x4 | ( | float | angle,
|  | Math::Vector3D * | vector |
| ) |  |  |

Constructeur à partir d'un vecteur 3D et d'un angle.

Auteur:
  U.Speed

Paramètres:

  | angle | float : l'angle
  | vector | Math::Vector3D* : pointeur du vecteur à utiliser pour initialiser la matrice

Math::Matrix4x4::~Matrix4x4 | ( |  | ) |

Destructeur par défaut.

Auteur:
  U.Speed

## Documentation des fonctions membres

void Math::Matrix4x4::getMatrix | ( | float * | matrix | ) |

Récupération de la matrice 4x4 (en colonnes).

Voir également:
  void Math::Matrix4x4::getMatrix(float *matrix, bool rows)

Auteur:
  U.Speed

Paramètres:

  | matrix | float* : destination de la matrice 4x4 (16 float).

void Math::Matrix4x4::getMatrix | ( | float * | matrix,
|  | bool | rows |
| ) |  |  |

Récupération de la matrice 4x4.

Matrice en colonnes (version de base) :

     0 .. 4 .. 8  .. 12
     1 .. 5 .. 9  .. 13
     2 .. 6 .. 10 .. 14
     3 .. 7 .. 11 .. 15

Matrice en lignes (version avec `rows = true`) :

     0  .. 1  .. 2  .. 3
     4  .. 5  .. 6  .. 7
     8  .. 9  .. 10 .. 11
     12 .. 13 .. 14 .. 15

Auteur:
  U.Speed

Paramètres:

  | matrix | float* : destination de la matrice 4x4 (16 float).
  | rows | bool : `true` pour passer la matrice en indexation par ligne.

void Math::Matrix4x4::loadIdentity | ( |  | ) |

Charge la matrice identité.

Auteur:
  U.Speed

void Math::Matrix4x4::loadRotationMatrix | ( | float | angle,
|  | char | axis |
| ) |  |  |

Chargement d'une matrice rotation selon l'axe spécifié.

Rotation selon xox'

Rotation selon yoy'

Rotation selon zoz'

     0 .. 4 .. 8  .. 12
     1 .. 5 .. 9  .. 13
     2 .. 6 .. 10 .. 14
     3 .. 7 .. 11 .. 15

Auteur:
  U.Speed

Paramètres:

  | angle | float : l'angle de rotation en degrés.
  | axis | char : l'axe selon lequel il faut effectuer la rotation ('X', 'Y' ou 'Z'; en majuscule ou minuscule).

void Math::Matrix4x4::product | ( | Math::Matrix4x4 * | pMatrix | ) |

Effectue le produit de la matrice actuelle par la matrice fournie.

A x B où la matrice A est la matrice courante et B, celle fournie.

       0 .. 4 .. 8  .. 12
       1 .. 5 .. 9  .. 13
       2 .. 6 .. 10 .. 14
       3 .. 7 .. 11 .. 15

        _________ 0                  4                  8                    12
       |  _______ 1                  5                  9                    13
       | |  _____ 2                  6                  10                   14
       | | |   __ 3                  7                  11                   15
       | | |  |
       0 4 8  12  0.0+4.1+8.2+12.3   0.4+4.5+8.6+12.7   0.8+4.9+8.10+12.11   0.12+4.13+8.14+12.15
       1 5 9  13  1.0+5.1+9.2+13.3   1.4+5.5+9.6+13.7   1.8+5.9+9.10+13.11   1.12+5.13+9.14+13.15
       2 6 10 14  2.0+6.1+10.2+14.3  2.4+6.5+10.6+14.7  2.8+6.9+10.10+14.11  2.12+6.13+10.14+14.15
       3 7 11 15  3.0+7.1+11.2+15.3  3.4+7.5+11.6+15.7  3.8+7.9+11.10+15.11  3.12+7.13+11.14+15.15

Auteur:
  U.Speed

Paramètres:

  | pMatrix | Math::Matrix4x4* : la matrice B.

void Math::Matrix4x4::setValues | ( | const float | pMatrix[16] | ) |

Affectation des 16 valeurs de la matrice.

     0 .. 4 .. 8  .. 12
     1 .. 5 .. 9  .. 13
     2 .. 6 .. 10 .. 14
     3 .. 7 .. 11 .. 15

Auteur:
  U.Speed

Paramètres:

  | pMatrix | const float[16] : liste des valeurs

void Math::Matrix4x4::setValues | ( | float | angle,
|  | Math::Vector3D * | vector |
| ) |  |  |

Affectation depuis un vecteur 3D et un angle (en radians).

La matrice rotation est obtenue par la formule suivante (Cf. glRotate() en OpenGL) :

       0 .. 4 .. 8  .. 12
       1 .. 5 .. 9  .. 13
       2 .. 6 .. 10 .. 14
       3 .. 7 .. 11 .. 15

Auteur:
  U.Speed

Paramètres:

  | angle | const float : l'angle en radians
  | vector | Math::Vector3D* : le pointeur d'un vecteur

void Math::Matrix4x4::setValues | ( | Math::Point3D * | point | ) |

Affectation depuis un point 3D.

Les valeurs sont positionnées sur la dernière colonne d'une matrice identité.

     0 .. 4 .. 8  .. 12 <- x
     1 .. 5 .. 9  .. 13 <- y
     2 .. 6 .. 10 .. 14 <- z
     3 .. 7 .. 11 .. 15
                     ^^

Auteur:
  U.Speed

Paramètres:

  | point | Math::Point3D* : le pointeur du point

void Math::Matrix4x4::setValues | ( | Math::Vector3D * | vector | ) |

Affectation depuis un vecteur 3D.

Les valeurs sont positionnées sur la dernière colonne d'une matrice identité.

     0 .. 4 .. 8  .. 12 <- x
     1 .. 5 .. 9  .. 13 <- y
     2 .. 6 .. 10 .. 14 <- z
     3 .. 7 .. 11 .. 15
                     ^^

Auteur:
  U.Speed

Paramètres:

  | vector | Math::Vector3D* : le pointeur d'un vecteur

void Math::Matrix4x4::toEuler | ( | float * | x,
|  | float * | y,
|  | float * | z |
| ) |  |  |

Génération des 3 angles d'Euler à partir de la matrice courante.

Les angles calculés sont en degrés.

Auteur:
  U.Speed

Paramètres:

  | x | float* : destination de l'angle selon l'axe X
  | y | float* : destination de l'angle selon l'axe Y
  | z | float* : destination de l'angle selon l'axe Z

void Math::Matrix4x4::toEulerXYZ | ( | float * | x,
|  | float * | y,
|  | float * | z |
| ) |  |  |

Génération des 3 angles séquentiels d'Euler à partir de la matrice courante.

Les angles calculés sont en degrés.
Ils sont à appliquer dans l'ordre :

1. rotation selon xox'
2. puis rotation selon yoy'
3. enfin, rotation selon zoz'

On considère que la matrice actuelle est une matrice rotation selon les 3 axes.
Elle est le produit R = Rxox' * Ryoy' * Rzoz'.

Auteur:
  U.Speed

Paramètres:

  | x | float* : destination de l'angle selon l'axe xox'
  | y | float* : destination de l'angle selon l'axe yoy'
  | z | float* : destination de l'angle selon l'axe zoz'

void Math::Matrix4x4::verifyMatrix | ( |  | ) |

Force la dernière ligne de la matrice à être [ 0, 0, 0, 1 ].

        0 .. 4 .. 8  .. 12
        1 .. 5 .. 9  .. 13
        2 .. 6 .. 10 .. 14
     -> 3 .. 7 .. 11 .. 15

Auteur:
  U.Speed

void Math::Matrix4x4::zeroClamp | ( |  | ) |

Les valeurs proches de zéro sont mise à zéro (tolérance définie par Math::Epsilon).

Auteur:
  U.Speed

La documentation de cette classe a été générée à partir des fichiers suivants :

- src/Math/Matrix4x4.hpp
- src/Math/Matrix4x4.cpp
- src/Math/Matrix4x4_getMatrix.cpp
- src/Math/Matrix4x4_loadIdentity.cpp
- src/Math/Matrix4x4_loadRotationMatrix.cpp
- src/Math/Matrix4x4_product.cpp
- src/Math/Matrix4x4_setValues.cpp
- src/Math/Matrix4x4_toEuler.cpp
- src/Math/Matrix4x4_toEulerXYZ.cpp
- src/Math/Matrix4x4_verifyMatrix.cpp
- src/Math/Matrix4x4_zeroClamp.cpp