#include <oct_struct.h>
Klassendiagramm für OctStruct:
Öffentliche Typen | |
typedef Node * | _octree |
Oktalbaumstruktur-Typ. | |
Öffentliche Datenelemente | |
void | clear () |
Löscht die Oktalbaumstruktur. | |
bool | empty () |
Ist die Oktalbaumstruktur leer? | |
void | flush () |
Gewährleistet, dass die Oktalbaumstruktur minimiert ist. | |
Color | getMaxColor () |
Liefert den höchsten Farbwert zurück, den die Oktalbaumblätter enthalten. | |
size_t | getNodeSize () |
Liefert die Größe eines Knotens im Speicher in Bytes. | |
_octree & | getTree () |
Liefert die Oktalbaumstruktur. | |
void | print () |
Gibt den Oktalbaum auf der Konsole aus. | |
void | stat (Hight h, unsigned &sumNodes, unsigned &leafs, unsigned &innerNodes, unsigned &borderNodes, unsigned &normCells) |
Liefert die Statistik über das Modell. | |
Geschützte Datenelemente | |
OctStruct () throw (NotEnoughMemoryException*) | |
Default-Konstruktor. | |
_octree | createLeafs () throw (NotEnoughMemoryException*) |
Erzeugt ein neue Oktalbaumstruktur mit OCT_PARTS Blättern, die zu keinem Körper gehören. | |
_octree | createOneLeaf () throw (NotEnoughMemoryException*) |
Erzeugt ein Blattknoten, der zu keinem Körper gehören. | |
bool | exist (_octree tree) |
Gibt es tree? | |
_octree | getChild (_octree parent, PartType i) |
Liefert den Zeiger auf die i-te direkte Unterpartition. | |
Color | getColor (Node node) |
Liefert die Farbe eines Blattknotens. | |
bool | isLeaf (Node node) |
Ist der Knoten node ein Blatt? | |
bool | isNoObject (Node node) |
Gehört der Knoten zu keinem Körper? | |
bool | isUndefObj (Node node) |
Ist undefiniert, ob der Knoten zu einem / zu welchem Körper gehört? | |
void | remove (_octree &subtree) |
Löscht die Teil-Oktalbaumstruktur und gibt den Speicher wieder frei. | |
void | setColor (Node &node, Color color) |
Setzt die Farbe des Blatts. | |
void | setTree (_octree &tree) throw (NotEnoughMemoryException*) |
Ersetzt die Oktalbaumstruktur durch tree. | |
Geschützte Attribute | |
unsigned | countBorderNodes |
Anzahl der eingef"ugten Randknoten. | |
Private Datenelemente | |
bool | canCompact (Node node, Color &color) |
Überprüft, ob sich die direkten Unterpartitionen zusammenfassen lassen. | |
void | compact (Node &node) |
Minimiert den gesamten Baum, der sich unter node befindet, indem Unterpartitionen mit gleicher Farbe zusammengefasst werden. | |
void | compact (Node &node, Color color) |
Kompaktisiert den Knoten node zu einem Blatt der Farbe color. | |
void | printTree (Node node) |
Gibt den Oktalbaum, der sich node befindet (incl. | |
void | setLeaf (Node &node) |
Definiert node als Blattknoten. | |
void | stat (_octree tree, Hight h, unsigned &sumNodes, unsigned &leafs, unsigned &innerNodes, unsigned &normCells) |
Traversiert über den Oktalbaum, um die Statistik für das Modell zu ermitteln. | |
Private Attribute | |
_octree | root |
Adresse des Wurzelknotens der Oktalbaumstruktur. |
Unterste Schicht. Stellt Low-Level-Operationen für die Oktalbaumsturktur zur Verfügung.
|
Default-Konstruktor. Erzeugt einen neuen leeren Oktalbaum.
|
|
Überprüft, ob sich die direkten Unterpartitionen zusammenfassen lassen. In die Überprüfung werden nur die direkten Kinderknoten einbezogen.
|
|
Löscht die Oktalbaumstruktur. Gibt den für den Oktalbaum eventuell allozierten Speicher wieder frei und definiert den Wurzelknoten als Blatt, welches zu keinem Körper gehört. |
|
Kompaktisiert den Knoten node zu einem Blatt der Farbe color.
|
|
Minimiert den gesamten Baum, der sich unter node befindet, indem Unterpartitionen mit gleicher Farbe zusammengefasst werden.
|
|
Erzeugt ein neue Oktalbaumstruktur mit OCT_PARTS Blättern, die zu keinem Körper gehören.
|
|
Erzeugt ein Blattknoten, der zu keinem Körper gehören.
|
|
Ist die Oktalbaumstruktur leer?
|
|
Gibt es tree?
|
|
Gewährleistet, dass die Oktalbaumstruktur minimiert ist. Sugessive: Falls ein Knoten nur Blätter gleicher Farbe enthält, werden die Blätter gelöscht. Der Knoten wird zum Blatt und übernimmt die Farbe seiner Blätter. |
|
Liefert den Zeiger auf die i-te direkte Unterpartition.
|
|
Liefert die Farbe eines Blattknotens.
|
|
Liefert den höchsten Farbwert zurück, den die Oktalbaumblätter enthalten.
|
|
Liefert die Größe eines Knotens im Speicher in Bytes.
|
|
Liefert die Oktalbaumstruktur.
|
|
Ist der Knoten node ein Blatt?
|
|
Gehört der Knoten zu keinem Körper?
|
|
Ist undefiniert, ob der Knoten zu einem / zu welchem Körper gehört?
|
|
Gibt den Oktalbaum, der sich node befindet (incl. node) auf dem Bildschirm aus.
|
|
Löscht die Teil-Oktalbaumstruktur und gibt den Speicher wieder frei. Tut nichts, falls subtree == NULL.
|
|
Setzt die Farbe des Blatts.
|
|
Definiert node als Blattknoten.
|
|
Ersetzt die Oktalbaumstruktur durch tree. Zum Freigeben des Speichers, der durch die alte Oktalbaumstruktur belegt ist, muss explizit clear() aufgerufen werden.
|
|
Traversiert über den Oktalbaum, um die Statistik für das Modell zu ermitteln.
|
|
Liefert die Statistik über das Modell.
|
|
Adresse des Wurzelknotens der Oktalbaumstruktur.
|