Share via


funzione glMap1d

Le funzioni glMap1d e glMap1f definiscono un analizzatore unidimensionale.

Sintassi

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

Parametri

target

Tipo di valori generati dall'analizzatore. Costanti simboliche. Il parametro di destinazione è una costante simbolica che indica il tipo di punti di controllo forniti in punti e l'output generato quando viene valutata la mappa. Può presupporre uno dei nove valori predefiniti.

Valore Significato
GL_MAP1_VERTEX_3
Ogni punto di controllo è costituito da tre valori a virgola mobile che rappresentano x, y e z. I comandi glVertex3 interni vengono generati quando viene valutata la mappa.
GL_MAP1_VERTEX_4
Ogni punto di controllo è costituito da quattro valori a virgola mobile che rappresentano x, y, z e w. I comandi interni glVertex4 vengono generati quando viene valutata la mappa.
GL_MAP1_INDEX
Ogni punto di controllo è un singolo valore a virgola mobile che rappresenta un indice di colore. I comandi glIndex interni vengono generati quando viene valutata la mappa. Tuttavia, l'indice corrente non viene aggiornato con il valore di questi comandi glIndex .
GL_MAP1_COLOR_4
Ogni punto di controllo è costituito da quattro valori a virgola mobile che rappresentano rosso, verde, blu e alfa. I comandi glColor4 interni vengono generati quando viene valutata la mappa. Tuttavia, il colore corrente non viene aggiornato con il valore di questi comandi glColor4 .
GL_MAP1_NORMAL
Ogni punto di controllo è costituito da tre valori a virgola mobile che rappresentano i componenti x, y e z di un vettore normale. I comandi glNormal interni vengono generati quando viene valutata la mappa. Tuttavia, la normale corrente non viene aggiornata con il valore di questi comandi glNormal .
GL_MAP1_TEXTURE_COORD_1
Ogni punto di controllo è un singolo valore a virgola mobile che rappresenta la coordinata della trama. I comandi interni glTexCoord1 vengono generati quando viene valutata la mappa. Tuttavia, le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord .
GL_MAP1_TEXTURE_COORD_2
Ogni punto di controllo è costituito da due valori a virgola mobile che rappresentano le coordinate della trama s e t . I comandi interni glTexCoord2 vengono generati quando viene valutata la mappa. Tuttavia, le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord .
GL_MAP1_TEXTURE_COORD_3
Ogni punto di controllo è costituito da tre valori a virgola mobile che rappresentano le coordinate della trama s, t e r . I comandi glTexCoord3 interni vengono generati quando la mappa viene valutata. Tuttavia, le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord .
GL_MAP1_TEXTURE_COORD_4
Ogni punto di controllo è costituito da quattro valori a virgola mobile che rappresentano le coordinate della trama s, t, r e q . I comandi interni glTexCoord4 vengono generati quando viene valutata la mappa. Tuttavia, le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord .

u1

Mapping lineare di u, come presentato a glEvalCoord1, a u^, la variabile valutata dalle equazioni specificate da questo comando.

u2

Mapping lineare di u, come presentato a glEvalCoord1, a u^, la variabile valutata dalle equazioni specificate da questo comando.

Passo

Numero di valori float o double tra l'inizio di un punto di controllo e l'inizio del successivo nella struttura dei dati a cui si fa riferimento in punti. In questo modo i punti di controllo possono essere incorporati in strutture di dati arbitrarie. L'unico vincolo è che i valori per un particolare punto di controllo devono occupare posizioni di memoria contigue.

order

Numero di punti di controllo. Deve essere positivo.

punti

Puntatore alla matrice di punti di controllo.

Valore restituito

Questa funzione non restituisce un valore.

Codici di errore

I codici di errore seguenti possono essere recuperati dalla funzione glGetError .

Nome Significato
GL_INVALID_ENUM
target non è un valore accettato.
GL_INVALID_VALUE
u1 era uguale a u2.
GL_INVALID_VALUE
stride era minore del numero di valori in un punto di controllo.
GL_INVALID_VALUE
l'ordine era minore di uno o GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Commenti

Gli analizzatori consentono di usare il mapping polinomiale o razionale polinomiale per produrre vertici, normali, coordinate di trama e colori. I valori prodotti da un analizzatore vengono inviati ad altre fasi dell'elaborazione OpenGL come se fossero stati presentati usando i comandi glVertex, glNormal, glTexCoord e glColor , ad eccezione del fatto che i valori generati non aggiornano la normale, le coordinate di trama o il colore correnti.

Tutte le spline polinomiali o razionali polinomiali di qualsiasi grado (fino al massimo grado supportato dall'implementazione openGL) possono essere descritte usando gli analizzatori. Questi includono quasi tutte le spline usate nella grafica informatica, tra cui B-splines, curve di Bezier, spline hermite e così via.

Gli analizzatori definiscono le curve in base ai polinomiali di Bernstein. Definire p () come

Equazione che mostra la definizione di p ().

dove Ri è un punto di controllo e () è il polinomio bernstein di grado n (ordine =n + 1):

Equazione che mostra il polinomio bernstein di grado n.

Tenere presente che

Equazioni che mostrano l'equivalenza a 1.

La funzione glMap1 viene usata per definire la base e per specificare il tipo di valori prodotti. Una volta definita, una mappa può essere abilitata e disabilitata chiamando glEnable e glDisable con il nome della mappa, uno dei nove valori predefiniti per la destinazione descritta in precedenza. La funzione glEvalCoord1 valuta le mappe unidimensionali abilitate. Quando glEvalCoord1 presenta un valore u, le funzioni Bernstein vengono valutate usando u^, dove

Equazione che mostra la definizione di you^.

I parametri stride, order e points definiscono l'indirizzamento della matrice per l'accesso ai punti di controllo. Il parametro points è la posizione del primo punto di controllo, che occupa uno, due, tre o quattro percorsi di memoria contigui, a seconda della mappa definita. Il parametro order è il numero di punti di controllo nella matrice. Il parametro stride indica il numero di posizioni float o double per far avanzare il puntatore di memoria interno per raggiungere il punto di controllo successivo.

Come accade con tutti i comandi OpenGL che accettano puntatori ai dati, è come se il contenuto dei punti fosse copiato da glMap1 prima che venga restituito. Le modifiche apportate al contenuto dei punti non hanno alcun effetto dopo la chiamata a glMap1 .

Le funzioni seguenti recuperano informazioni correlate a glMap1:

glGet con argomento GL_MAX_EVAL_ORDER

glGetMap

glIsEnabled con argomento GL_MAP1_VERTEX_3

glIsEnabled con argomento GL_MAP1_VERTEX_4

glIsEnabled con argomento GL_MAP1_INDEX

glIsEnabled con argomento GL_MAP1_COLOR_4

glIsEnabled con argomento GL_MAP1_NORMAL

glIsEnabled con argomento GL_MAP1_TEXTURE_COORD_1

glIsEnabled con argomento GL_MAP1_TEXTURE_COORD_2

glIsEnabled con argomento GL_MAP1_TEXTURE_COORD_3

glIsEnabled con argomento GL_MAP1_TEXTURE_COORD_4

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Gl.h
Libreria
Opengl32.lib
DLL
Opengl32.dll

Vedi anche

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap2

glMapGrid

glNormal

glTexCoord

glVertex