Compartir a través de


Función glMap2f

Las funciones glMap2d y glMap2f definen un evaluador bidimensional.

Sintaxis

void WINAPI glMap2f(
         GLenum  target,
         GLfloat u1,
         GLfloat u2,
         GLint   ustride,
         GLint   uorder,
         GLfloat v1,
         GLfloat v2,
         GLint   vstride,
         GLint   vorder,
   const GLfloat *points
);

Parámetros

Destino

Tipo de valores generados por el evaluador. Se aceptan las siguientes constantes simbólicas.

Value Significado
GL_MAP2_VERTEX_3
Cada punto de control es tres valores de punto flotante que representan x, y y z. Los comandos glVertex3 internos se generan cuando se evalúa el mapa.
GL_MAP2_VERTEX_4
Cada punto de control es cuatro valores de punto flotante que representan x, y, z y w. Los comandos glVertex4 internos se generan cuando se evalúa el mapa.
GL_MAP2_INDEX
Cada punto de control es un único valor de punto flotante que representa un índice de color. Los comandos glIndex internos se generan cuando se evalúa el mapa. Sin embargo, el índice actual no se actualiza con el valor de estos comandos glIndex .
GL_MAP2_COLOR_4
Cada punto de control es de cuatro valores de punto flotante que representan rojo, verde, azul y alfa. Los comandos glColor4 internos se generan cuando se evalúa el mapa. Sin embargo, el color actual no se actualiza con el valor de estos comandos glColor4 .
GL_MAP2_NORMAL
Cada punto de control es tres valores de punto flotante que representan los componentes x, y y z de un vector normal. Los comandos glNormal internos se generan cuando se evalúa el mapa. Sin embargo, la normal actual no se actualiza con el valor de estos comandos glNormal .
GL_MAP2_TEXTURE_COORD_1
Cada punto de control es un valor de punto flotante único que representa la coordenada de textura de . Los comandos internos glTexCoord1 se generan cuando se evalúa el mapa. Sin embargo, las coordenadas de textura actuales no se actualizan con el valor de estos comandos glTexCoord .
GL_MAP2_TEXTURE_COORD_2
Cada punto de control es dos valores de punto flotante que representan las coordenadas de textura s y t . Los comandos internos glTexCoord2 se generan cuando se evalúa el mapa. Sin embargo, las coordenadas de textura actuales no se actualizan con el valor de estos comandos glTexCoord .
GL_MAP2_TEXTURE_COORD_3
Cada punto de control es tres valores de punto flotante que representan las coordenadas de textura s, t y r . Los comandos internos glTexCoord3 se generan cuando se evalúa el mapa. Sin embargo, las coordenadas de textura actuales no se actualizan con el valor de estos comandos glTexCoord .
GL_MAP2_TEXTURE_COORD_4
Cada punto de control es cuatro valores de punto flotante que representan las coordenadas de textura s, t, r y q . Los comandos internos glTexCoord4 se generan cuando se evalúa el mapa. Sin embargo, las coordenadas de textura actuales no se actualizan con el valor de estos comandos glTexCoord .

u1

Asignación lineal de u, tal como se presenta a glEvalCoord2, a u^, una de las dos variables que evalúa las ecuaciones especificadas por este comando.

u2

Asignación lineal de u, tal como se presenta a glEvalCoord2, a u^, una de las dos variables que evalúa las ecuaciones especificadas por este comando.

ustride

Número de floats o doubles entre el principio del punto de control Rij y el principio del punto de control R(i\ +1\ )\ j, donde i y j son los índices de punto de control u y v , respectivamente. Esto permite insertar puntos de control en estructuras de datos arbitrarias. La única restricción es que los valores de un punto de control determinado deben ocupar ubicaciones de memoria contiguas.

uorder

Dimensión de la matriz de puntos de control en el eje U. Debe ser positivo.

v1

Asignación lineal de v, tal como se presenta a glEvalCoord2, a v^, una de las dos variables que evalúa las ecuaciones especificadas por este comando.

v2

Asignación lineal de v, tal como se presenta a glEvalCoord2, a v^, una de las dos variables que evalúa las ecuaciones especificadas por este comando.

vstride

Número de floats o doubles entre el principio del punto de control Rij y el principio del punto de control Ri(j\ +1\ ), donde i y j son los índices de punto de control u y v , respectivamente. Esto permite insertar puntos de control en estructuras de datos arbitrarias. La única restricción es que los valores de un punto de control determinado deben ocupar ubicaciones de memoria contiguas.

