Komendy DEF i USE służą, mówiąc w dużym skrócie, do jednorazowego definiowania obiektów (DEF), co daje możliwość wielokrotnego ich przywoływania (USE). Komend DEF/USE używa się generalnie w dwóch przypadkach:
#VRML V2.0 utf8
Transform {
rotation 1
0 0 0.5
translation
0 2 -10
children [
DEF Szescian
Shape { # DEFiniujemy nasz
# Szescian
appearance
Appearance {
material Material
{
emissiveColor
1 1 0
transparency
0
specularColor
0 1 0
}
}
geometry Box
{
size 4 4 4
}
}
]
}
Transform {
rotation 0
1 0 0.5
translation
10 0 -10
children [
USE Szescian ] # Przywolujemy nasz Szescian
# w innym miejscu
}
Transform {
rotation 0
0 1 0.5
translation
-10 4 -10
children [
USE Szescian ] # Przywolujemy nasz Szescian
# po raz drugi
}
W pierwszym węźle Transform wszystko pozostało bez zmian z wyjątkiem zmiany kolorów i dopisania przed węzłem Shape komendy DEF i nazwy definicji, której dokonujemy (niezbędne!!!). Następnie wprowadzamy dwa następne węzły Transform, w których za pomocą komendy USE odwołujemy się do zDEFiniowanego sześcianu. Prawda, że proste? Spójrzmy jak to wygląda - DefUse.wrl.