Transform
{
eventIn MFNode
addChildren
eventIn MFNode
removeChildren
exposedField
SFVec3f center 0 0 0
exposedField
MFNode children []
exposedField
SFRotation rotation 0 0 1 0
exposedField
SFVec3f scale 1 1 1
exposedField
SFRotation scaleOrientation 0 0 1 0
exposedField
SFVec3f translation 0 0 0
field SFVec3f
bboxCenter 0 0 0
field SFVec3f
bboxSize -1 -1 -1
}
Węzeł Transform jest węzłem grupującym. Węzły tego typu służą do tworzenia przekształceń obiektów lub grup obiektów na scenie. Obiekty, które mają ulec przekształceniom umieszczane są w polu children węzła grupującego. Każde zastosowanie węzła Transform powoduje utworzenie nowego układu współrzędnych, których w naszym świecie możemy zdefiniować dowolną liczbę.
Pole center określa położenie środka naszego układu współrzędnych w stosunku lokalnego układu współrzędnych, czyli punktu (0,0,0). Pole center jest polem typu SFVec3f. W polu rotation możemy zdefiniować obrót obiektu w układzie współrzędnym, jest to pole typu SFRotation. Pole scale o typie SFVec3f określa skalowanie utworzonego przez nas układu współrzędnych. Wartości w tym polu powinny być > 0.0. Natomiast pole scaleOrientation odpowiada za obrót układu współrzędnych przed skalowaniem w celu określenia kierunku skalowania. Pole translation definiuje przesunięcie danego obiektu względem środka układu współrzędnych utworzonego przez zastosowanie węzła Transform. Spójrzmy na przykład Trans.wrl:
#VRML V2.0 utf8
Transform {
rotation 1
0 0 0.5
translation
0 0 -5
children [
Shape {
appearance
NULL
geometry Box
{
size 4 4 4
}
}
]
}
W powyższym przykładzie sześcian, który stworzyliśmy poprzednio, korzystając z węzła Transform, przemieszczony został względem układu współrzędnych. Nasz sześcian został obrócony względem osi X o kąt 0.5 radiana i przesunięty po ujemnej stronie osi Z o wartość 5 (metrów).