Next: 8.3 Bearbeitung von Eingaben
Up: 8 PIF-Editor-Kern
Previous: 8.1 Verwaltung der bearbeiteten
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