funzione glMap2f
Le funzioni glMap2d e glMap2f definiscono un analizzatore bidimensionale.
void WINAPI glMap2f(
GLenum target,
GLfloat u1,
GLfloat u2,
GLint ustride,
GLint uorder,
GLfloat v1,
GLfloat v2,
GLint vstride,
GLint vorder,
const GLfloat *points
);
-
target
-
Tipo di valori generati dall'analizzatore. Vengono accettate le costanti simboliche seguenti.
Valore Significato - GL_MAP2_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_MAP2_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_MAP2_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. L'indice corrente non viene aggiornato con il valore di questi comandi glIndex , tuttavia. - GL_MAP2_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. Il colore corrente non viene aggiornato con il valore di questi comandi glColor4 , tuttavia. - GL_MAP2_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. La normale corrente non viene aggiornata con il valore di questi comandi glNormal , tuttavia. - GL_MAP2_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. Le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord , tuttavia. - GL_MAP2_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. Le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord , tuttavia. - GL_MAP2_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. Le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord , tuttavia. - GL_MAP2_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. Le coordinate correnti della trama non vengono aggiornate con il valore di questi comandi glTexCoord , tuttavia. -
u1
-
Mapping lineare di u, come presentato a glEvalCoord2, a u^, una delle due variabili valutate dalle equazioni specificate da questo comando.
-
u2
-
Mapping lineare di u, come presentato a glEvalCoord2, a u^, una delle due variabili valutate dalle equazioni specificate da questo comando.
-
ustride
-
Numero di valori float o double tra l'inizio del punto di controllo Rij e l'inizio del punto di controllo R(i\ +1\ )\ )\ j, dove i e j sono rispettivamente gli indici dei punti di controllo u e v . 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.
-
uorder
-
Dimensione della matrice di punti di controllo nell'asse u. Deve essere positivo.
-
v1
-
Mapping lineare di v, come presentato a glEvalCoord2, a v^, una delle due variabili valutate dalle equazioni specificate da questo comando.
-
v2
-
Mapping lineare di v, come presentato a glEvalCoord2, a v^, una delle due variabili valutate dalle equazioni specificate da questo comando.
-
vstride
-
Numero di valori float o double tra l'inizio del punto di controllo Rij e l'inizio del punto di controllo Ri(j\ +1\ ), dove i e j sono rispettivamente gli indici dei punti di controllo u e v . 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.
-
vorder
-
Dimensione della matrice di punti di controllo nell'asse v. 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 è un valore accettato. |
|
u1 è uguale a u2 o v1 è uguale a v2. |
|
ustride o vstride è minore del numero di valori in un punto di controllo. |
|
Uorder o vorder 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 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 a ulteriori fasi dell'elaborazione OpenGL esattamente 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 corrente, 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 superfici usate nella grafica informatica, tra cui superfici B-spline, superfici NURBS, superfici Bezier e così via.
Gli analizzatori definiscono le superfici in base ai polinomiali di Bernstein bivariati. Definire p (u^,v^) come
dove Rij è un punto di controllo, () è il polinomio dibernstein
n (uorder = n + 1)
e () è il polinomio jBernstein di grado m (vorder = m + 1)
Ricordare che
La funzione glMap2 viene usata per definire la base e per specificare il tipo di valori prodotti. Dopo aver 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, descritto in precedenza. Quando glEvalCoord2 presenta valori u e v, i polinomiali di Bernstein bivariati vengono valutati usando u^ e v^, dove
e
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.
I parametri ustride, uorder, vstride, vorder e punti 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. Nella matrice sono presenti punti di controllo uorder x vorder . Il parametro ustride indica il numero di posizioni float o doppie ignorate per avanzare il puntatore di memoria interno dal punto di controllo Rij al punto di controllo R(\ i+1\ )j. Il parametro vstride indica il numero di posizioni float o doppie ignorate per avanzare il puntatore di memoria interno dal punto di controllo Rij al punto di controllo Ri(j\ +1\ ).
Come accade con tutti i comandi OpenGL che accettano puntatori ai dati, è come se il contenuto dei punti fosse copiato da glMap2 prima che venga restituito. Le modifiche apportate al contenuto dei punti non hanno effetto dopo che glMap2 viene chiamato.
Le funzioni seguenti recuperano informazioni correlate a glMap2:
glGet con argomento GL_MAX_EVAL_ORDER
glIsEnabled con argomento GL_MAP2_VERTEX_3
glIsEnabled con argomento GL_MAP2_VERTEX_4
glIsEnabled con argomento GL_MAP2_INDEX
glIsEnabled con argomento GL_MAP2_COLOR_4
glIsEnabled con argomento GL_MAP2_NORMAL
glIsEnabled con argomento GL_MAP2_TEXTURE_COORD_1
glIsEnabled con argomento GL_MAP2_TEXTURE_COORD_2
glIsEnabled con argomento GL_MAP2_TEXTURE_COORD_3
glIsEnabled con argomento GL_MAP2_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 |
|