Formate

Einlesen

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.

Schreiben

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ärcodeBedeutung
1innerer 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)