The Virtual Reality Modeling Language

Obsah Úvod Nastavenia prezerača Dušan Hanuska
Špecifikácia jazyka Polia Odkazovanie
Uzly Transformácie svetiel WWWInline Abecedný zoznam uzlov Predošlá strana

Skupinové uzly

Group - skupina

Tento uzol definuje základnú triedu pre všetky skupinové uzly. Skupina je uzol, ktorý obsahuje usporiadaný zoznam detských uzlov. Tento uzol je jednoducho kontajner pre detské uzly a nijako nemení polygonometrický stav. Počas polygonometrie, sa pošle každému úspešnému dieťaťu stav, ktorý je preň nahromadený a potom rodičom skupiny (Skupina nerobí s polygonometrickým stavom operácie push a pop ako to robí separátor).

Formát definovania uzla a prednastavené hodnoty:
     Group {
     }
Príklad

Separator - oddeľovač

Tento skupinový uzol robí vkladanie (uloženie) polygonometrického stavu pred polygonometriou svojich detí a výber (obnovenie) po ich polygonometrii. Toto oddeľuje deti od zvyšku scény. Separátor môže zahrňovať svetlá, kamery, súradnice, normály, spojenia a všetky ďalšie vlastnosti.

Oddeľovače môžu tiež robiť vykresľovacie triedenie. Vykresľovacie triedenie vynecháva polygóny detí oddeľovača, ak nebudú vykreslené na základe porovnania ohraničujúcej krabice oddeľovača so súčasnou pozorovateľnou časťou. Triedenie je riadené poľom renderCulling. Štandardne sú nastavené ako AUTO, čo dovoľuje implementácii rozhodnúť sa či triediť alebo netriediť.

Typy triedenia
ON Vždy sa pokús triediť pozorovateľnú časť
OFF Nikdy sa nepokús triediť pozorovateľnú časť
AUTO Implementačne-definované správanie triedenia

Formát definovania uzla a prednastavené hodnoty:
     Separator {
         renderCulling       AUTO      # triedenie vykresľovania typu SFEnum
     }
Príklad 1

Switch - prepínač

Tento skupinový uzol traverzuje jeden, žiaden alebo všetky svoje deti. Jeden môže použiť tento uzol na zapínanie a vypínanie efektov niektorých vlastností alebo na prepínanie sa medzi rôznymi vlastnosťami.

Pole whichChild špecifikuje index dieťaťa na traverziu, kde prvé dieťa má index 0.

Hodnota -1 (štandardná) znamená, že sa deti nebudú traverzovať. Hodnota -3 traverzuje všetky deti, čo robí, že sa prepínač správa presne ako regulárna skupina.

Formát definovania uzla a prednastavené hodnoty:
     Switch {
         whichChild  -1        # ktoré dieťa typu SFLong
     }
Príklad

TransformSeparator - transformačný oddeľovač

Tento skupinový uzol je podobný oddeľovaciemu uzlu, v ktorom sa uchováva stav pred traverziou detí a po nej obnovuje. Avšak, uchováva len súčasnú transformáciu, všetky ostatné stavy sa ponechajú také, aké sú. Tento uzol môže byť vhodný na umiestňovanie kamery, ktorej transformácie neovplyvnia zvyšok scény napriek tomu, že sa cez ňu budeme pozerať. Podobne môže byť tento uzol použitý na izolované transformácie svetelných zdrojov alebo iných objektov.

Formát definovania uzla a prednastavené hodnoty:
     TransformSeparator {
     }

WWWAnchor - WWW kotva

Skupinový uzol WWWAnchor načíta do VRML prezerača novú scénu, keď sa zvolí jedno z jeho detí. Presnejšie, to, ako užívateľ "zvolí" dieťa WWWAnchoru, je na VRML prezerači. Zvyčajne to býva kliknutím myši na jednom z jeho detí, čo má za následok nahradenie súčasnej scény scénou novou. WWWAnchor s prázdnym ("") menom nerobí nič, ak sa zvolia jeho deti. Meno je ľubovoľné URL.

WWWAnchor sa správa podobne ako Separator, uchováva traverzný stav pred traverziou svojich detí a po nej ho obnovuje.

Opisné pole "description" dovoľuje WWWAnchoru zobraziť priateľský nápis namiesto URL v tom istom poli. Ideálny prezerač dovoľuje užívateľovi zvoliť si, či chce zobraziť popis, URL alebo oboje.

Pole map vo WWWAnchore je vyčíslená hodnota, ktorá môže byť buď NONE (štandardne) alebo POINT. Ak je POINT, potom sú súradnice bodu objektového priestoru na objekte, ktorý si používateľ zvolil, pridané k URL do poľa name so syntaxou "?x,y,z".

Typy mapovania
NONE Nepridaj informáciu do URL
POINT Pridaj súradnice objektového priestoru do URL

Formát definovania uzla a prednastavené hodnoty:
     WWWAnchor {
          name ""        # meno typu SFString
          description "" # opis typu SFString
          map NONE       # mapovanie typu SFEnum
     }
Príklad