Polytope - Interna

 

Wie arbeiten die Dateien und die VRML-PROTOs zusammen? Folgende Dateien sind (z.Z des Schreibens dieser Seite) beteiligt:

Die Seite Modellauswahl und Aufruf von a.wrl

Bei Auswahl eines Modells auf der Seite "Modellauswahl" wird eine dort geladene JavaScript-Funktion "model" aufgerufen. Diese ruft die Datei a.wrl in dem Fenster "extra" auf und übergibt ihr die benötigten Informationen zum Modell und der Darstellung. Das geschieht mit der folgenden JavaScript-Zeile:
 open(loc,"extra")
Die Variable "loc" enhält die relative Adresse von a.wrl dahinter ein Fragezeichen und die Parameterliste in der für URLs üblichen Form. Sie ist bei dem Modell-Fenster zu sehen.

Die Datei a.wrl und Aufruf von b.wrl

Die Datei a.wrl hat folgenden Inhalt:
  #VRML V2.0 utf8
  Background{skyColor [0.3 0.3 0.5]}
  NavigationInfo {avatarSize [0.01 0.01 0.01] type "EXAMINE"}
  Viewpoint {position 0 0 5 description "Start"}

  Group {children [
    DEF O Group {}
    Script {
      field SFNode O USE O
      url "javascript:
      function initialize () {
        u=Browser.getWorldURL();
        vrml='#VRML V2.0 utf8\r\n'+
          'EXTERNPROTO P [field SFString u] \"b.wrl#Main\"\r\n'+
          'P {u \"'+u+'\"}\r\n';
        O.children=Browser.createVrmlFromString(vrml);}"}]}
Die erste Zeile gehört zum Standard von VRML97. Die nächsten drei Zeilen legen die Hintergrundfarbe grau-blau, Information zur Navigation im Modell und die Anfangsposition des Betrachters fest. Dann wird eine Gruppe mit zwei "Kindern" gebildet: eine zunächst kinderlose Gruppe "O" und ein Script mit der Funktion "initialize", welche die Gruppe O mit Kindern füllt. Das geschieht mit dem Befehl
  O.children=Browser.createVrmlFromString(vrml);
Die Variable "vrml" enthält ein dreizeiliges VRML-Script:
  #VRML V2.0 utf8
  EXTERNPROTO P [field SFString u] "b.wrl#Main"
  P {u "URL"}
Das Wort "URL" steht in der letzten Zeile stellvertretend für die mit "getWorldURL()" geholte URL einschliesslich des Fragezeichens und der Parameterliste. Diese wird in "b.wrl" ausgewertet.

Eigentlich könnte man statt a.wrl und b.wrl eine einzige VRML-Datei verwenden. Die Zweiteilung soll den Ladevorgang verkürzen, da ein Browser Daten von einer URL mit Fragezeichen jedes mal neu läd.

Die Datei b.wrl

Diese Datei ist oben bei EXTERNPROTO angegeben. Hinter dem Zeichen "#" steht der Name des benutzten PROTOS, "Main". Die Datei enthält hinter der notwendigen Anfangszeile die Definition von drei PROTOs: Das PROTO "Main" enthält:
(C)  Kira S