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 |
---|---|
|
target war kein akzeptierter Wert. |
|
u1 war gleich u2. |
|
stride war kleiner als die Anzahl der Werte in einem Kontrollpunkt. |
|
Die Bestellung war kleiner als ein oder GL_MAX_EVAL_ORDER. |
|
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
wobei Ri ein Kontrollpunkt ist und () das i das Bernsteinpolynom des Grads n ist (Reihenfolge =n + 1):
Erinnern Sie sich daran, dass
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
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
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 |
|
Bibliothek |
|
DLL |
|