The Virtual Reality Modeling Language

Obsah Úvod Nastavenia prezerača Dušan Hanuska
Špecifikácia jazyka Odkazovanie Príklad Predošlá strana

Rozširovateľnosť

Rozšírenia VRML sú podporované pomocou sebaopisujúcich uzlov. Uzly, ktoré nie sú súčasťou štandardu VRML, musia mať ako prvý zapísaný popis polí, čo dovoľuje všetkým implementáciám VRML byť schopným syntakticky analyzovať a ignorovať rozšírenia.

Tento popis je napísaný hneď za otváracou množinovou zátvorkou uzla a pozostáva zo slovíčka fields, za ktorým nasleduje zoznam typov a mien polí použitých v tomto uzle, to všetko uzavreté v hranatých zátvorkách [] a oddelené čiarkami. Napríklad, keby uzol Cube nebol štandardným VRML uzlom, bol by napísaný takto:

Cube {
  fields [ SFFloat width, SFFloat height, SFFloat depth ]
  width 10 height 4 depth 3
}

Špecifikácia polí uzlov, ktoré časťou štandardu VRML, nie je chybou. Syntaktický analyzátor VRML musí toto pole špecifikácie ticho ignorovať.

Príbuzenské vzťahy

Nový typ uzla smie byť supermnožina jestvujúceho uzla, ktorý je časťou štandardu. V tomto prípade, ak sa nedá nájsť imlementácia nového typu uzla, tak sa nový typ bezpečne považuje za existujúci uzol, na ktorom je založený (samozrejme s čiastočnou stratou funkčnosti). Aby sa to podporilo, tak nové typy uzlov môžu definovať pole typu MFString zvané isA, ktoré zahŕňa mená typov, ktorých je supermnožinou. Napríklad, nový typ materiálu zvaný "ExtendedMaterial", ktorý pridáva index odrazu ako vlastnosť materiálu môže byť napísaný takto:
ExtendedMaterial {
  fields [ MFString isA, MFFloat indexOfRefraction,
           MFColor ambientColor, MFColor diffuseColor,
           MFColor specularColor, MFColor emissiveColor,
           MFFloat shininess, MFFloat transparency ]
  isA [ "Material" ]
  indexOfRefraction .34
  diffuseColor .8 .54 1
}
Viacnásobné príbuzenské vzťahy smú byť špecifikované v poradí predností. Od implementácií sa očakáva, že použijú prvý, ktorý má implementáciu.