Compartir a través de


Función glMap1f

Las funciones glMap1d y glMap1f definen un evaluador unidimensional.

Sintaxis

void WINAPI glMap1f(
         GLenum  target,
         GLfloat u1,
         GLfloat u2,
         GLint   stride,
         GLint   order,
   const GLfloat *points
);

Parámetros

Destino

Tipo de valores generados por el evaluador. Constantes simbólicas. 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. Puede suponer que uno de los nueve valores predefinidos.

Value Significado
GL_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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 glEvalCoord1, a u^, la variable que evalúa las ecuaciones especificadas por este comando.

u2

Asignación lineal de u, tal como se presenta a glEvalCoord1, a u^, la variable que evalúa las ecuaciones especificadas por este comando.

Paso

Número de floats o doubles entre el principio de un punto de control y el principio del siguiente en la estructura de datos a la que se hace referencia en puntos. 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.

order

Número de puntos de control. 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.
GL_INVALID_VALUE
el intervalo era menor que el número de valores de un punto de control.
GL_INVALID_VALUE
el orden 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 fases posteriores 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. Estos incluyen casi todos los splines usados en gráficos informáticos, como B-splines, curvas Bezier, splines Hermite, etc.

Los evaluadores definen curvas basadas en polinomios bernstein. Definir p () como

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

donde Ri es un punto de control y () es el polinomial bernstein de grado n (orden =n + 1):

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

Recuerde que

Ecuaciones que muestran la equivalencia a 1.

La función glMap1 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. La función glEvalCoord1 evalúa los mapas unidimensionales que están habilitados. Cuando glEvalCoord1 presenta un valor u, las funciones bernstein se evalúan mediante u^, donde

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

Los parámetros stride, order 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. El parámetro order es el número de puntos de control de la matriz. El parámetro stride indica cuántas ubicaciones flotantes o dobles avanzarán el puntero de memoria interna para alcanzar el siguiente punto de control.

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

Las siguientes funciones recuperan información relacionada con glMap1:

glGet con GL_MAX_EVAL_ORDER de argumentos

glGetMap

glIsEnabled con GL_MAP1_VERTEX_3 de argumentos

glIsEnabled con GL_MAP1_VERTEX_4 de argumentos

glIsEnabled con GL_MAP1_INDEX de argumentos

glIsEnabled con GL_MAP1_COLOR_4 de argumentos

glIsEnabled con el argumento GL_MAP1_NORMAL

glIsEnabled con GL_MAP1_TEXTURE_COORD_1 de argumentos

glIsEnabled con GL_MAP1_TEXTURE_COORD_2 de argumentos

glIsEnabled con GL_MAP1_TEXTURE_COORD_3 de argumentos

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

glMap2

glMapGrid

glNormal

glTexCoord

glVertex