vorder

Dimensión de la matriz de puntos de control en el eje v. Debe ser positivo.

points

Puntero a la matriz de puntos de control.

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
target no era un valor aceptado.
GL_INVALID_VALUE
u1 era igual a u2, o v1 era igual a v2.
GL_INVALID_VALUE
Ustride o vstride era menor que el número de valores de un punto de control.
GL_INVALID_VALUE
Uorder o vorder era menor que uno o GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd.

Comentarios

Los evaluadores proporcionan una manera de usar la asignación polinómica o racional polinómica para producir vértices, normales, coordenadas de textura y colores. Los valores generados por un evaluador se envían a otras fases del procesamiento de OpenGL, como si se hubieran presentado mediante comandos glVertex, glNormal, glTexCoord y glColor , salvo que los valores generados no actualizan las coordenadas normales, de textura o de color actuales.

Todas las splines polinómicas o polinómicas racionales de cualquier grado (hasta el grado máximo admitido por la implementación de OpenGL) se pueden describir mediante evaluadores. Entre ellas se incluyen casi todas las superficies usadas en gráficos informáticos, como superficies B-spline, superficies NURBS, superficies Bezier, etc.

Los evaluadores definen superficies basadas en polinomiales de Bernstein bivariante. Definir p (u^,v^) como

Ecuación que muestra la definición de p ().

donde Rij es un punto de control, () es el polinomial ith Bernstein de grado

n (uorder = n + 1)

Ecuación que muestra el polinomial bernstein de grado n.

y () es el polinomial jbernstein de grado m (vorder = m + 1)

Ecuación que muestra el polinomial bernstein de grado m.

Recuerde que

Ecuaciones que muestran la equivalencia a 1.

La función glMap2 se usa para definir la base y para especificar qué tipo de valores se generan. Una vez definido, se puede habilitar y deshabilitar un mapa llamando a glEnable y glDisable con el nombre del mapa, uno de los nueve valores predefinidos para el destino, descrito anteriormente. Cuando glEvalCoord2 presenta los valores u y v, los polinomiales de Bernstein bivariante se evalúan mediante u^ y v^, donde

Ecuación que muestra la definición de you^.

y

Ecuación que muestra la definición de v^.

El parámetro de destino es una constante simbólica que indica qué tipo de puntos de control se proporcionan en puntos y qué salida se genera cuando se evalúa el mapa.

Los parámetros ustride, uorder, vstride, vorder y points definen el direccionamiento de matriz para acceder a los puntos de control. El parámetro points es la ubicación del primer punto de control, que ocupa una, dos, tres o cuatro ubicaciones de memoria contiguas, dependiendo de la definición del mapa. Hay puntos de control uorder x vorder en la matriz. El parámetro ustride indica cuántas ubicaciones flotantes o dobles se omiten para avanzar el puntero de memoria interna desde el punto de control Rij al punto de control R(\ i+1\ )j. El parámetro vstride indica cuántas ubicaciones flotantes o dobles se omiten para avanzar el puntero de memoria interna desde el punto de control Rij al punto de control Ri(j\ +1\ ).

Como sucede con todos los comandos de OpenGL que aceptan punteros a datos, es como si glMap2 copiase el contenido de los puntos antes de que se devolva. Los cambios en el contenido de los puntos no tienen ningún efecto después de llamar a glMap2 .

Las siguientes funciones recuperan información relacionada con glMap2:

glGet con GL_MAX_EVAL_ORDER de argumentos

glGetMap

glIsEnabled con GL_MAP2_VERTEX_3 de argumentos

glIsEnabled con GL_MAP2_VERTEX_4 de argumentos

glIsEnabled con GL_MAP2_INDEX de argumentos

glIsEnabled con el argumento GL_MAP2_COLOR_4

glIsEnabled con GL_MAP2_NORMAL de argumentos

glIsEnabled con GL_MAP2_TEXTURE_COORD_1 de argumentos

glIsEnabled con GL_MAP2_TEXTURE_COORD_2 de argumentos

glIsEnabled con GL_MAP2_TEXTURE_COORD_3 de argumentos

glIsEnabled con GL_MAP2_TEXTURE_COORD_4 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

Consulte también

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap1

glMapGrid

glNormal

glTexCoord

glVertex