Função glMap1f

As funções glMap1d e glMap1f definem um avaliador unidimensional.

Sintaxe

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

Parâmetros

destino

O tipo de valores gerados pelo avaliador. Constantes simbólicas. O parâmetro de destino é uma constante simbólica que indica que tipo de pontos de controle são fornecidos em pontos e qual saída é gerada quando o mapa é avaliado. Ele pode assumir um dos nove valores predefinidos.

Valor Significado
GL_MAP1_VERTEX_3
Cada ponto de controle tem três valores de ponto flutuante que representam x, y e z. Os comandos glVertex3 internos são gerados quando o mapa é avaliado.
GL_MAP1_VERTEX_4
Cada ponto de controle tem quatro valores de ponto flutuante que representam x, y, z e w. Os comandos glVertex4 internos são gerados quando o mapa é avaliado.
GL_MAP1_INDEX
Cada ponto de controle é um único valor de ponto flutuante que representa um índice de cores. Comandos glIndex internos são gerados quando o mapa é avaliado. No entanto, o índice atual não é atualizado com o valor desses comandos glIndex .
GL_MAP1_COLOR_4
Cada ponto de controle tem quatro valores de ponto flutuante que representam vermelho, verde, azul e alfa. Comandos glColor4 internos são gerados quando o mapa é avaliado. No entanto, a cor atual não é atualizada com o valor desses comandos glColor4 .
GL_MAP1_NORMAL
Cada ponto de controle é três valores de ponto flutuante que representam os componentes x, y e z de um vetor normal. Comandos glNormal internos são gerados quando o mapa é avaliado. No entanto, o normal atual não é atualizado com o valor desses comandos glNormal .
GL_MAP1_TEXTURE_COORD_1
Cada ponto de controle é um único valor de ponto flutuante que representa a coordenada de textura s . Os comandos glTexCoord1 internos são gerados quando o mapa é avaliado. No entanto, as coordenadas de textura atuais não são atualizadas com o valor desses comandos glTexCoord .
GL_MAP1_TEXTURE_COORD_2
Cada ponto de controle é dois valores de ponto flutuante que representam as coordenadas de textura s e t . Os comandos glTexCoord2 internos são gerados quando o mapa é avaliado. No entanto, as coordenadas de textura atuais não são atualizadas com o valor desses comandos glTexCoord .
GL_MAP1_TEXTURE_COORD_3
Cada ponto de controle tem três valores de ponto flutuante que representam as coordenadas de textura s, t e r . Os comandos glTexCoord3 internos são gerados quando o mapa é avaliado. No entanto, as coordenadas de textura atuais não são atualizadas com o valor desses comandos glTexCoord .
GL_MAP1_TEXTURE_COORD_4
Cada ponto de controle tem quatro valores de ponto flutuante que representam as coordenadas de textura s, t, r e q . Os comandos glTexCoord4 internos são gerados quando o mapa é avaliado. No entanto, as coordenadas de textura atuais não são atualizadas com o valor desses comandos glTexCoord .

u1

Um mapeamento linear de u, conforme apresentado a glEvalCoord1, para u^, a variável avaliada pelas equações especificadas por esse comando.

u2

Um mapeamento linear de u, conforme apresentado a glEvalCoord1, para u^, a variável avaliada pelas equações especificadas por esse comando.

Passo

O número de floats ou duplos entre o início de um ponto de controle e o início do próximo na estrutura de dados referenciada em pontos. Isso permite que os pontos de controle sejam inseridos em estruturas de dados arbitrárias. A única restrição é que os valores de um determinado ponto de controle devem ocupar locais de memória contíguos.

order

O número de pontos de controle. Deve ser positivo.

points

Um ponteiro para a matriz de pontos de controle.

Retornar valor

Essa função não retorna um valor.

Códigos de erro

Os códigos de erro a seguir podem ser recuperados pela função glGetError .

Nome Significado
GL_INVALID_ENUM
target não era um valor aceito.
GL_INVALID_VALUE
u1 era igual a u2.
GL_INVALID_VALUE
stride foi menor que o número de valores em um ponto de controle.
GL_INVALID_VALUE
ordem era menor que um ou GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

Os avaliadores fornecem uma maneira de usar o mapeamento polinomial ou polinomial racional para produzir vértices, normais, coordenadas de textura e cores. Os valores produzidos por um avaliador são enviados para outros estágios do processamento OpenGL, assim como se tivessem sido apresentados usando comandos glVertex, glNormal, glTexCoord e glColor , exceto que os valores gerados não atualizam as coordenadas normais, de textura ou de cor atuais.

Todas as splines polinomial ou racional polinomial de qualquer grau (até o grau máximo suportado pela implementação do OpenGL) podem ser descritas usando avaliadores. Elas incluem quase todas as splines usadas em computação gráfica, incluindo B-splines, curvas de Bézier, splines hermite e assim por diante.

Os avaliadores definem curvas com base em polinômios de Bernstein. Definir p () como

Equação mostrando a definição de p ().

em que Ri é um ponto de controle e () é o i o polinomial bernstein de grau n (ordem =n + 1):

Equação mostrando o polinomial bernstein do grau n.

Lembre-se de que

Equações mostrando equivalência como 1.

A função glMap1 é usada para definir a base e especificar que tipo de valores são produzidos. Depois de definido, um mapa pode ser habilitado e desabilitado chamando glEnable e glDisable com o nome do mapa, um dos nove valores predefinidos para o destino descrito acima. A função glEvalCoord1 avalia os mapas unidimensionais habilitados. Quando glEvalCoord1 apresenta um valor u, as funções de Bernstein são avaliadas usando u^, em que

Equação mostrando a definição de você^.

Os parâmetros stride, order e points definem o endereçamento de matriz para acessar os pontos de controle. O parâmetro points é o local do primeiro ponto de controle, que ocupa um, dois, três ou quatro locais de memória contíguos, dependendo de qual mapa está sendo definido. O parâmetro order é o número de pontos de controle na matriz. O parâmetro stride informa quantos locais float ou double para avançar o ponteiro de memória interna para alcançar o próximo ponto de controle.

Como é o caso de todos os comandos OpenGL que aceitam ponteiros para dados, é como se o conteúdo dos pontos fosse copiado por glMap1 antes de retornar. As alterações no conteúdo dos pontos não têm efeito depois que glMap1 é chamado.

As seguintes funções recuperam informações relacionadas ao glMap1:

glGet com GL_MAX_EVAL_ORDER de argumento

glGetMap

glIsEnabled com GL_MAP1_VERTEX_3 de argumento

glIsEnabled com argumento GL_MAP1_VERTEX_4

glIsEnabled com argumento GL_MAP1_INDEX

glIsEnabled com argumento GL_MAP1_COLOR_4

glIsEnabled com argumento GL_MAP1_NORMAL

glIsEnabled com argumento GL_MAP1_TEXTURE_COORD_1

glIsEnabled com argumento GL_MAP1_TEXTURE_COORD_2

glIsEnabled com argumento GL_MAP1_TEXTURE_COORD_3

glIsEnabled com argumento GL_MAP1_TEXTURE_COORD_4

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Gl.h
Biblioteca
Opengl32.lib
DLL
Opengl32.dll

Confira também

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap2

glMapGrid

glNormal

glTexCoord

glVertex