The Virtual Reality Modeling Language
Dušan Hanuska


Matice
Do tejto triedy uzlov patria uzly, ktoré robia transformácie za nimi nasledujúcich objektov pomocou matíc. Sú to nasledujúce uzly:

Tento uzol definuje geometrickú 3D transformáciu s maticou 4 krát 4. Všimnite si, že niektoré matice (také ako singulárne) smú spôsobiť chyby.
Formát definovania uzla a prednastavené hodnoty:
MatrixTransform {
matrix 1 0 0 0 # matica typu SFMatrix
0 1 0 0
0 0 1 0
0 0 0 1
}
Príklad
Tento uzol definuje 3D otočenie okolo hociktorej osi oproti pôvodnému. Otočenie sa pridáva do
súčasnej transformácie, ktorá sa aplikuje na nasledovné tvary, tzn. že otočenie ostane platné aj
po vykreslení objektu. Ak sa chcete vrátiť k pôvodným súradniciam, musíte urobiť otočenie o ten
istý uhol v opačnom smere.d
Formát definovania uzla a prednastavené hodnoty:
Rotation {
rotation 0 0 1 0 # otočenie typu SFRotation
}
Príklad
1
2
Tento uzol definuje 3D škálovanie oproti pôvodnému. Ak nie sú všetky komponenty škálovacieho
vektora rovnaké, potom nastane nerovnaké škálovanie.
Formát definovania uzla a prednastavené hodnoty:
Scale {
scaleFactor 1 1 1 # škálovací faktor typu SFVec3f
}
Príklad
Tento uzol definuje geometrickú 3D transformáciu pozostávajúcu (v poradí) z pravdepodobne
nejednotnej mierky okolo svojvoľného bodu, otočenia okolo svojvoľného bodu a osí a posuvu.
Formát definovania uzla a prednastavené hodnoty:
Transform {
translation 0 0 0 # posun typu SFVec3f
rotation 0 0 1 0 # otočenie typu SFRotation
scaleFactor 1 1 1 # škálovací faktor typu SFVec3f
scaleOrientation 0 0 1 0 # orientácia škály typu SFRotation
center 0 0 0 # stred typu SFVec3f
}
| Transformačný uzol |
je rovnocenný |
sekvencii |
Transform {
translation T1
rotation R1
scaleFactor S
scaleOrientation R2
center T2
}
|
<=> |
Translation { translation T1 }
Translation { translation T2 }
Rotation { rotation R1 }
Rotation { rotation R2 }
xScale { scaleFactor S }
Rotation { rotation -R2 }
Translation { translation -T2 }
|
Príklad
Tento uzol definuje posun o 3D vektor.
Formát definovania uzla a prednastavené hodnoty:
Translation {
translation 0 0 0 # posun typu SFVec3f
}
Príklad
1
2
3
4
5
6