The Virtual Reality Modeling Language

Obsah Úvod Nastavenia prezerača Dušan Hanuska
Špecifikácia jazyka Súradnicový systém Uzly Abecedný zoznam polí Predošlá strana

Polia

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 ]

Abecedný zoznam polí
Jedno-hodnotové Viachodnotové
SFBitMask SFLong MFColor
SFBool SFMatrix MFLong
SFColor SFRotation MFString
SFEnum SFString MFVec2f
SFFloat SFVec2f MFVec3f
SFImage SFVec3f

SFBitMask

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.

SFBool

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.

SFColor

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.

SFEnum

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.

SFFloat

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.

SFImage

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ý.

SFLong

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.

SFMatrix

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

SFRotation

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

SFString

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.

SFVec2f

Pole obsahujúce dvojrozmerný vektor. SFVec2fy sú zapísané do súboru ako dvojice hodnôt s pohyblivou rádovou čiarkou oddelené bielymi miestami.

SFVec3f

Pole obsahujúce trojrozmerný vektor. SFVec3fy sú zapísané do súboru ako trojice hodnôt s pohyblivou rádovou čiarkou oddelené bielymi miestami.

MFColor

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ú.

MFLong

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 ]

MFString

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äť" ]

MFVec2f

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 ]

MFVec3f

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 ]


Pošli mi poštu nápady a návrhy... 7. apríla 1997