glMap1f-Funktion

Die Funktionen glMap1d und glMap1f definieren eine eindimensionale Auswertung.

Syntax

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

Parameter

Ziel

Die Art von Werten, die vom Evaluator generiert werden. Symbolische Konstanten. Der Zielparameter ist eine symbolische Konstante, die angibt, welche Art von Kontrollpunkten in Punkten bereitgestellt werden und welche Ausgabe generiert wird, wenn die Zuordnung ausgewertet wird. Er kann einen von neun vordefinierten Werten annehmen.

Wert Bedeutung
GL_MAP1_VERTEX_3
Jeder Kontrollpunkt besteht aus drei Gleitkommawerten , die x, y und z darstellen. Interne glVertex3-Befehle werden generiert, wenn die Zuordnung ausgewertet wird.
GL_MAP1_VERTEX_4
Jeder Kontrollpunkt besteht aus vier Gleitkommawerten , die x, y, z und w darstellen. Interne glVertex4-Befehle werden generiert, wenn die Zuordnung ausgewertet wird.
GL_MAP1_INDEX
Jeder Kontrollpunkt ist ein einzelner Gleitkommawert, der einen Farbindex darstellt. Interne glIndex-Befehle werden generiert, wenn die Zuordnung ausgewertet wird. Der aktuelle Index wird jedoch nicht mit dem Wert dieser glIndex-Befehle aktualisiert.
GL_MAP1_COLOR_4
Jeder Kontrollpunkt besteht aus vier Gleitkommawerten, die Rot, Grün, Blau und Alpha darstellen. Interne glColor4-Befehle werden generiert, wenn die Zuordnung ausgewertet wird. Die aktuelle Farbe wird jedoch nicht mit dem Wert dieser glColor4-Befehle aktualisiert.
GL_MAP1_NORMAL
Jeder Kontrollpunkt besteht aus drei Gleitkommawerten, die die x-, y - und z-Komponenten eines normalen Vektors darstellen. Interne glNormal-Befehle werden generiert, wenn die Zuordnung ausgewertet wird. Die aktuelle Normalität wird jedoch nicht mit dem Wert dieser glNormal-Befehle aktualisiert.
GL_MAP1_TEXTURE_COORD_1
Jeder Kontrollpunkt ist ein einzelner Gleitkommawert, der die Texturkoordinate von s darstellt. Interne glTexCoord1-Befehle werden generiert, wenn die Zuordnung ausgewertet wird. Die aktuellen Texturkoordinaten werden jedoch nicht mit dem Wert dieser glTexCoord-Befehle aktualisiert.
GL_MAP1_TEXTURE_COORD_2
Jeder Kontrollpunkt besteht aus zwei Gleitkommawerten, die die Texturkoordinaten s und t darstellen. Interne glTexCoord2-Befehle werden generiert, wenn die Zuordnung ausgewertet wird. Die aktuellen Texturkoordinaten werden jedoch nicht mit dem Wert dieser glTexCoord-Befehle aktualisiert.
GL_MAP1_TEXTURE_COORD_3
Jeder Kontrollpunkt besteht aus drei Gleitkommawerten, die die Texturkoordinaten s, t und r darstellen. Interne glTexCoord3-Befehle werden generiert, wenn die Zuordnung ausgewertet wird. Die aktuellen Texturkoordinaten werden jedoch nicht mit dem Wert dieser glTexCoord-Befehle aktualisiert.
GL_MAP1_TEXTURE_COORD_4
Jeder Kontrollpunkt besteht aus vier Gleitkommawerten, die die Texturkoordinaten s, t, r und q darstellen. Interne glTexCoord4-Befehle werden generiert, wenn die Zuordnung ausgewertet wird. Die aktuellen Texturkoordinaten werden jedoch nicht mit dem Wert dieser glTexCoord-Befehle aktualisiert.

u1

Eine lineare Zuordnung von u, wie für glEvalCoord1 dargestellt, zu u^, der Variablen, die durch die von diesem Befehl angegebenen Formeln ausgewertet wird.

u2

Eine lineare Zuordnung von u, wie für glEvalCoord1 dargestellt, zu u^, der Variablen, die durch die von diesem Befehl angegebenen Formeln ausgewertet wird.

Schritt

