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 
    }
 
 
Le bloc Transform  permet de positionner, de mettre à l'échelle et de faire effectuer des rotations à un bloc ou a un ensemble de blocs .

 
Champs de Transform
addChildren Evènement. Permet d'ajouter un bloc enfant
removeChildren Evènement. Permet de supprimer un bloc enfant
center Permet de spécifier un centre pour l'opération de changement du facteur d'échelle 
children Contient le ou les blocs subissant la transformation
rotation Permet d'effectuer une rotation en donnant un vecteur x,y,z et un angle en radians
scale Permet de modifier le facteur d'échelle
scaleOrientation Permet de spécifier un vecteur de rotation pour l'opération de mise à l'échelle
translation Permet de positionner un objet par rapport au point 0 0 0
bboxCenter Permet de spécifier le centre d'une boite englobante
bboxSize Permet de créer et de spécifier la taille d'une boite englobante invisible
 
Exemple:

#VRML V2.0 utf8
#------------------------------------------------
# Description  : Fichier à inclure pour cours
# Auteur       : KDO
#------------------------------------------------

#-------------------[ Le Sol ]-------------------
Transform {

translation 0 -1.5 0
children [
Shape {
geometry Box { size 80 0.01 80 }
appearance Appearance {
material Material {
ambientIntensity 0.5
}
texture PixelTexture {
image 2 2 3
0x0000FF 0xEEEEEE
0xEEEEEE 0x0000FF
}
textureTransform TextureTransform {
scale 9 9
}
}
}
]
}
#---------------[ Le Cube ]----------------
Transform {
translation -4 0 0
rotation 0.5 0.5 0.5 1.7
children [
Shape {
geometry Box {}
appearance Appearance {
material Material {
ambientIntensity 0.3
diffuseColor 0 0.8 0.2
}
}
}
]
}
#---------------[ La Sphère ]--------------
Transform {
translation 0 0 -4
children [
Shape {
geometry Sphere {}
appearance Appearance {
material Material {
ambientIntensity 0.3
diffuseColor 0.5 0 0.8
}
}
}
]
}
#---------------[ Le Cone ]----------------
Transform {
translation 4 0 0
rotation 0 0 1 0.75
children [
Shape {
geometry Cone {}
appearance Appearance {
material Material {
ambientIntensity 0.3
diffuseColor 0.8 0 0
}
}
}
]
}
 
 

Analyse:
 
Comme nous pouvons le constater, positionner un ou plusieurs objets ne complique pas vraiment les choses. Il suffit de spécifier la position avec le champ translation, et d'insérer notre objet dans le champ children.
En ce qui concerne les rotations, vous remarquerez qu'il n'est pas aisé de manipuler un vecteur et un angle en radians.... Mais le Groupe VRML, est là pour vous aider : Nous mettons à votre disposition un petit utilitaire qui vous permettra de rentrer la rotation autour des 3 axes en degrés, et il vous donnera comme résultat, les valeurs à mettre en VRML.