Función glMap2f
Las funciones glMap2d y glMap2f definen un evaluador bidimensional.
void WINAPI glMap2f(
GLenum target,
GLfloat u1,
GLfloat u2,
GLint ustride,
GLint uorder,
GLfloat v1,
GLfloat v2,
GLint vstride,
GLint vorder,
const GLfloat *points
);
-
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.
Esta función no devuelve ningún valor.
La función glGetError puede recuperar los siguientes códigos de error.
Nombre | Significado |
---|---|
|
target no era un valor aceptado. |
|
u1 era igual a u2, o v1 era igual a v2. |
|
Ustride o vstride era menor que el número de valores de un punto de control. |
|
Uorder o vorder era menor que uno o GL_MAX_EVAL_ORDER. |
|
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd. |
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
donde Rij es un punto de control, () es el polinomial ith Bernstein de grado
n (uorder = n + 1)
y () es el polinomial jbernstein de grado m (vorder = m + 1)
Recuerde que
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
y
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
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
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 |
|
Biblioteca |
|
Archivo DLL |
|