Das Modell, aus dem der Oktalbaum erzeugt werden soll, muss in
Autodesks AutoCad 2000
DXF-Format gegeben sein. Zum Einlesen des DXF-Modells wird die
DXF-Bibliothek
dime von Coin3d
verwendet.
Folgende Oberflächenarten werden unterstützt:
Polygone
Hierfür wird die Entity
3DFACE
genutzt, durch die Drei- bzw. Vierecke modelliert werden können.
Splines
Ab Version 0.1.1 unterstützt
cad2octree
auch die Oktalbaumgenerierung für Körper, die über
Spline-Flächen
modelliert wurden.
Hierfür wird die Entity
POLYLINE
genutzt. Es werden jedoch ausschließlich kubische
B-Splines1
ausgewertet. Alle anderen Einträge werden ignoriert.
Es sind auch gemischte Modelle (die sowohl
Polygon- als auch Spline-Oberflächen besitzen) möglich.
Alle anderen Entities und Sections werden ignoriert.
Das Modell muss ein abgeschlossenes Volumen (einen sogenannten Rigid
Body) darstellen.
Der erzeugte Oktalbaum wird zur persistenten Speicherung
preorder-traversiert. Als Dateikopf wird die maximale Baumtiefe (als
integer-Zahl) gefolgt vom ASCII-Zeichen 10
geschrieben.
Anschließend folgt nun der traversierte Oktalbaum als
Binärstrom:
Binärcode
Bedeutung
1
innerer Knoten
01
Blatt, zugehörige Zelle befindet sich innerhalb des
Körpers
00
Blatt, zugehörige Zelle befindet sich außerhalb des
Körpers
1
Oberflächentyp: Cubic B-spline surface (Group code 75),
Typ polygon mesh und den gesetzten Flag-Bits Spline-fit, 3D polygon
mesh (Groupcode 70)