glMap2f, fonction
Les fonctions glMap2d et glMap2f définissent un évaluateur à deux dimensions.
Syntaxe
void WINAPI glMap2f(
GLenum target,
GLfloat u1,
GLfloat u2,
GLint ustride,
GLint uorder,
GLfloat v1,
GLfloat v2,
GLint vstride,
GLint vorder,
const GLfloat *points
);
Paramètres
-
cible
-
Type de valeurs générées par l’évaluateur. Les constantes symboliques suivantes sont acceptées.
Valeur Signification - GL_MAP2_VERTEX_3
Chaque point de contrôle est trois valeurs à virgule flottante représentant x, y et z. Les commandes glVertex3 internes sont générées lors de l’évaluation de la carte. - GL_MAP2_VERTEX_4
Chaque point de contrôle est quatre valeurs à virgule flottante représentant x, y, z et w. Les commandes glVertex4 internes sont générées lors de l’évaluation de la carte. - GL_MAP2_INDEX
Chaque point de contrôle est une valeur à virgule flottante unique représentant un index de couleur. Les commandes glIndex internes sont générées lors de l’évaluation de la carte. Toutefois, l’index actuel n’est pas mis à jour avec la valeur de ces commandes glIndex . - GL_MAP2_COLOR_4
Chaque point de contrôle est quatre valeurs à virgule flottante représentant le rouge, le vert, le bleu et l’alpha. Les commandes glColor4 internes sont générées lors de l’évaluation de la carte. Toutefois, la couleur actuelle n’est pas mise à jour avec la valeur de ces commandes glColor4 . - GL_MAP2_NORMAL
Chaque point de contrôle est trois valeurs à virgule flottante représentant les composants x, y et z d’un vecteur normal. Les commandes glNormal internes sont générées lors de l’évaluation de la carte. Toutefois, la normale actuelle n’est pas mise à jour avec la valeur de ces commandes glNormal . - GL_MAP2_TEXTURE_COORD_1
Chaque point de contrôle est une valeur à virgule flottante unique représentant la coordonnée de texture s . Les commandes glTexCoord1 internes sont générées lors de l’évaluation de la carte. Toutefois, les coordonnées de texture actuelles ne sont pas mises à jour avec la valeur de ces commandes glTexCoord . - GL_MAP2_TEXTURE_COORD_2
Chaque point de contrôle est deux valeurs à virgule flottante représentant les coordonnées de texture s et t . Les commandes glTexCoord2 internes sont générées lors de l’évaluation de la carte. Toutefois, les coordonnées de texture actuelles ne sont pas mises à jour avec la valeur de ces commandes glTexCoord . - GL_MAP2_TEXTURE_COORD_3
Chaque point de contrôle est trois valeurs à virgule flottante représentant les coordonnées de texture s, t et r . Les commandes glTexCoord3 internes sont générées lors de l’évaluation de la carte. Toutefois, les coordonnées de texture actuelles ne sont pas mises à jour avec la valeur de ces commandes glTexCoord . - GL_MAP2_TEXTURE_COORD_4
Chaque point de contrôle est quatre valeurs à virgule flottante représentant les coordonnées de texture s, t, r et q . Les commandes glTexCoord4 internes sont générées lors de l’évaluation de la carte. Toutefois, les coordonnées de texture actuelles ne sont pas mises à jour avec la valeur de ces commandes glTexCoord . -
u1
-
Mappage linéaire de u, tel que présenté à glEvalCoord2, à u^, l’une des deux variables évaluées par les équations spécifiées par cette commande.
-
u2
-
Mappage linéaire de u, tel que présenté à glEvalCoord2, à u^, l’une des deux variables évaluées par les équations spécifiées par cette commande.
-
ustride
-
Nombre de virgules ou de doubles entre le début du point de contrôle Rij et le début du point de contrôle R(i\ +1\ )\ j, où i et j sont les index de points de contrôle u et v , respectivement. Cela permet aux points de contrôle d’être incorporés dans des structures de données arbitraires. La seule contrainte est que les valeurs d’un point de contrôle particulier doivent occuper des emplacements de mémoire contigus.
-
uorder
-
Dimension du tableau de points de contrôle dans l’axe U. Doit être positif.
-
v1
-
Mappage linéaire de v, tel que présenté à glEvalCoord2, à v^, l’une des deux variables évaluées par les équations spécifiées par cette commande.
-
v2
-
Mappage linéaire de v, tel que présenté à glEvalCoord2, à v^, l’une des deux variables évaluées par les équations spécifiées par cette commande.
-
vstride
-
Nombre de valeurs flottantes ou doubles entre le début du point de contrôle Rij et le début du point de contrôle Ri(j\ +1\ ), où i et j sont les index de points de contrôle u et v , respectivement. Cela permet aux points de contrôle d’être incorporés dans des structures de données arbitraires. La seule contrainte est que les valeurs d’un point de contrôle particulier doivent occuper des emplacements de mémoire contigus.
-
vorder
-
Dimension du tableau de points de contrôle dans l’axe V. Doit être positif.
-
Points
-
Pointeur vers le tableau de points de contrôle.
Valeur renvoyée
Cette fonction ne retourne pas de valeur.
Codes d’erreur
Les codes d’erreur suivants peuvent être récupérés par la fonction glGetError .
Name | Signification |
---|---|
|
target n’était pas une valeur acceptée. |
|
u1 était égal à u2, ou v1 était égal à v2. |
|
Ustride ou vstride était inférieur au nombre de valeurs dans un point de contrôle. |
|
Uorder ou vorder était inférieur à un ou GL_MAX_EVAL_ORDER. |
|
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd. |
Notes
Les évaluateurs offrent un moyen d’utiliser le mappage polynôme ou polynôme rationnel pour produire des sommets, des normales, des coordonnées de texture et des couleurs. Les valeurs produites par un évaluateur sont envoyées à d’autres étapes de traitement OpenGL comme si elles avaient été présentées à l’aide des commandes glVertex, glNormal, glTexCoord et glColor , sauf que les valeurs générées ne mettent pas à jour la normale, les coordonnées de texture ou la couleur actuelles.
Toutes les splines polynomiales ou polynomiales rationnelles de n’importe quel degré (jusqu’au degré maximal pris en charge par l’implémentation OpenGL) peuvent être décrites à l’aide d’évaluateurs. Il s’agit de presque toutes les surfaces utilisées dans l’infographie, y compris les surfaces B-spline, les surfaces NURBS, les surfaces de Bézier, etc.
Les évaluateurs définissent des surfaces basées sur des polynômes bernstein bivarié. Définir p (u^,v^) comme
où Rij est un point de contrôle, () est le ièmepolynôme bernstein de degré
n (uorder = n + 1)
and () est le jth Bernstein polynomial de degré m (vorder = m + 1)
Rappelez-vous que
La fonction glMap2 est utilisée pour définir la base et spécifier le type de valeurs produites. Une fois définie, une carte peut être activée et désactivée en appelant glEnable et glDisable avec le nom de la carte, l’une des neuf valeurs prédéfinies pour la cible, décrites ci-dessus. Lorsque glEvalCoord2 présente des valeurs u et v, les polynômes bernstein bivariés sont évalués à l’aide de u^ et v^, où
et
Le paramètre cible est une constante symbolique qui indique le type de points de contrôle fournis en points et la sortie générée lors de l’évaluation de la carte.
Les paramètres ustride, uorder, vstride, vorder et points définissent l’adressage de tableau pour accéder aux points de contrôle. Le paramètre points est l’emplacement du premier point de contrôle, qui occupe un, deux, trois ou quatre emplacements de mémoire contigus, en fonction de la carte définie. Il existe des points de contrôle uorder x vorder dans le tableau. Le paramètre ustride indique le nombre d’emplacements float ou doubles ignorés pour faire avancer le pointeur de mémoire interne du point de contrôle Rij au point de contrôle R(\ i+1\ )j. Le paramètre vstride indique le nombre d’emplacements float ou doubles ignorés pour faire avancer le pointeur de mémoire interne du point de contrôle Rij au point de contrôle Ri(j\ +1\ ).
Comme c’est le cas avec toutes les commandes OpenGL qui acceptent des pointeurs vers des données, c’est comme si le contenu des points avait été copié par glMap2 avant qu’il ne soit retourné. Les modifications apportées au contenu des points n’ont aucun effet après l’appel de glMap2 .
Les fonctions suivantes récupèrent des informations relatives à glMap2 :
glGet avec argument GL_MAX_EVAL_ORDER
glIsEnabled avec argument GL_MAP2_VERTEX_3
glIsEnabled avec argument GL_MAP2_VERTEX_4
glIsEnabled avec argument GL_MAP2_INDEX
glIsEnabled avec argument GL_MAP2_COLOR_4
glIsEnabled avec argument GL_MAP2_NORMAL
glIsEnabled avec argument GL_MAP2_TEXTURE_COORD_1
glIsEnabled avec argument GL_MAP2_TEXTURE_COORD_2
glIsEnabled avec argument GL_MAP2_TEXTURE_COORD_3
glIsEnabled avec argument GL_MAP2_TEXTURE_COORD_4
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows 2000 Server [applications de bureau uniquement] |
En-tête |
|
Bibliothèque |
|
DLL |
|