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 |
---|---|
|
Indique que mode n’est pas une valeur acceptée. |
|
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 |
|
Bibliothèque |
|
DLL |
|