next up previous contents
Next: 7.1.2 Zgradba programa Up: 7.1 Program za sledenje Previous: 7.1 Program za sledenje Vsebina: contents

7.1.1 Vhodni podatki

Interpreter datoteke z opisom scene je bil apliciran za format NFF[Hai88]. Neutral File Format je specifikacija za opis scene, ki se klasicno uporablja za testiranje hitrosti algoritmov z metodo sledenja zarku. Obstaja v proceduralni obliki in poleg NFF generira tudi druge formate za opis scene.

Interpreter datoteke vhodnih podatkov je bil generiran v jeziku YACC[LMB92]. Skupaj s programom Flex je tako mozno enostavno izdelati izvorno kodo v jeziku C++ za zelo zahtevne sintakse od katerih lahko NFF pristevamo k enostavnim jezikom.

Slovar jezika YACC podamo s pravili LARL (LookAhead Left Recursive). Pravila LARL so poenostavljena oblika pravil BNF (Backus-Naur Form), ki so normalno uporabljena za predstavitev sintakse programskih jezikov.

Razpoznavanje kljucnih besed in ostalih elementov opisne datoteke je izvedeno s programom Flex, ki za razliko od ostalih programov tipa Lex (Lexical analyzer) zna generirati programsko kodo v C++.

LARL slovar datoteke NFF je sledec:

 
          scene:  camera elementlist;
          
          elementlist: elementlist element
                     | /* prazen */ ;
          
          element:  light
                  | background
                  | surface
                  | object  ;
          
          object:   cone
                  | sphere
                  | polygon
                  | ppatch ;
          
          camera: VIEWPOINT
                  FROM point
                  AT point
                  UP point
                  ANGLE num
                  HITHER num
                  RESOLUTION num num;
          
          light:  LIGHT point;
          
          background: BACKGROUND primcolor;
          
          surface: SURFACE primcolor num num num num num;
          
          cone:   CONE point num point num;
          
          sphere: SPHERE point num;
          
          polygon: POLYGON num ;
          
          ppatch: PATCH num pointlist;
          
          primcolor: num num num 
                     | TOKEN;
          
          point:  num num num;
          
          pointlist: pointlist point
                    | /* prazno */ ;
          
          num:    NUM;

Datoteke NFF so namenjene uporabnikom, ki sami sestavijo ustrezno sceno in jo zapisejo v datoteki. Specifikacija NFF pa je namenjena tudi testiranju razlicnih algoritmov. Na osnovi NFF je bil razvit programski paket, ki vsebuje 10 razlicnih testnih scen. Testne scene so rekurzivne oblike. Lahko dolocamo globino rekurzije in s tem natancnost in stevilo osnovnih gradnikov. Skupina programov NFF omogoca izhod tudi v drugih formatih, ki jih podpirajo razlicni programi za sledenje zarku.



Copyright © 1995 Leon Kos, Univerza v Ljubljani