Die Anzahl der Gleitkommapunkte zwischen dem Anfang eines Kontrollpunkts und dem Anfang des nächsten in der Datenstruktur, auf die in Punkten verwiesen wird. Dadurch können Kontrollpunkte in beliebige Datenstrukturen eingebettet werden. Die einzige Einschränkung besteht darin, dass die Werte für einen bestimmten Kontrollpunkt zusammenhängende Speicherspeicherorte belegen müssen.

order

Die Anzahl der Kontrollpunkte. Muss positiv sein.

Punkte

Ein Zeiger auf das Array von Steuerpunkten.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
target war kein akzeptierter Wert.
GL_INVALID_VALUE
u1 war gleich u2.
GL_INVALID_VALUE
stride war kleiner als die Anzahl der Werte in einem Kontrollpunkt.
GL_INVALID_VALUE
Order war kleiner als ein oder GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Evaluatoren bieten eine Möglichkeit, polynomiale oder rationale Polynomzuordnungen zu verwenden, um Scheitelpunkte, Normalwerte, Texturkoordinaten und Farben zu erzeugen. Die von einem Evaluator erzeugten Werte werden an weitere Phasen der OpenGL-Verarbeitung gesendet, so als ob sie mithilfe der Befehle glVertex, glNormal, glTexCoord und glColor dargestellt worden seien, mit der Ausnahme, dass die generierten Werte nicht die aktuelle Normal-, Texturkoordinaten oder Farbe aktualisieren.

Alle polynomalen oder rationalen polynomialen Splines eines beliebigen Grades (bis zum maximalen Grad, der von der OpenGL-Implementierung unterstützt wird) können mithilfe von Evaluatoren beschrieben werden. Dazu gehören fast alle Splines, die in Computergrafiken verwendet werden, einschließlich B-Splines, Bézierkurven, Hermite-Splines usw.

Evaluatoren definieren Kurven basierend auf Bernsteinpolynomen. Definieren Sie p () als

Gleichung mit der Definition von p ().

Dabei ist Ri ein Kontrollpunkt und () das i das Bernstein-Polynom von Grad n (Reihenfolge =n + 1):

Gleichung mit dem Bernsteinpolynom grad n.

Erinnern Sie sich daran, dass

Gleichungen, die die Äquivalenz zu 1 zeigen.

Die glMap1-Funktion wird verwendet, um die Basis zu definieren und anzugeben, welche Art von Werten erzeugt werden. Nach der Definition kann eine Karte aktiviert und deaktiviert werden, indem glEnable und glDisable mit dem Kartennamen aufgerufen werden, einem der neun vordefinierten Werte für das oben beschriebene Ziel. Die glEvalCoord1-Funktion wertet die aktivierten eindimensionalen Zuordnungen aus. Wenn glEvalCoord1 den Wert u darstellt, werden die Bernstein-Funktionen mit u^ ausgewertet, wobei

Gleichung mit der Definition von

Die Parameter stride, order und points definieren die Arrayadressierung für den Zugriff auf die Kontrollpunkte. Der Punktparameter ist die Position des ersten Kontrollpunkts, der einen, zwei, drei oder vier zusammenhängende Speicherstandorte einnimmt, je nachdem, welche Karte definiert wird. Der Order-Parameter ist die Anzahl der Kontrollpunkte im Array. Der stride-Parameter gibt an, wie viele float- oder double-Speicherorte der interne Speicherzeiger zum Erreichen des nächsten Steuerungspunkts voranbringen soll.

Wie bei allen OpenGL-Befehlen, die Zeiger auf Daten akzeptieren, ist es so, als ob der Inhalt der Punkte von glMap1 kopiert wurde, bevor er zurückgegeben wird. Änderungen am Inhalt von Punkten wirken sich nach dem Aufruf von glMap1 nicht aus.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glMap1 ab:

glGet mit Argument GL_MAX_EVAL_ORDER

glGetMap

glIsEnabled mit Argument GL_MAP1_VERTEX_3

glIsEnabled mit Argument GL_MAP1_VERTEX_4

glIsEnabled mit Argument GL_MAP1_INDEX

glIsEnabled mit Argument GL_MAP1_COLOR_4

glIsEnabled mit Argument GL_MAP1_NORMAL

glIsEnabled mit Argument GL_MAP1_TEXTURE_COORD_1

glIsEnabled mit Argument GL_MAP1_TEXTURE_COORD_2

glIsEnabled mit Argument GL_MAP1_TEXTURE_COORD_3

glIsEnabled mit Argument GL_MAP1_TEXTURE_COORD_4

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Siehe auch

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap2

glMapGrid

glNormal

glTexCoord

glVertex