Politecnico di Milano - Facoltà del design
© Prof. Giovanni Gigante - Revisione 1 (28 maggio 2003)
Il nodo Group è una specie di "contenitore" che può contenere al suo interno diversi nodi. Al momento non sembra molto utile, ma la sua utilità risulterà chiara più avanti. Per il momento vediamo com'è fatto:
| nodo Group (descrizione parziale) | ||
children |
I nodi che fanno parte del gruppo (delimitati da parentesi quadre, separati da virgole) | [ ] (nessuno) |
Si può dare un nome a un nodo, precedendone la dichiarazione dalla parola
chiave DEF seguita dal nome scelto. Per esempio, per creare un
piccolo cubo e dargli il nome "cubetto":
DEF cubetto Shape {
geometry Box {
size 1.0 1.0 1.0
}
}
Dopo aver fatto questo, si potrà richiamare il nodo per nome quante
volte si vuole, senza doverlo riscrivere ogni volta: basterà scrivere
la parola USE seguita dal nome da noi attribuito al nodo. Per esempio,
per creare una seconda copia (istanza) del cubo da noi precedentemente battezzato:
USE cubetto
Che si usa come un'abbreviazione equivalente a riscrivere tutta la definizione
del cubetto, ossia: Shape { geometry Box { size 1.0 1.0 1.0 } }
Questo sistema è molto comodo per definire una volta sola oggetti e proprietà, e riutilizzarle più volte.
Questo oggetto è costituito da tre parallelepipedi che formano un unico
gruppo (Group). Il nodo Appearance che applica il colore rosso
viene scritto una volta sola, e usando DEF gli viene attribuito un nome ("coloreazzurro").
In questo modo viene poi applicato alle altre due aste, con USE, senza doverlo
riscrivere ogni volta.
#VRML V2.0 utf8
Group {
children [
Shape {
appearance DEF coloreazzurro Appearance {
material Material { diffuseColor 0.2 0.2 1.0 }
}
geometry Box { # l'asta orizzontale
size 6.0 1.0 1.0
}
},
Shape {
appearance USE coloreazzurro
geometry Box { # l'asta verticale
size 1.0 6.0 1.0
}
},
Shape {
appearance USE coloreazzurro
geometry Box { # l'asta ortogonale
size 1.0 1.0 6.0
}
}
]
}