next up previous contents
Next: 8.3 Bearbeitung von Eingaben Up: 8 PIF-Editor-Kern Previous: 8.1 Verwaltung der bearbeiteten

8.2 Geometrische Lokalisierung

Ein zentrales Problem geometrischer Interaktion ist das Auffinden des richtigen Objektes zu einer gegebenen Position.

Zur Zeit ist im PED nur geringe Unterstützung für eine effiziente Lösung dieser Aufgabe vorhanden. Ein Quad-Tree [33] ist in Vorbereitung, aber noch nicht implementiert. Daher werden die in Frage kommenden Objekte der Reihe nach getestet, um das am besten passende zu finden.

Die folgenden derartigen Abfragen stehen zur Verfügung:

pedPointsSnap
sucht einen Punkt, der durch eine Position oder eine Gerade getroffen wird. Die Suche wird beeinflußt durch einen Radius, innerhalb dessen der Punkt von der Position (Geraden) aus liegen muß. Erfüllen mehrere Punkte dieses Kriterium, dann wird der nächstliegende, und von allen gleich nahe liegenden der erste gewählt.

pedLinesSnap
sucht entsprechend eine Linie. Der Fangradius bezeichnet um die Linie ein Rechteck (im dreidimensionalen Fall einen Zylinder), dessen Langseiten parallel zur Linie liegen, das eine Breite mit dem doppelten Fangradius hat, und das genau die Länge der Linie hat. Dieses Rechteck (Zylinder) muß getroffen werden, um die Linie in das engere Auswahlverfahren aufzunehmen.

pedFacesSnap
liefert im zweidimensionalen Fall die erste Fläche, die die Position enthält. Bei dreidimensionalen Geometrien wird bei Positionsangaben die Fläche nach beiden Seiten um den Fangradius zu einem Prisma erweitert, während Einfangen mit einer Geraden die oberste getroffene Fläche liefert.

pedObjectsSnap
kombiniert die zuvorbeschriebenen Methoden, um ein beliebiges geometrisches Objekt einzufangen. Die Tests für Punkte, Linien und Flächen werden der Reihe nach durchgeführt, bis einer erfolgreich war. Dessen Objekt ist das Resultat der Suche.

Es existieren auch Funktionen zur Auswahl von Segmenten und Grenzen, die zuerst ein entsprechendes geometrisches Objekt suchen und von diesem über die Rückreferenz das physikalische Objekt ermitteln.



Martin Knaipp
Wed Jun 12 15:41:33 MET DST 1996