Damit Sie mit Cut und Paste arbeiten können, empfiehlt es sich, die Webseite http://www.csv.ica.uni-stuttgart.de/vrml/programming/vrml_programming.html zu öffnen.

VRML programmieren

Inhalt:

Blick in den Standard

Betrachtet man einen VRML Knoten (hier der häufig benutzte "Transform" Knoten, der z.B. für Verschiebung, Drehung usw. zuständig ist) im offizellen VRML97 Standard ISO/IEC 14772 (in der Liste der VRML Knoten unter http://www.web3d.org/x3d/specifications/vrml/ISO_IEC_14772-All/part1/nodesRef.html#Transform )


kann man 5 Spalten unterscheiden:
Darunter befindet sich eine genaue Beschreibung der Bedeutung der einzelnen Fieldnamen.

Eventinformation

Vergleicht man die Notation im Standard mit dem Bild, dass sich in Dune



oder dem Szenengraph in Cosmoworlds

bietet, erkennt man die graphische Darstellung dieser Eventinformation.

Die nach links weisenden Kästchen in Dune (wie z.B. ("set_translation") deuten darauf hin, dass an den entsprechenden Fieldname eine Nachricht geschickt werden kann, die nach rechts weisenden Kästchen deuten darauf hin, dass vom entsprechenden Fieldname eine Nachricht abgeschickt werden kann. Dabei dienen die Vor/Nachsilben "set_" bzw. "_changed" nur zur Verdeutlichung, sie können in einem Routestatement (als Text im VRML File) auch weggelassen werden.

Genauso deuten die nach links oder rechts deutenden Pfeilchen im Cosmoworlds-Szenengraph auf eingehende oder ausgehende Nachrichten hin.

Es lassen sich dabei 4 verschiedene Typen unterscheiden:

Datentypen

Datentypen sind ein wichtiges Programmierprinzip. Sie verhindern, dass Daten ausgetauscht werden können, die nicht zueinander passen.

Es macht zum Beispiel in der Regel wenig Sinn, wenn eine Zeitinformation (ein Wert) einer Verschiebung (drei Werte) zugewiesen werden soll. Über dieses einfache Beispiel hinaus gibt es noch feinere Unterscheidungen.
Betrachtet man die Liste aller möglichen Datentypen in VRML, wie in http://www.web3d.org/x3d/specifications/vrml/ISO_IEC_14772-All/part1/fieldsRef.html#Introduction


so kann man zuerst "SF" und "MF" Typen unterscheiden. Dabei bedeutet "MF" ("M" von "multiple") eine Liste ("Array") des entsprechenden "SF" Typs. Diese Liste wird von [ und ] eingeschlossen (ausser der Array enthält nur einen Wert).

Einige wichtige Datentypen sind zum Beispiel: