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().