next up previous contents
Next: parser_l.l Up: Parser Previous: Parser

Datenformat

      Hier wird das Datenformat beschrieben, das wir momentan zur Darstellung einer Szene verwenden. Um andere Datenformate zu benutzen, müssen parser_l.l und parser_y.y entsprechend angepasst werden. Jede Szene beginnt mit dem Schlüsselwort begin gefolgt vom Namen der Szene. Darauf folgt das Schlüsselwort points gefolgt von der Anzahl Punkte in der Szene. Nun folgen für jeden Punkt drei Koordinatenwerte durch Spaces getrennt. Die Polygondaten werden durch das Schlüsselwort polygons gefolgt von der Anzahl Polygone eingeleitet. Für jedes Polygon folgt nun zuerst die Anzahl Punkte, dann die Nummern der Punkte, ein Komma, drei Farbwerte für rot, grün und blau sowie ein Flag. Als Flag wird bis jetzt nur 8 unterstützt; dies bedeutet, dass das Polygon zu einer geschlossenen Figur gehört (siehe 5.2.2). Das Schlüsselwort background gefolgt von drei Farbwerten gibt die Hintergrundfarbe an. Das Schlüsselwort viewpoint beschreibt schliesslich, wie eine Szene betrachtet wird. Die ersten drei Koordinaten geben den Standort des Beobachters, die zweiten drei den Fokuspunkt. Die nächste Grösse gibt den Drehwinkel der Kamera in Grad an. Die letzte Zahl schliesslich gibt den Bildschirmabstand an. Abbildung 1.2 zeigt diese Grössen. Das optionale Schlüsselwort viewmatrix gefolgt von einer 4x4 Matrix bewirkt, dass die Viewpunktdaten nicht beachtet werden und stattdessen die Transformation mit dieser Viewmatrix durchgeführt wird. Die Szene wird mit dem Schlüsselwort end gefolgt vom Szenenname abgeschlossen. Ein Strichpunkt bewirkt, dass der Rest der Zeile als Komentar ignoriert wird. Untenstehendes Listing zeigt ein Beispiel mit einem Quadrat und einem Dreieck.

begin Beispiel
 points 7	  ; 7 Punkte
    0.0 0.0 0.0
    2.0 0.0 0.0
    2.0 2.0 0.0
    0.0 0.0 -1.0
    0.0 1.0 -1.0
    1.0 1.0 -1.0
    1.0 0.0 -1.0
 polygons 2       ; 2 Polygone
    3 0 1 2, 255 0 0 0   ; 1 rotes Dreieck
    4 3 4 5 6, 0 255  0  ; 1 gruenes Quadrat
 background 0 0 255      ; blauer Hintergrund
 viewpoint
   0.0 0.0 5.0
   0.0 0.0 1.0
   90.0
   200.0
end Beispiel

       


Martin Frey
Tue Jun 17 13:29:20 MET DST 1997