Função glMap2d
As funções glMap2d e glMap2f definem um avaliador bidimensional.
void WINAPI glMap2d(
GLenum target,
GLdouble u1,
GLdouble u2,
GLint ustride,
GLint uorder,
GLdouble v1,
GLdouble v2,
GLint vstride,
GLint vorder,
const GLdouble *points
);
-
destino
-
O tipo de valores gerados pelo avaliador. As seguintes constantes simbólicas são aceitas.
Valor Significado - GL_MAP2_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_MAP2_VERTEX_4
Cada ponto de controle tem quatro valores de ponto flutuante que representam x, y, z e w. Comandos glVertex4 internos são gerados quando o mapa é avaliado. - GL_MAP2_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_MAP2_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_MAP2_NORMAL
Cada ponto de controle tem 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_MAP2_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_MAP2_TEXTURE_COORD_2
Cada ponto de controle tem 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_MAP2_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_MAP2_TEXTURE_COORD_4
Cada ponto de controle tem quatro valores de ponto flutuante que representam as coordenadas de textura s, t, r e q . 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 glEvalCoord2, para u^, uma das duas variáveis avaliadas pelas equações especificadas por esse comando.
-
u2
-
Um mapeamento linear de u, conforme apresentado a glEvalCoord2, para u^, uma das duas variáveis avaliadas pelas equações especificadas por esse comando.
-
ustride
-
O número de floats ou doubles entre o início do ponto de controle Rij e o início do ponto de controle R(i\ +1\ )\ j, em que i e j são os índices do ponto de controle u e v , respectivamente. Isso permite que os pontos de controle sejam inseridos em estruturas de dados arbitrárias. A única restrição é que os valores de um ponto de controle específico devem ocupar locais de memória contíguos.
-
uorder
-
A dimensão da matriz do ponto de controle no eixo u. Deve ser positivo.
-
v1
-
Um mapeamento linear de v, conforme apresentado a glEvalCoord2, para v^, uma das duas variáveis avaliadas pelas equações especificadas por esse comando.
-
v2
-
Um mapeamento linear de v, conforme apresentado a glEvalCoord2, para v^, uma das duas variáveis avaliadas pelas equações especificadas por esse comando.
-
vstride
-
O número de floats ou doubles entre o início do ponto de controle Rij e o início do ponto de controle Ri(j\ +1\ ), em que i e j são os índices de ponto de controle u e v , respectivamente. Isso permite que os pontos de controle sejam inseridos em estruturas de dados arbitrárias. A única restrição é que os valores de um ponto de controle específico devem ocupar locais de memória contíguos.
-
vorder
-
A dimensão da matriz do ponto de controle no eixo v. Deve ser positivo.
-
points
-
Um ponteiro para a matriz de pontos de controle.
Essa função não retorna um valor.
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 ou v1 era igual a v2. |
|
Ustride ou vstride era menor que o número de valores em um ponto de controle. |
|
Uorder ou vorder 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. |
Os avaliadores fornecem uma maneira de usar o mapeamento polinomial polinomial ou 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 os comandos glVertex, glNormal, glTexCoord e glColor , exceto que os valores gerados não atualizam o normal atual, as coordenadas de textura ou a cor.
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. Isso inclui quase todas as superfícies usadas em elementos gráficos de computação, incluindo superfícies B-spline, superfícies NURBS, superfícies de Bézier e assim por diante.
Os avaliadores definem superfícies com base em polinomiais bivariados de Bernstein. Definir p (u^,v^) como
onde Rij é um ponto de controle, () é o polinomial ibernstein de grau
n (uorder = n + 1)
e () é o polinomial jth Bernstein de grau m (vorder = m + 1)
Lembre-se de que
A função glMap2 é 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. Quando glEvalCoord2 apresenta valores u e v, os polinômios bivariados de Bernstein são avaliados usando u^ e v^, em que
e
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.
Os parâmetros ustride, uorder, vstride, vorder 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. Há pontos de controle uorder x vorder na matriz. O parâmetro ustride informa quantos locais float ou double são ignorados para avançar o ponteiro de memória interna do ponto de controle Rij para o ponto de controle R(\ i+1\ )j. O parâmetro vstride informa quantos locais float ou double são ignorados para avançar o ponteiro de memória interna do ponto de controle Rij para o ponto de controle Ri(j\ +1\ ).
Como é o caso de todos os comandos OpenGL que aceitam ponteiros para dados, é como se o conteúdo dos pontos fosse copiado pelo glMap2 antes de ser retornado. As alterações no conteúdo dos pontos não têm efeito depois que glMap2 é chamado.
As seguintes funções recuperam informações relacionadas ao glMap2:
glGet com GL_MAX_EVAL_ORDER de argumento
glIsEnabled com argumento GL_MAP2_VERTEX_3
glIsEnabled com argumento GL_MAP2_VERTEX_4
glIsEnabled com GL_MAP2_INDEX de argumento
glIsEnabled com argumento GL_MAP2_COLOR_4
glIsEnabled com GL_MAP2_NORMAL de argumento
glIsEnabled com argumento GL_MAP2_TEXTURE_COORD_1
glIsEnabled com argumento GL_MAP2_TEXTURE_COORD_2
glIsEnabled com argumento GL_MAP2_TEXTURE_COORD_3
glIsEnabled com argumento GL_MAP2_TEXTURE_COORD_4
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 |
|