next up previous contents
Next: Die Klasse gtTriangleNetElement Up: Die Klasse gtTriangleNet Previous: Topologische 3D-Beziehungen

Wichtige interne Funktionen

Von großer Bedeutung für die Implementierung der topologischen Prädikate sind auch die Hilfsfunktionen der Klasse gtTriangleNet, welche die Dimension einer Berührstelle bestimmen. Hierfür wurden zwei verschiedene Funktionen bereitgestellt: getTouchType, das von den Prädikaten touch und cross verwendet wird, und getCoverType, für die Methoden covers/covered und in/ni der Fläche/Fläche-Situation.

Die Funktion getTouchType liefert die Punkt- und Segmentberührungen der beiden Flächen und erkennt auch echte Schnitte, deren Dimension als negativer Wert zurückgegeben wird; getCoverType hingegen setzt schon eine contains-Lage der Dreiecksnetze voraus und bestimmt daher die Dimensionen der ``Berührungen von Innen``. Mit dem stop-Flag können verschiedene Abbruchbedingungen an diese Funktion übergeben werden, damit irrelevante Berechnungen übergangen werden können:

   int gtTriangleNet::getTouchType(const gtTriangleNet& t) const;

   int gtTriangleNet::getCoverType(const gtTriangleNet& t, int stop=0) const;


Auf die Funktionalität der zwei contains-Funktionen, die ebenfalls im Rahmen dieser Arbeit realisiert wurden, greifen fast alle topologischen Methoden dieser Klasse zurück. Sie werden für Dreiecke und Dreiecksnetze angeboten:

   int gtTriangleNet::contains(const gtTriangle* t) const;
   int gtTriangleNet::contains(const gtTriangleNet* t) const;

   gtGroup* gtTriangleNet::getSurfaceSegments() const;


Da der Rand von gtTriangleNet-Objekten bei der Bestimmung von topologischen Beziehungen nicht so häufig benötigt wird, wie der Rand von Tetraedernetzen, wurde in dieser Klasse keine Randverwaltung eingeführt. Statt dessen ermittelt die Hilfsfunktion getSurfaceSegments für ein Dreiecksnetz bei Bedarf deren Menge von Randsegmenten.



Stefan Hecht
Thu Aug 26 14:06:24 MET DST 1999