next up previous contents
Next: Die Klasse gtTetraNetElement Up: Die Klasse gtTetraNet Previous: Topologische 3D-Beziehungen

Wichtige interne Funktionen

Eine wichtige Hilfsfunktion für topologische Prädikate der Volumen/Volumen-Situation stellt getTouchType dar. Sie wird speziell von den gtTetraNet-Methoden touchgif und overlap aufgerufen und dient der Ermittlung von Berührstellen und echten Schnitten. Das Vorkommen eines echten Schnittes ist für eine overlap-Lage notwendig, während Berührungen von den touch-Tests gesucht werden. Der Rückgabewert von getTouchType enthält dazu die Informationen, ob Berührstellen zu verzeichnen waren und welche Dimensionen diese aufweisen. Dazu werden alle auftretenden Berührobjekte bezüglich ihrer Dimension erfaßt, doppelte Vorkommen und Teilelementegif vernachlässigt und schließlich ein Wert zurückgeliefert, der die jeweiligen Dimensionen kodiertgif:

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


Desweiteren wurden im Zuge dieser Arbeit fehlende contains-Funktionen implementiert, da deren Funktionalität oft benötigt wurde. Weil diese Methoden für alle von gtObj abgeleiteten Klassen definiert sind, erfolgte eine virtuelle Deklaration:

   virtual int gtTetraNet::contains(const gtTriangle* t, int strict=0) const;
   virtual int gtTetraNet::contains(const gtTetrahedron* t, int str=0) const;
   virtual int gtTetraNet::contains(const gtTriangleNet* t, int str=0) const;
   virtual int gtTetraNet::contains(const gtTetraNet* t, int strict=0) const;


Außerdem war es angebracht, für die meisten topologischen Prädikate des Volumen/Fläche-Falles eine Hilfsfunktion bereitzustellen, welche der strikten Version der intersection-Methode entspricht, um einen echten Schnitt von einer Berührung unterscheiden zu können:

   int gtTetraNet::strictIntersects(const gtTriangleNet& t) const;



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