#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.
|
1.2.16