funzione glMap1f

Le funzioni glMap1d e glMap1f definiscono un analizzatore unidimensionale.

Sintassi

void WINAPI glMap1f(
         GLenum  target,
         GLfloat u1,
         GLfloat u2,
         GLint   stride,
         GLint   order,
   const GLfloat *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 glVertex4 interni 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 glTexCoord1 interni vengono generati quando viene valutata la mappa. Tuttavia, le coordinate della trama correnti 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 glTexCoord2 interni vengono generati quando viene valutata la mappa. Tuttavia, le coordinate della trama correnti 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 di trama s, t e r . I comandi glTexCoord3 interni vengono generati quando viene valutata la mappa. Tuttavia, le coordinate della trama correnti 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 di trama s, t, r e q . I comandi glTexCoord4 interni vengono generati quando viene valutata la mappa. Tuttavia, le coordinate della trama correnti 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 float o doppie tra l'inizio di un punto di controllo e l'inizio del successivo nella struttura di dati a cui fa riferimento in punti. In questo modo, i punti di controllo devono essere incorporati in strutture di dati arbitrarie. L'unico vincolo è che i valori per un determinato 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 è stato accettato.
GL_INVALID_VALUE
u1 è uguale a u2.
GL_INVALID_VALUE
stride è 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 offrono un modo per usare il mapping polinomiale o razionale per produrre vertici, normali, coordinate della trama e colori. I valori prodotti da un analizzatore vengono inviati a ulteriori fasi dell'elaborazione OpenGL come se fossero stati presentati usando glVertex, glNormal, glTexCoord e glColor , ad eccezione del fatto che i valori generati non aggiornano la normale, le coordinate della trama o il colore correnti.

È possibile descrivere tutti gli spline polinomiali o razionali di qualsiasi grado (fino al grado massimo supportato dall'implementazione openGL). Questi includono quasi tutte le spline usate nella grafica computer, tra cui B-splines, curve bezier, spline hermite e così via.

Gli analizzatori definiscono le curve basate sui polinomial di Bernstein. Definire p () come

Equazione che mostra la definizione di p ().

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

Equazione che mostra il polinomio bernstein di grado n.

Ricordare 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 definito, 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 accedere ai punti di controllo. Il parametro punti è 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 doppie per avanzare il puntatore alla memoria interna 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