funzione glMap1f
Le funzioni glMap1d e glMap1f definiscono un analizzatore unidimensionale.
void WINAPI glMap1f(
GLenum target,
GLfloat u1,
GLfloat u2,
GLint stride,
GLint order,
const GLfloat *points
);
-
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.
Questa funzione non restituisce un valore.
I codici di errore seguenti possono essere recuperati dalla funzione glGetError .
Nome | Significato |
---|---|
|
target non è stato accettato. |
|
u1 è uguale a u2. |
|
stride è minore del numero di valori in un punto di controllo. |
|
l'ordine era minore di uno o GL_MAX_EVAL_ORDER. |
|
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd. |
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
dove Ri è un punto di controllo e () è il polinomio di Bernstein di grado n (ordine =n + 1):
Ricordare che
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
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
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
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
Libreria |
|
DLL |
|