Zum Erzeugen einer Vielzahl gleichartiger Objekte dient die Kombination DEF/USE. DEF dient dazu ein Objekt zu benennen, benannte Objekte kann man dann mittels USE erneut instanziieren.
Dach Ein IndexedFaceSet |
DEF dach Shape { appearance Appearance { material Material { diffuseColor 1 1 0 } } geometry IndexedFaceSet { solid FALSE coord Coordinate { point [ -1.0 -1.0 1.5, #0 links unten vorn 1.0 -1.0 1.5, #1 rechts unten vorn 1.0 -1.0 -1.5, #2 rechts unten hinten -1.0 -1.0 -1.5, #3 links unten hinten 0 1.0 1.5, #4 oben vorn 0 1.0 -1.5 #5 oben hinten ] } coordIndex [ 0, 1, 2, 3, 0, -1, # unteres Quadrat 0, 4, 5, 3, 0, -1, # linkes Rechteck 1, 4, 5, 2, 1, -1, # rechtes Rechteck 0, 1, 4, 0, -1, # vorderes Dreieck 3, 2, 5, 3, -1 # hinteres Dreieck ] } } |
|
Etage
Ein Quader um zwei Einheiten verschoben, damit das Dach später passt. |
DEF etage Transform { children [ Shape{ appearance Appearance { material Material { diffuseColor 0 0.2 0.8 } } geometry Box { size 2 2 3 } } ] translation 0 -2 0 } |
Haus
Die Kombination der beiden benannten Objekte. Auch dieses Objekt wird benannt. |
DEF haus Transform { children [ USE dach USE etage ] }
|
Reihenhaus
Vier weitere Instanzen des Objektes Haus, jeweils verschoben gegenüber den bisherigen Objekten |
Transform { children [ USE haus ] translation 2 0 0.5 } Transform { children [ USE haus ] translation -2 0 -0.5 } Transform { children [ USE haus ] translation 4 0 1 } Transform { children [ USE haus ] translation -4 0 -1 } |