glMap2d fonction)

Les fonctions glMap2d et glMap2f définissent un évaluateur à deux dimensions.

Syntaxe

void WINAPI glMap2d(
         GLenum   target,
         GLdouble u1,
         GLdouble u2,
         GLint    ustride,
         GLint    uorder,
         GLdouble v1,
         GLdouble v2,
         GLint    vstride,
         GLint    vorder,
   const GLdouble *points
);

Paramètres

cible

Type de valeurs générées par l’évaluateur. Les constantes symboliques suivantes sont acceptées.

Valeur Signification
Map2 du GL- _ _ 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 lorsque le mappage est évalué.
Map2 du GL- _ _ 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 lorsque le mappage est évalué.
_Index map2 _ GL
Chaque point de contrôle est une valeur à virgule flottante unique représentant un index de couleurs. Les commandes glIndex internes sont générées lorsque le mappage est évalué. Toutefois, l’index actuel n’est pas mis à jour avec la valeur de ces commandes glIndex .
Map2 GL- _ _ couleur _ 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 lorsque le mappage est évalué. La couleur actuelle n’est toutefois pas mise à jour avec la valeur de ces commandes glColor4 .
Map2 GL- _ _ 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 lorsque le mappage est évalué. Toutefois, la normale actuelle n’est pas mise à jour avec la valeur de ces commandes glNormal .
_Repère de _ texture map2 GL _ _ 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 lorsque le mappage est évalué. Toutefois, les coordonnées de texture actuelles ne sont pas mises à jour avec la valeur de ces commandes glTexCoord .
_Map2 de _ texture _ GL _ 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 lorsque le mappage est évalué. Toutefois, les coordonnées de texture actuelles ne sont pas mises à jour avec la valeur de ces commandes glTexCoord .
_Repère de _ texture map2 GL _ _ 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 lorsque le mappage est évalué. Toutefois, les coordonnées de texture actuelles ne sont pas mises à jour avec la valeur de ces commandes glTexCoord .
_Map2 de _ texture _ GL _ 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 lorsque le mappage est évalué. 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 qu’il est 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 qu’il est présenté à glEvalCoord2, à u^, l’une des deux variables évaluées par les équations spécifiées par cette commande.

ustride

Le nombre de valeurs float ou double entre le début du point de contrôle r IJ et le début du point de contrôle r (i \ + 1 ) \ j, où i et j sont les index du point de contrôle u et v , respectivement. Cela permet d’incorporer des points de contrôle 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 des États- Unis. Doit être positif.

v1

Mappage linéaire de v, tel que présenté à glEvalCoord2, vers 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, vers v^, l’une des deux variables évaluées par les équations spécifiées par cette commande.

vstride

Le nombre de valeurs float ou double entre le début du point de contrôle r IJ et le début du point de contrôle r i (j \ + 1 ), où i et j sont les index du point de contrôle u et v , respectivement. Cela permet d’incorporer des points de contrôle 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
_enum GL non valide _
la cible n’est pas une valeur acceptée.
_valeur non valide du GL _
U1 était égal à U2 ou v1 était égal à v2.
_valeur non valide du GL _
Ustride ou vstride était inférieur au nombre de valeurs dans un point de contrôle.
_valeur non valide du GL _
Uorder ou Vorder était inférieur à un ou un _ ordre d' _ évaluation Max GL _ .
_opération non valide du GL _
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd.

Remarques

Les évaluateurs offrent un moyen d’utiliser le mappage polynomial polynomial ou Rational polynomial pour produire des vertex, des normales, des coordonnées de texture et des couleurs. Les valeurs produites par un évaluateur sont envoyées aux étapes supplémentaires du traitement OpenGL comme si elles avaient été présentées à l’aide de commandes glVertex, glNormal, glTexCoordet glColor , à ceci près que les valeurs générées ne mettent pas à jour la couleur, les coordonnées de texture ou la normale actuelles.

Toutes les splines polynomiaux polynomiales ou rationnelles de tous les degrés (jusqu’au degré maximal pris en charge par l’implémentation OpenGL) peuvent être décrites à l’aide d’évaluateurs. Celles-ci incluent presque toutes les surfaces utilisées dans les graphiques informatiques, y compris les surfaces B-spline, les surfaces NURBS, les surfaces Bézier, etc.

Les évaluateurs définissent les surfaces en fonction des polynomiales bivariées Bernstein. Définir p (u^,v^) comme

Équation représentant la définition de p ().

R IJ est un point de contrôle, () est le Bernstein polynomial of degree

n (uorder = n + 1)

Équation représentant le polynomial Bernstein de degree n.

et () est le degré polynomial Bernstein de degré m (Vorder = m + 1)

Équation représentant le polynomial Bernstein de degree m.

Rappelez-vous que

Équations présentant l’équivalence à 1.

La fonction glMap2 est utilisée pour définir la base et spécifier le type de valeurs produites. Une fois défini, une carte peut être activée et désactivée en appelant glEnable et glDisable par le nom de la carte, l’une des neuf valeurs prédéfinies pour target, décrite ci-dessus. Quand glEvalCoord2 présente les valeurs u et v, les polynomiales bivariables Bernstein sont évalués à l’aide de u^ et v^, où

Équation représentant la définition de votre ^.

et

Équation représentant la définition de v ^.

Le paramètre target est une constante symbolique qui indique le type de points de contrôle fourni en points, ainsi que la sortie générée lorsque le mappage est évalué.

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 du mappage défini. Le tableau contient des points de contrôle uorder x Vorder . Le paramètre ustride indique le nombre d’emplacements à virgule flottante ou double à ignorer pour faire avancer le pointeur de mémoire interne du point de contrôle r IJ au point de contrôle r (\ i + 1 ) j. Le paramètre vstride indique le nombre d’emplacements à virgule flottante ou double à ignorer pour faire avancer le pointeur de mémoire interne du point de contrôle r IJ au point de contrôle ri (j \ + 1 ).

Comme c’est le cas pour toutes les commandes OpenGL qui acceptent des pointeurs vers des données, c’est comme si le contenu des points était copié par glMap2 avant d’être 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 les informations relatives à glMap2:

glGet avec l’argument de l' _ ordre d’évaluation Max GL _ _

glGetMap

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 _ couleur _ 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 _ repère _ 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
GL. h
Bibliothèque
Opengl32. lib
DLL
Opengl32.dll

Voir aussi

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap1

glMapGrid

glNormal

glTexCoord

glVertex