|
GL4Dummies
0.1.7
|
macros et fonctions liées aux calculs mathématiques propres à l'utilisation de GL4Dummies. Plus de détails...


Aller au code source de ce fichier.
Structures de données | |
| struct | GL4DMVector |
| Méthodes alternative utilisant des fonctions inline (compatible seulement a partir de la norme c99) Plus de détails... | |
| struct | GL4DMMatrix |
Macros | |
| #define | GL4DM_E 2.7182818284590452354 |
| #define | GL4DM_LOG2E 1.4426950408889634074 |
| #define | GL4DM_LOG10E 0.43429448190325182765 |
| #define | GL4DM_LN2 0.69314718055994530942 |
| #define | GL4DM_LN10 2.30258509299404568402 |
| #define | GL4DM_PI 3.14159265358979323846 |
| #define | GL4DM_PI_2 1.57079632679489661923 |
| #define | GL4DM_PI_4 0.78539816339744830962 |
| #define | GL4DM_PI_180 0.01745329251994329576 |
| #define | GL4DM_1_PI 0.31830988618379067154 |
| #define | GL4DM_2_PI 0.63661977236758134308 |
| #define | GL4DM_2_SQRTPI 1.12837916709551257390 |
| #define | GL4DM_SQRT2 1.41421356237309504880 |
| #define | GL4DM_SQRT1_2 0.70710678118654752440 |
| #define | GL4DM_EPSILON 1.19209290e-07F |
| #define | MIN(a, b) (((a) < (b)) ? (a) : (b)) |
| #define | MAX(a, b) (((a) > (b)) ? (a) : (b)) |
| #define | SIGN(i) ((i) < 0 ? -1 : 1) |
| #define | SQUARE(X) ((X)*(X)) |
| #define | COTANGENT(X) (cos(X)/sin(X)) |
| #define | RADIAN(X) (GL4DM_PI * (X) / 180) |
| #define | MMAT4XMAT4(r, a, b) |
| Multiplication de deux matrices 4x4. Les matrices a et b sont multipliées et le résultat est stocké dans r. Plus de détails... | |
| #define | MMAT4XVEC4(r, m, v) |
| Multiplication d'une matrices 4x4 par un vecteur. La matrice m et le vecteur v sont multipliés et le résultat est stocké dans le vecteur r. Plus de détails... | |
| #define | MVEC4WEIGHT(v) |
| divise les composantes x, y et z du vecteur v par sa composante w et remet w à 1. Plus de détails... | |
| #define | MMAT4TRANSPOSE(m) |
| Transposée de la matrice 4x4 m. Plus de détails... | |
| #define | MMAT4INVERSE(m) |
| Inverse de la matrice 4x4 m. Plus de détails... | |
| #define | MVEC3CROSS(r, u, v) |
| Produit vectoriel 3D entre u et v écrit dans r. Plus de détails... | |
| #define | MVEC4CROSS(r, u, v) |
| Produit vectoriel 3D entre u et v écrit dans r avec un 1.0 pour la 4ème dimension de r. Plus de détails... | |
| #define | MVEC2DOT(u, v) ((u)[0] * (v)[0] + (u)[1] * (v)[1]) |
| Renvoie le produit scalaire entre deux vecteurs 2D entre u et v. Plus de détails... | |
| #define | MVEC3DOT(u, v) ((u)[0] * (v)[0] + (u)[1] * (v)[1] + (u)[2] * (v)[2]) |
| Renvoie le produit scalaire entre deux vecteurs 3D entre u et v. Plus de détails... | |
| #define | MVEC4DOT(u, v) ((u)[0] * (v)[0] + (u)[1] * (v)[1] + (u)[2] * (v)[2] + (u)[3] * (v)[3]) |
| Renvoie le produit scalaire entre deux vecteurs 4D entre u et v. Plus de détails... | |
| #define | MVEC4NORMALIZE(v) |
| Normalise le vecteur 4D v. Plus de détails... | |
| #define | MVEC3NORMALIZE(v) |
| Normalise le vecteur 3D v. Plus de détails... | |
| #define | MVEC2NORMALIZE(v) |
| Normalise le vecteur 2D v. Plus de détails... | |
| #define | MFRUSTUM(mat, l, r, b, t, n, f) |
| Création d'une matrice de projection en perspective selon l'ancienne fonction glFrustum. Plus de détails... | |
| #define | MORTHO(mat, l, r, b, t, n, f) |
| Création d'une matrice de projection orthogonale selon l'ancienne fonction glOrtho. Plus de détails... | |
| #define | MPERSPECTIVE(mat, fovy, aspect, zNear, zFar) |
| Création d'une matrice de projection en perspective selon l'ancienne fonction gluPerspective. Plus de détails... | |
| #define | MIDENTITY(m) |
| Chargement d'une matrice identitéé dans m. Plus de détails... | |
Fonctions | |
| GL4DAPI double GL4DAPIENTRY | gl4dmURand (void) |
| Retourne un nombre pseudo-aleatoire dans l'intervalle [0, 1[. Ici la distribution est uniforme. Plus de détails... | |
| GL4DAPI double GL4DAPIENTRY | gl4dmSURand (void) |
| Retourne un nombre pseudo-aleatoire dans l'intervalle [-1, 1[. Ici la distribution est uniforme. Plus de détails... | |
| GL4DAPI double GL4DAPIENTRY | gl4dmGRand (void) |
| Retourne un nombre pseudo-aleatoire dans l'intervalle ]-7, +7[. Ici la distribution est Gaussienne. Plus de détails... | |
| GL4DAPI double GL4DAPIENTRY | gl4dmGURand (void) |
| Retourne un nombre pseudo-aleatoire dans l'intervalle [-1, +1[. Ici la distribution est Gaussienne centrée en zéro. Plus de détails... | |
| GL4DAPI GLfloat *GL4DAPIENTRY | gl4dmTriangleEdge (GLuint width, GLuint height, GLfloat H) |
| génère une heightmap en utilisant l'algorithme du triangle-edge. Les valeurs retournées dans la map sont comprises entre 0 et 1. Plus de détails... | |
macros et fonctions liées aux calculs mathématiques propres à l'utilisation de GL4Dummies.
Définition dans le fichier gl4dm.h.
| #define COTANGENT | ( | X | ) | (cos(X)/sin(X)) |
| #define GL4DM_1_PI 0.31830988618379067154 |
| #define GL4DM_2_PI 0.63661977236758134308 |
| #define GL4DM_2_SQRTPI 1.12837916709551257390 |
| #define GL4DM_E 2.7182818284590452354 |
| #define GL4DM_EPSILON 1.19209290e-07F |
| #define GL4DM_LN10 2.30258509299404568402 |
| #define GL4DM_LN2 0.69314718055994530942 |
| #define GL4DM_LOG10E 0.43429448190325182765 |
| #define GL4DM_LOG2E 1.4426950408889634074 |
| #define GL4DM_PI 3.14159265358979323846 |
| #define GL4DM_PI_180 0.01745329251994329576 |
| #define GL4DM_PI_2 1.57079632679489661923 |
| #define GL4DM_PI_4 0.78539816339744830962 |
| #define GL4DM_SQRT1_2 0.70710678118654752440 |
| #define GL4DM_SQRT2 1.41421356237309504880 |
| #define MAX | ( | a, | |
| b | |||
| ) | (((a) > (b)) ? (a) : (b)) |
| #define MFRUSTUM | ( | mat, | |
| l, | |||
| r, | |||
| b, | |||
| t, | |||
| n, | |||
| f | |||
| ) |
Création d'une matrice de projection en perspective selon l'ancienne fonction glFrustum.
| #define MIDENTITY | ( | m | ) |
Chargement d'une matrice identitéé dans m.
| #define MIN | ( | a, | |
| b | |||
| ) | (((a) < (b)) ? (a) : (b)) |
| #define MMAT4INVERSE | ( | m | ) |
Inverse de la matrice 4x4 m.
| #define MMAT4TRANSPOSE | ( | m | ) |
Transposée de la matrice 4x4 m.
| #define MMAT4XMAT4 | ( | r, | |
| a, | |||
| b | |||
| ) |
Multiplication de deux matrices 4x4. Les matrices a et b sont multipliées et le résultat est stocké dans r.
| #define MMAT4XVEC4 | ( | r, | |
| m, | |||
| v | |||
| ) |
Multiplication d'une matrices 4x4 par un vecteur. La matrice m et le vecteur v sont multipliés et le résultat est stocké dans le vecteur r.
| #define MORTHO | ( | mat, | |
| l, | |||
| r, | |||
| b, | |||
| t, | |||
| n, | |||
| f | |||
| ) |
Création d'une matrice de projection orthogonale selon l'ancienne fonction glOrtho.
| #define MPERSPECTIVE | ( | mat, | |
| fovy, | |||
| aspect, | |||
| zNear, | |||
| zFar | |||
| ) |
Création d'une matrice de projection en perspective selon l'ancienne fonction gluPerspective.
| #define MVEC2DOT | ( | u, | |
| v | |||
| ) | ((u)[0] * (v)[0] + (u)[1] * (v)[1]) |
Renvoie le produit scalaire entre deux vecteurs 2D entre u et v.
| #define MVEC2NORMALIZE | ( | v | ) |
Normalise le vecteur 2D v.
| #define MVEC3CROSS | ( | r, | |
| u, | |||
| v | |||
| ) |
Produit vectoriel 3D entre u et v écrit dans r.
| #define MVEC3DOT | ( | u, | |
| v | |||
| ) | ((u)[0] * (v)[0] + (u)[1] * (v)[1] + (u)[2] * (v)[2]) |
Renvoie le produit scalaire entre deux vecteurs 3D entre u et v.
| #define MVEC3NORMALIZE | ( | v | ) |
Normalise le vecteur 3D v.
| #define MVEC4CROSS | ( | r, | |
| u, | |||
| v | |||
| ) |
Produit vectoriel 3D entre u et v écrit dans r avec un 1.0 pour la 4ème dimension de r.
| #define MVEC4DOT | ( | u, | |
| v | |||
| ) | ((u)[0] * (v)[0] + (u)[1] * (v)[1] + (u)[2] * (v)[2] + (u)[3] * (v)[3]) |
Renvoie le produit scalaire entre deux vecteurs 4D entre u et v.
| #define MVEC4NORMALIZE | ( | v | ) |
Normalise le vecteur 4D v.
| #define MVEC4WEIGHT | ( | v | ) |
divise les composantes x, y et z du vecteur v par sa composante w et remet w à 1.
| #define RADIAN | ( | X | ) | (GL4DM_PI * (X) / 180) |
| #define SIGN | ( | i | ) | ((i) < 0 ? -1 : 1) |
| #define SQUARE | ( | X | ) | ((X)*(X)) |
| GL4DAPI double GL4DAPIENTRY gl4dmGRand | ( | void | ) |
Retourne un nombre pseudo-aleatoire dans l'intervalle ]-7, +7[. Ici la distribution est Gaussienne.
Tire du knuth : le rand Gaussien a deux valeurs par passe deux rand : X1 et X2.
Référencé par gl4dmGURand().
| GL4DAPI double GL4DAPIENTRY gl4dmGURand | ( | void | ) |
Retourne un nombre pseudo-aleatoire dans l'intervalle [-1, +1[. Ici la distribution est Gaussienne centrée en zéro.
Références gl4dmGRand().
| GL4DAPI double GL4DAPIENTRY gl4dmSURand | ( | void | ) |
Retourne un nombre pseudo-aleatoire dans l'intervalle [-1, 1[. Ici la distribution est uniforme.
Référencé par setDimensions(), et triangle_edge().
| GL4DAPI GLfloat* GL4DAPIENTRY gl4dmTriangleEdge | ( | GLuint | width, |
| GLuint | height, | ||
| GLfloat | H | ||
| ) |
génère une heightmap en utilisant l'algorithme du triangle-edge. Les valeurs retournées dans la map sont comprises entre 0 et 1.
| width | la largeur de la heightmap |
| height | la hauteur de la heightmap |
| H | exposant de Hurst, permet de controler la dimension fractale de la heightmap. La valeur standard est 0.5 (sinon entre 0 et 1) |
Références GL4DM_EPSILON, gl4dmURand(), et triangle_edge().
| GL4DAPI double GL4DAPIENTRY gl4dmURand | ( | void | ) |
Retourne un nombre pseudo-aleatoire dans l'intervalle [0, 1[. Ici la distribution est uniforme.
Référencé par gl4dmTriangleEdge().