L'instruction PROTO permet de définir
un prototype d'objet paramétrable . On peut ainsi utiliser un objet
en le désignant par son nom, et en lui fournissant les paramètres
nécessaires. Exemple:
#VRML
V2.0 utf8 #-
KDO - Cours VRML : PROTO
#----------[
Notre prototype ] PROTO
une_sphere
[ field
SFVec3f ici
0 0 0 field
SFColor ma_couleur
0 0 1 ]
{
Transform
{
translation
IS ici children
[
Shape
{
geometry
Sphere { } appearance
Appearance {
material
Material {
ambientIntensity
0.5 diffuseColor
IS ma_couleur
}
}
}
]
}
}
NavigationInfo
{
headlight
FALSE
} #----------[Vue
initiale ] Viewpoint
{
position
0 1 28 description
"Position de départ" fieldOfView
0.35 jump
TRUE
Rien de bien nouveau dans ce script, et pourtant, en très
peu de lignes nous avons créé 6 objets dont la position et
la couleur varie. La déclaration du prototype attend en effet 2
paramètres, un pour la position de l'objet (paramètre ici),
un autre pour sa couleur (paramètre ma_couleur).
Dans le bloc Transform, le champ translation
qui doit recevoir une valeur de position sera affecté de la valeur
ici au moyen de l'instruction
IS. De même le champ diffuseColor
sera lui affecté de la valeur ma_couleur
toujours au moyen de l'instruction IS. La suite du script est classique jusqu'à la déclaration
des objets. Là, nous déclarons 6 objets dont le nom est une_sphere,
c'est à dire le nom que l'on a donné au prototype. Chaque
bloc une_sphere contient donc un paramètre
ici avec sa valeur et un paramètre
ma_couleur avec une valeur de couleur. On notera la puissance de ce procédé qui permet de
créer beaucoup d'objets en peu de lignes.