Partager via


glEvalMesh2, fonction

Calcule une grille à deux dimensions de points ou de lignes.

Syntaxe

void WINAPI glEvalMesh2(
   GLenum mode,
   GLint  i1,
   GLint  i2,
   GLint  j1,
   GLint  j2
);

Paramètres

mode

Valeur qui spécifie s’il faut calculer un maillage à deux dimensions de points, de lignes ou de polygones. Les constantes symboliques suivantes sont acceptées : GL_POINT, GL_LINE et GL_FILL.

i1

Première valeur entière pour la variable de domaine de grille i.

i2

Dernière valeur entière pour la variable de domaine de grille i.

j1

Première valeur entière pour la variable de domaine de grille j.

j2

Dernière valeur entière pour la variable de domaine de grille j.

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Codes d’erreur

Les codes d’erreur suivants peuvent être récupérés par la fonction glGetError .

Name Signification
GL_INVALID_ENUM
Indique que mode n’est pas une valeur acceptée.
GL_INVALID_OPERATION
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd.

Notes

Utilisez glMapGrid et glEvalMesh en tandem pour générer et évaluer efficacement une série de valeurs de domaine de carte uniformément espacées. La fonction glEvalMesh traverse le domaine entier d’une grille à une ou deux dimensions, dont la plage est le domaine des mappages d’évaluation spécifiés par glMap1 et glMap2. Le paramètre mode détermine si les sommets résultants sont connectés sous forme de points, de lignes ou de polygones remplis.

Dans le cas à deux dimensions, glEvalMesh2, let

? u = (u2 u1)/n

? v = (v2 v1)/m,

où n, u1, u2, m, v1 et v2 sont les arguments de la fonction glMapGrid2 la plus récente. Ensuite, si le mode est GL_FILL, glEvalMesh2 équivaut à :

for (j = j1; j < j2; j += 1)

{

glBegin(GL_QUAD_STRIP);

for (i = i1 ; i <= i2 ; i += 1)

{

glEvalCoord2(i? u + u1 ( ) , j ? v + v1);

glEvalCoord2(i? u + u1 ( ) , (j+1) ? v + v1);

}

glEnd( ); }

Si le mode est GL_LINE, un appel à glEvalMesh2 équivaut à :

for (j = j1 ; j <= j2 ; j += 1)

{

glBegin(GL_LINE_STRIP);

for (i = i1 ; i <= i2 ; i += 1)

{

glEvalCoord2(i? u + u1, j? v + v1);

}

glEnd( );

}

for (i = i1 ; i <= i2 ; i += 1)

{

glBegin(GL_LINE_STRIP);

for (j = j1 ; j <= j1 ; j += 1)

{

glEvalCoord2(i? u + u1, j? v + v1);

}

glEnd( );

}

Enfin, si le mode est GL_POINT, un appel à glEvalMesh2 équivaut à :

glBegin(GL_POINTS);

for (j = j1 ; j <= j2 ; j += 1)

{

for (i = i1 ; i <= i2 ; i += 1)

{

glEvalCoord2(i? u + u1, j? v + v1);

}

}

glEnd( );

Dans les trois cas, les seules exigences numériques absolues sont que si i = n, alors la valeur calculée à partir de i ? u + u1 est exactement u2, et si j = m, la valeur calculée à partir de j ? v + v1 est exactement v2. Les fonctions suivantes récupèrent des informations relatives à glEvalMesh :

glGet avec argument GL_MAP1_GRID_DOMAIN

glGet avec argument GL_MAP2_GRID_DOMAIN

glGet avec argument GL_MAP1_GRID_SEGMENTS

glGet avec argument GL_MAP2_GRID_SEGMENTS

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Gl.h
Bibliothèque
Opengl32.lib
DLL
Opengl32.dll