Bezeichnung
gl.Map -- definiert einen ein- oder zweidimensionalen Evaluator
Übersicht
gl.Map(target, u1, u2, pointsArray)
gl.Map(target, u1, u2, v1, v2, pointsArray)
Beschreibung
Evaluatoren bieten eine Möglichkeit, polynome oder rationale polynome Abbildungen zu verwenden, um Knoten, Normalen, Texturkoordinaten und Farben zu erzeugen. Die von einem Evaluator erzeugten Werte werden in weitere Stufen der GL-Verarbeitung geschickt, als ob sie mit gl.Vertex(), gl.Normal(), gl.TexCoord() und gl.Color() Befehle präsentiert worden wären, mit der Ausnahme, dass die erzeugten Werte nicht die aktuelle Normale, Texturkoordinaten oder Farben aktualisieren.

Alle polynomialen oder rationalen Polynom-Splines beliebigen Grades (bis zu dem von der GL-Implementierung unterstützten maximalen Grad) können mit Hilfe von Evaluatoren beschrieben werden. Dazu gehören fast alle Splines, die in der Computergrafik verwendet werden: B-Splines, Bézier-Kurve , Hermite-Splines und so weiter.

gl.Map() wird verwendet, um die Basis zu definieren und festzulegen, welche Art von Werten erzeugt werden. Einmal definiert, kann eine Karte durch Aufruf von gl.Enable() und gl.Disable() mit dem Kartennamen aktiviert und deaktiviert werden, einem der neun vordefinierten Werte für das Ziel, die nachfolgend beschrieben werden. gl.EvalCoord() wertet die eindimensionalen Karten aus, die aktiviert sind. Wenn gl.EvalCoord() stellt einen Wert u oder Werte u und v dar, die Bernstein-Funktionen werden mit u^ und v^ ausgewertet, wobei

 
u^ = (u - u1) / (u2 - u1)
v^ = (v - v1) / (v2 - v1)

ist.

target ist eine symbolische Konstante, die angibt, welche Art von Kontrollpunkten in pointsArray bereitgestellt werden und welche Ergebnisse bei der Auswertung der Karte erzeugt werden. Im eindimensionalen Modus kann es einen der folgenden neun vordefinierten Werte annehmen:

#GL_MAP1_VERTEX_3
Jeder Kontrollpunkt besteht aus drei Fließkommawerten, die x, y und z darstellen. Interne gl.Vertex() Befehle werden bei der Auswertung der Karte generiert.

#GL_MAP1_VERTEX_4
Jeder Kontrollpunkt besteht aus vier Gleitkommawerten, die x, y, z und w darstellen. Interne gl.Vertex() Befehle werden bei der Auswertung der Karte generiert.

#GL_MAP1_INDEX
Jeder Kontrollpunkt ist ein einzelner Gleitkommawert, der einen Farbindex darstellt. Interne gl.Index() Befehle werden generiert, wenn die Karte ausgewertet wird, aber der aktuelle Index wird nicht mit dem Wert dieses gl.Index() Befehls aktualisiert.

#GL_MAP1_COLOR_4
Jeder Kontrollpunkt besteht aus vier Fließkommawerten, die Rot, Grün, Blau und Alpha darstellen. Interne gl.Color() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuelle Farbe wird nicht mit dem Wert dieses gl.Color() Befehls aktualisiert.

#GL_MAP1_NORMAL
Jeder Kontrollpunkt besteht aus drei Gleitkommawerten, die die x-, y- und z-Komponenten eines Normalen-Vektors darstellen. Interne gl.Normal() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuelle Normale wird nicht mit dem Wert dieses gl.Normal() Befehls aktualisiert.

#GL_MAP1_TEXTURE_COORD_1
Jeder Kontrollpunkt ist ein einzelner Gleitkommawert, der die Texturkoordinate s darstellt. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

#GL_MAP1_TEXTURE_COORD_2
Jeder Kontrollpunkt besteht aus zwei Gleitkommawerten, die die Texturkoordinaten s und t darstellen. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

#GL_MAP1_TEXTURE_COORD_3
Jeder Kontrollpunkt besteht aus drei Fließkommawerten, die die Texturkoordinaten s, t und r darstellen. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

#GL_MAP1_TEXTURE_COORD_4
Jeder Kontrollpunkt besteht aus vier Gleitkommawerten, die die Texturkoordinaten s, t, r und q darstellen. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

Im zweidimensionalen Modus werden die folgenden vordefinierten Konstanten unterstützt:

#GL_MAP2_VERTEX_3
Jeder Kontrollpunkt besteht aus drei Fließkommawerten, die x, y und z darstellen. Interne gl.Vertex() Befehle werden bei der Auswertung der Karte generiert.

#GL_MAP2_VERTEX_4
Jeder Kontrollpunkt besteht aus vier Gleitkommawerten, die x, y, z und w darstellen. Interne gl.Vertex() Befehle werden bei der Auswertung der Karte generiert.

#GL_MAP2_INDEX
Jeder Kontrollpunkt ist ein einzelner Gleitkommawert, der einen Farbindex darstellt. Interne gl.Index() Befehle werden generiert, wenn die Karte ausgewertet wird, aber der aktuelle Index wird nicht mit dem Wert dieses gl.Index() Befehls aktualisiert.

