Sommaire | Page precedente | Page suivante | page 18 |
Ils permettent de creer de nouveau types de noeuds a l'interieur d'un fichier vrml.
PROTO Clignote [ field MFColor couleurs 0 0 0 #champ couleurs field SFTime temps 1 #champ temps ] { DEF M Material {} DEF C ColorInterpolator { keyValue IS couleurs key [0 0.5 1] } DEF T TimeSensor { enabled TRUE loop TRUE cycleInterval IS temps } ROUTE T.fraction_changed TO C.set_fraction ROUTE C.value_changed TO M.diffuseColor } Transform { children [ Shape { appearance Appearance { material Clignote { #on utilise le proto couleurs [1 0 0,0 0 1] #rouge vers bleu temps 2.0 #cycle de 2 secondes } geometry Sphere {} } } ] }
PROTO nom_proto [ eventIn type nom eventOut type nom field type nom valeur_par_defaut exposedField type nom valeur_par_defaut ]Le type du proto est celui du premier noeud rencontre dans le corps.Dans l'exemple Material:
DEF M Material {} #type du protoDans le corps, on utilise IS pour attribuer les noms des variables aux champs des noeuds utilises.
cycleInterval IS temps #associe cycleInterval a tempsOn utilise le proto comme un noeud normal.Il peut etre utilise au memes endroits que le premier noeud du corps.On peut le nomer avec DEF et le reutiliser avec USE.
nom_proto { field valeur field valeur }
EXTERNPROTO nom [ eventIn type nom eventOut type nom field type nom exposedFiled type nom ] "addresse du externproto"Contrairement au proto,l'externproto ne contient pas de corps mais l'addresse d'un proto. Il ne contient pas non plus de valeur_par_defaut pour les fields et exposedFiels, ceux-ci etant definis dans le fichier du proto.