Compartir a través de


función glEvalMesh2

Calcula una cuadrícula bidimensional de puntos o líneas.

Sintaxis

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

Parámetros

mode

Valor que especifica si se va a calcular una malla bidimensional de puntos, líneas o polígonos. Se aceptan las siguientes constantes simbólicas: GL_POINT, GL_LINE y GL_FILL.

i1

Primer valor entero de la variable de dominio de cuadrícula i.

i2

Último valor entero de la variable de dominio de cuadrícula i.

j1

Primer valor entero de la variable de dominio de cuadrícula j.

j2

Último valor entero de la variable de dominio de cuadrícula j.

Valor devuelto

Esta función no devuelve ningún valor.

Códigos de error

La función glGetError puede recuperar los siguientes códigos de error.

Nombre Significado
GL_INVALID_ENUM
Indica que el modo no es un valor aceptado.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd.

Comentarios

Use glMapGrid y glEvalMesh en conjunto para generar y evaluar de forma eficaz una serie de valores de dominio de mapa espaciado uniformemente. La función glEvalMesh recorre el dominio entero de una cuadrícula unidimensional, cuyo intervalo es el dominio de los mapas de evaluación especificados por glMap1 y glMap2. El parámetro mode determina si los vértices resultantes están conectados como puntos, líneas o polígonos rellenos.

En el caso bidimensional, glEvalMesh2, let

? u = (u2 u1)/n

? v = (v2 v1)/m,

donde n, u1, u2, m, v1 y v2 son los argumentos de la función glMapGrid2 más reciente. A continuación, si el modo es GL_FILL, glEvalMesh2 equivale a:

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 el modo es GL_LINE, una llamada a glEvalMesh2 equivale a:

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

}

Y, por último, si el modo es GL_POINT, una llamada a glEvalMesh2 equivale a:

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

En los tres casos, los únicos requisitos numéricos absolutos son que si i = n, entonces el valor calculado desde i? u + u1 es exactamente u2, y si j = m, entonces el valor calculado desde j? v + v1 es exactamente v2. Las siguientes funciones recuperan información relacionada con glEvalMesh:

glGet con GL_MAP1_GRID_DOMAIN de argumentos

glGet con GL_MAP2_GRID_DOMAIN de argumentos

glGet con GL_MAP1_GRID_SEGMENTS de argumentos

glGet con GL_MAP2_GRID_SEGMENTS de argumentos

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Gl.h
Biblioteca
Opengl32.lib
Archivo DLL
Opengl32.dll