The Virtual Reality Modeling Language
Dušan Hanuska
Sú dve všeobecné triedy polí. Polia, ktoré obsahujú jediný hodnotu (kde hodnota môže byť jediné
číslo, vektor alebo dokonca obrázok) a polia, ktoré obsahujú viacero hodnôt. Mená všetkých
jedno-hodnotových polí začínajú s "SF" a mená viachodnotových polí začínajú s "MF". Každý typ
poľa definuje formát hodnôt, ktoré opisuje.
Viachodnotové polia sú zapísané ako séria hodnôt oddelených čiarkami a všetky sú zapísané
v hranatých zátvorkách. Ak pole má nulový počet hodnôt, napíšu sa len hranaté zátvorky ("[]").
Za poslednou hodnotou môže byť čiarka. AK má pole práve jednu hodnotu, zátvorky môžu byť
vynechané a stačí napísať len hodnotu. Napríklad, všetky nasledujúcu príklady sú platné pre
viachodnotové polia obsahujúce jednu hodnotu 1.
1
[1,]
[ 1 ]

Jedno-hodnotové pole, ktoré obsahuje masku príznakových bitov. Uzly, ktoré používajú túto triedu
poľa, definujú mnemonické mená pre bitové príznaky. SFBitMasky sú zapísané do súboru ako jeden
alebo viac mnemonicky vyčíslených typov mien v takomto formáte:
( príznak1 | príznak2 | ... )
Ak sa v maske používa len jeden príznak, môžu sa zátvorky vynechať. Tieto mená sa líšia
v závislosti od rôznych tried uzlov.
Pole obsahujúce jedinú boolovskú (pravda=TRUE alebo nepravda=FALSE) hodnotu. SFBool smie byť
zapísaná ako 0 (reprezentujúca FALSE), 1, TRUE, alebo FALSE.
Jedno-hodnotové pole obsahujúce farbu. SFColor je zapísaná do súboru ako RGB trojica čísel
s pohyblivou rádovou čiarkou v štandardnej vedeckej notácii, v rozsahu od 0.0 do 1.0.
Jedno-hodnotové pole obsahujúce hodnotu vyčísleného typu. Uzly, ktoré používajú túto triedu
poľa, definujú mnemonické mená pre tieto hodnoty. SFEnumy sú zapísané do súboru ako mnemonicky
vyčíslený typ mien. Meno sa líši v závislosti od rôznych tried uzlov.
Pole obsahujúce jedno číslo s pohyblivou rádovou čiarkou zaokrúhlené na jedno desatinné miesto.
SFFloaty sú zapísané do súboru v štandardnej vedeckej notácii.
Pole, ktoré obsahuje nekompresovaný 2-rozmerný farebný alebo čierno-biely obrázok.
SFImagy sú zapísané do súboru ako tri celé čísla predstavujúce šírku, výšku a počet súčiastí
obrázku, nasledované šírka*výška hexadecimálnymi hodnotami predstavujúcimi pixle obrázku
oddelenými bielymi miestami. Jedno-komponentový obrázok bude mať jedno-bajtovú hexadecimálnu
hodnotu reprezentujúcu intenzitu obrázku. Napríklad, 0xFF je plná intenzita a 0xFF je nulová
intenzita. Dvoj-komponentný obrázok má v prvom (hornom) bajte intenzitu a v druhom (dolnom) bajte
transparenciu. Pixle v troj-komponentovom obrázku majú červenú časť v prvom (hornom) bajte,
potom nasledujú zelené a modré časti (takže 0xFF0000 je červená). Štvor-komponentné obrázky majú
bajt definujúci priehľadnosť za Red-Green-Blue bajtmi (takže 0x0000FF80 je polopriehľadná
modrá). Hodnota 1.0 je úplne priehľadná a 0.0 je úplne nepriehľadná. Poznámka: každý pixel sa
skutočne číta ako jediné číslo bez znamienka, takže 3-komponentný pixel s hodnotou "0x0000FF"
môže byť tiež zapísaný ako "0xFF" alebo "255" (decimálne). Pixle sa špecifikujú z ľava do prava
a zdola nahor. Prvá hexadecimálna hodnota je dolný ľavý pixel obrázka a posledná hodnota je horný
pravý pixel.
Napríklad,
1 2 1 0xFF 0x00
je 1 pixel široký a 2 pixle vysoký čierno-biely obrázok s bielym dolným a čiernym horným
pixelom. A:
2 4 3 0xFF0000 0xFF00 0 0 0 0 0xFFFFFF 0xFFFF00
je 2 pixle široký a 4 pixle vysoký RGB obrázok s ľavý dolným pixlom červeným, s pravým dolným
pixlom zeleným, 2 prostrednými riadkami pixlov čiernymi, horný ľavý pixel biely a horný pravý
pixel žltý.
Pole obsahujúce jediné dlhé (32-bitové) celé číslo. SFLongy sú zapísané do súboru ako celé čísla
v desiatkovej, v šestnástkovej (začínajúce '0x') alebo v osmičkovej (začínajúce '0') sústave.
Pole obsahujúce transformačnú maticu. SFMatice sú zapísané do súboru väčšinou po riadkoch po 16
číslach s pohyblivou rádovou čiarkou oddelené bielymi miestami. Napríklad, matica vyjadrujúca
posun o 7.3 jednotiek v smere x-ovej osi je zapísaná ako:
1 0 0 0 0 1 0 0 0 0 1 0 7.3 0 0 1
Pole obsahujúce svojvoľnú rotáciu. SFRotácie sú zapísané do súboru ako štyri hodnoty
s pohyblivou rádovou čiarkou oddelené bielymi miestami. Štyri hodnoty predstavujú osi rotácie,
za ktorými nasleduje veľkosť pravotočivej rotácie okolo tejto osi v radiánoch. Napríklad, 180
stupňová rotácia okolo y-ovej osi je:
0 1 0 3.14159265
Pole obsahujúce ASCII reťazec (sled znakov). SFReťazce sú zapísané do súboru ako sled ASCII
znakov v úvodzovkách (ktoré nie sú povinné, ak reťazec neobsahuje biele miesta). Medzi
úvodzovkami sa môžu nachádzať ľubovoľné znaky (aj nové riadky). Na zahrnutie znaku úvodzovky do
vnútra, dajte predeň spätné lomítko. Napríklad:
Test
"Raz, Dva, Tri"
"Povedal: \"Urobil to Immel!\""
všetky sú platné reťazce.
Pole obsahujúce dvojrozmerný vektor. SFVec2fy sú zapísané do súboru ako dvojice hodnôt
s pohyblivou rádovou čiarkou oddelené bielymi miestami.
Pole obsahujúce trojrozmerný vektor. SFVec3fy sú zapísané do súboru ako trojice hodnôt
s pohyblivou rádovou čiarkou oddelené bielymi miestami.
Viachodnotové pole, ktoré obsahuje hocijaké čísla z RGB farieb. MFColory sú zapísané do súboru
ako jedna alebo viac RGB trojíc čísel z pohyblivou rádovou čiarkou v štandardnej vedeckej
notácii. Ak je tam viac ako jedna hodnota, musia byť uzavreté v hranatých zátvorkách a oddelené
čiarkami. Napríklad:
[ 1.0 0.0 0.0, 0 1 0, 0 0 1 ]
predstavuje tri farby: červenú, zelenú a modrú.
Viachodnotové pole, ktoré obsahuje ľubovoľný počet dlhých (32-bitových) celých čísel. MFLongy
sú zapísané do súboru ako jedna alebo viac celočíselných hodnôt v desiatkovej, šestnástkovej
alebo osmičkovej sústave. Ak je tam viac ako jedna hodnota, musia byť uzavreté v hranatých
zátvorkách a oddelené čiarkami. Napríklad:
[ 17, -0xE20, -518820 ]
Pole obsahujúce ASCII reťazce (sledy znakov). MFReťazce sú zapísané do súboru ako sled ASCII
znakov v úvodzovkách (ktoré nie sú povinné, ak reťazec neobsahuje biele miesta). Medzi
úvodzovkami sa môžu nachádzať ľubovoľné znaky (aj nové riadky). Na zahrnutie znaku úvodzovky do
vnútra, dajte predeň spätné lomítko. Napríklad:
[ Test ]
[ "Raz, Dva, Tri" , "Štyri, Päť" ]
Viachodnotové pole, ktoré obsahuje ľubovoľný počet dvojrozmerných vektorov. MFVec2fy sú
zapísané do súboru ako jeden alebo viac dvojíc hodnôt s pohyblivou rádovou čiarkou oddelené
bielymi miestami. Ak je tam viac ako jedna hodnota, musia byť uzavreté v hranatých
zátvorkách a oddelené čiarkami. Napríklad:
[ 0 0, 1.2 3.4, 98.6 -4e1 ]
Viachodnotové pole, ktoré obsahuje ľubovoľný počet trojrozmerných vektorov. MFVec3fy sú
zapísané do súboru ako jeden alebo viac trojíc hodnôt s pohyblivou rádovou čiarkou oddelené
bielymi miestami. Ak je tam viac ako jedna hodnota, musia byť uzavreté v hranatých
zátvorkách a oddelené čiarkami. Napríklad:
[ 0 0 0, 1.2 3.4 5.6, 98.6 -4e1 212 ]

nápady a návrhy...
7. apríla 1997