#GL_MAP2_COLOR_4
Jeder Kontrollpunkt besteht aus vier Fließkommawerten, die Rot, Grün, Blau und Alpha darstellen. Interne gl.Color() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuelle Farbe wird nicht mit dem Wert dieses gl.Color() Befehls aktualisiert.

#GL_MAP2_NORMAL
Jeder Kontrollpunkt besteht aus drei Gleitkommawerten, die die x-, y- und z-Komponenten eines Normalen-Vektors darstellen. Interne gl.Normal() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuelle Normale wird nicht mit dem Wert dieses gl.Normal() Befehls aktualisiert.

#GL_MAP2_TEXTURE_COORD_1
Jeder Kontrollpunkt ist ein einzelner Gleitkommawert, der die Texturkoordinate s darstellt. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

#GL_MAP2_TEXTURE_COORD_2
Jeder Kontrollpunkt besteht aus zwei Gleitkommawerten, die die Texturkoordinaten s und t darstellen. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

#GL_MAP2_TEXTURE_COORD_3
Jeder Kontrollpunkt besteht aus drei Fließkommawerten, die die Texturkoordinaten s, t und r darstellen. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

#GL_MAP2_TEXTURE_COORD_4
Jeder Kontrollpunkt besteht aus vier Gleitkommawerten, die die Texturkoordinaten s, t, r und q darstellen. Interne gl.TexCoord() Befehle werden generiert, wenn die Karte ausgewertet wird, aber die aktuellen Texturkoordinaten werden nicht mit dem Wert dieses gl.TexCoord() Befehls aktualisiert.

Zunächst ist #GL_AUTO_NORMAL aktiviert. Wenn #GL_AUTO_NORMAL aktiviert ist, werden Normalen-Vektoren erzeugt, wenn entweder #GL_MAP2_VERTEX_3 oder #GL_MAP2_VERTEX_4 zum Erzeugen von Knoten verwendet wird.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
target
gibt die Art der Werte an, die vom Evaluator erzeugt werden (siehe oben)
u1
gibt eine lineare Zuordnung von u an, wie sie in gl.EvalCoord() dargestellt wird, zu u^, der Variablen, die durch die in diesem Befehl angegebenen Gleichungen bewertet wird
u2
gibt eine lineare Zuordnung von u an, wie sie in gl.EvalCoord() dargestellt wird, zu u^, der Variablen, die durch die in diesem Befehl angegebenen Gleichungen bewertet wird
v1
gibt eine lineare Zuordnung von v an, wie sie in gl.EvalCoord() dargestellt wird, zu v^, einer der beiden Variablen, die durch die in diesem Befehl angegebenen Gleichungen bewertet werden
v2
gibt eine lineare Zuordnung von v an, wie sie in gl.EvalCoord() dargestellt wird, zu v^, einer der beiden Variablen, die durch die in diesem Befehl angegebenen Gleichungen bewertet werden
pointsArray
gibt eine Tabelle mit einer Anzahl von Kontrollpunkten an (siehe oben)
Fehler
#GL_INVALID_ENUM wird erzeugt, wenn target kein akzeptierter Wert ist.

#GL_INVALID_VALUE wird erzeugt, wenn u1 gleich u2 ist, oder wenn v1 gleich v2 ist.

#GL_INVALID_OPERATION wird erzeugt, wenn gl.Map() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.GetMap()

gl.Get() mit dem Argument #GL_MAX_EVAL_ORDER

gl.IsEnabled() mit dem Argument #GL_MAP1_VERTEX_3

gl.IsEnabled() mit dem Argument #GL_MAP1_VERTEX_4

gl.IsEnabled() mit dem Argument #GL_MAP1_INDEX

gl.IsEnabled() mit dem Argument #GL_MAP1_COLOR_4

gl.IsEnabled() mit dem Argument #GL_MAP1_NORMAL

gl.IsEnabled() mit dem Argument #GL_MAP1_TEXTURE_COORD_1

gl.IsEnabled() mit dem Argument #GL_MAP1_TEXTURE_COORD_2

gl.IsEnabled() mit dem Argument #GL_MAP1_TEXTURE_COORD_3

gl.IsEnabled() mit dem Argument #GL_MAP1_TEXTURE_COORD_4

gl.IsEnabled() mit dem Argument #GL_MAP2_VERTEX_3

gl.IsEnabled() mit dem Argument #GL_MAP2_VERTEX_4

gl.IsEnabled() mit dem Argument #GL_MAP2_INDEX

gl.IsEnabled() mit dem Argument #GL_MAP2_COLOR_4

gl.IsEnabled() mit dem Argument #GL_MAP2_NORMAL

gl.IsEnabled() mit dem Argument #GL_MAP2_TEXTURE_COORD_1

gl.IsEnabled() mit dem Argument #GL_MAP2_TEXTURE_COORD_2

gl.IsEnabled() mit dem Argument #GL_MAP2_TEXTURE_COORD_3

gl.IsEnabled() mit dem Argument #GL_MAP2_TEXTURE_COORD_4


Navigation zeigen