Função glMap1d
As funções glMap1d e glMap1f definem um avaliador unidimensional.
Sintaxe
void WINAPI glMap1d(
GLenum target,
GLdouble u1,
GLdouble u2,
GLint stride,
GLint order,
const GLdouble *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 |
---|---|
|
target não era um valor aceito. |
|
u1 era igual a u2. |
|
stride foi menor que o número de valores em um ponto de controle. |
|
ordem era menor que um ou GL_MAX_EVAL_ORDER. |
|
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
em que Ri é um ponto de controle e () é o i o polinomial bernstein de grau n (ordem =n + 1):
Lembre-se de que
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
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
glIsEnabled com GL_MAP1_VERTEX_3 de argumento
glIsEnabled com GL_MAP1_VERTEX_4 de argumento
glIsEnabled com GL_MAP1_INDEX de argumento
glIsEnabled com GL_MAP1_COLOR_4 de argumento
glIsEnabled com GL_MAP1_NORMAL de argumento
glIsEnabled com GL_MAP1_TEXTURE_COORD_1 de argumento
glIsEnabled com GL_MAP1_TEXTURE_COORD_2 de argumento
glIsEnabled com GL_MAP1_TEXTURE_COORD_3 de argumento
glIsEnabled com GL_MAP1_TEXTURE_COORD_4 de argumento
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 |
|
Biblioteca |
|
DLL |
|