fonction glMap1f
Les fonctions glMap1d et glMap1f définissent un évaluateur unidimensionnel.
void WINAPI glMap1f(
GLenum target,
GLfloat u1,
GLfloat u2,
GLint stride,
GLint order,
const GLfloat *points
);
-
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.
Cette fonction ne retourne pas de valeur.
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. |
|
stride était inférieur au nombre de valeurs dans un point de contrôle. |
|
l’ordre était inférieur à un ou GL_MAX_EVAL_ORDER. |
|
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd. |
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
où Ri est un point de contrôle et () est le polynôme de Bernstein de degré n (ordre =n + 1) :
Rappelez-vous que
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ù
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
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
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 |
|