Partager via


fonction glMap1f

Les fonctions glMap1d et glMap1f définissent un évaluateur unidimensionnel.

Syntaxe

void WINAPI glMap1f(
         GLenum  target,
         GLfloat u1,
         GLfloat u2,
         GLint   stride,
         GLint   order,
   const GLfloat *points
);

Paramètres

cible

Type de valeurs générées par l’évaluateur. Constantes symboliques. 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. Il peut supposer l’une des neuf valeurs prédéfinies.

Valeur Signification
GL_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_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é à glEvalCoord1, à u^, la variable évaluée par les équations spécifiées par cette commande.

u2

Mappage linéaire de u, tel que présenté à glEvalCoord1, à u^, la variable évaluée par les équations spécifiées par cette commande.

Foulée

Nombre de valeurs flottantes ou doubles entre le début d’un point de contrôle et le début du suivant dans la structure de données référencée en points. 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.

order

Nombre de points de contrôle. 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
GL_INVALID_ENUM
target n’était pas une valeur acceptée.
GL_INVALID_VALUE
u1 était égal à u2.
GL_INVALID_VALUE
stride était inférieur au nombre de valeurs dans un point de contrôle.
GL_INVALID_VALUE
l’ordre était inférieur à un ou GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
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 splines utilisées dans l’infographie, y compris les B-splines, les courbes de Bézier, les splines Hermite, etc.

Les évaluateurs définissent des courbes basées sur des polynômes de Bernstein. Définir p () comme

Équation montrant la définition de p ().

Ri est un point de contrôle et () est le polynôme de Bernstein de degré n (ordre =n + 1) :

Équation montrant le polynôme de Bernstein de degré n.

Rappelez-vous que

Équations montrant l’équivalence à 1.

La fonction glMap1 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. La fonction glEvalCoord1 évalue les mappages unidimensionnels activés. Lorsque glEvalCoord1 présente une valeur u, les fonctions Bernstein sont évaluées à l’aide de u^, où

Équation montrant la définition de vous^.

Les paramètres stride, order 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, selon la carte en cours de définition. Le paramètre order est le nombre de points de contrôle dans le tableau. Le paramètre stride indique le nombre d’emplacements float ou double pour avancer le pointeur de mémoire interne pour atteindre le point de contrôle suivant.

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 glMap1 avant qu’il ne soit retourné. Les modifications apportées au contenu des points n’ont aucun effet après l’appel de glMap1 .

Les fonctions suivantes récupèrent des informations relatives à glMap1 :

glGet avec GL_MAX_EVAL_ORDER d’arguments

glGetMap

glIsEnabled avec argument GL_MAP1_VERTEX_3

glIsEnabled avec argument GL_MAP1_VERTEX_4

glIsEnabled avec argument GL_MAP1_INDEX

glIsEnabled avec argument GL_MAP1_COLOR_4

glIsEnabled avec argument GL_MAP1_NORMAL

glIsEnabled avec argument GL_MAP1_TEXTURE_COORD_1

glIsEnabled avec argument GL_MAP1_TEXTURE_COORD_2

glIsEnabled avec argument GL_MAP1_TEXTURE_COORD_3

glIsEnabled avec argument GL_MAP1_TEXTURE_COORD_4

Spécifications

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

glMap2

glMapGrid

glNormal

glTexCoord

glVertex