glMap1d-Funktion

Die Funktionen glMap1d und glMap1f definieren einen eindimensionalen Auswerter.

Syntax

void WINAPI glMap1d(
         GLenum   target,
         GLdouble u1,
         GLdouble u2,
         GLint    stride,
         GLint    order,
   const GLdouble *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 Karte ausgewertet wird. Sie 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 Steuerungspunkt 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 Steuerungspunkt besteht aus vier Gleitkommawerten, die Rot, Grün, Blau und Alpha darstellen. Interne glColor4-Befehle werden generiert, wenn die Karte 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. Der aktuelle Normalwert wird jedoch nicht mit dem Wert dieser glNormal-Befehle aktualisiert.
GL_MAP1_TEXTURE_COORD_1
Jeder Steuerungspunkt ist ein einzelner Gleitkommawert, der die Texturkoordinate der 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 Steuerungspunkt 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 Steuerungspunkt 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 Steuerungspunkt 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 mit diesem Befehl angegebenen Formeln ausgewertet wird.

u2

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

Schritt

Die Anzahl von Floats oder Doubles 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 Steuerungspunkt zusammenhängende Speicherstandorte 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
Die Bestellung 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, polynomale oder rationale Polynomzuordnungen zu verwenden, um Scheitelpunkte, Normalwerte, Texturkoordinaten und Farben zu erzeugen. Die von einem Auswerter erzeugten Werte werden so an weitere Phasen der OpenGL-Verarbeitung gesendet, als ob sie mithilfe der Befehle glVertex, glNormal, glTexCoord und glColor dargestellt worden wären, mit der Ausnahme, dass die generierten Werte die aktuelle Normal-, Texturkoordinaten oder Farbe nicht aktualisieren.

Alle polynomalen oder rationalen Polynom-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 der Computergrafik verwendet werden, einschließlich B-Splines, Bézier-Kurven, Hermite-Splines usw.

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

Formel, die die Definition von p () zeigt.

wobei Ri ein Kontrollpunkt ist und () das i das Bernsteinpolynom des Grads n ist (Reihenfolge =n + 1):

Gleichung des Bernsteinpolynoms von Grad n.

Erinnern Sie sich daran, dass

Gleichungen, die die Äquivalenz mit 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 sie glEnable und glDisable mit dem Kartennamen aufrufen, einem der neun vordefinierten Werte für das oben beschriebene Ziel. Die glEvalCoord1-Funktion wertet die aktivierten eindimensionalen Zuordnungen aus. Wenn glEvalCoord1 einen 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 je nach definierter Zuordnung einen, zwei, drei oder vier zusammenhängenden Speicherspeicherorten belegt. Der Order-Parameter ist die Anzahl der Kontrollpunkte im Array. Der stride-Parameter gibt an, wie viele Float- oder Double-Speicherorte der interne Speicherzeiger voranbringen soll, um den nächsten Steuerungspunkt zu erreichen.

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

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