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.