DBidentifyObjectUsingKnots

Top  Previous  Next

Punkt nach Koordinaten suchen.

In der Selektionsmenge der Datenbank root werden all die Punkte identifiziert, die in der Umgebung von (x,y) liegen. Im Einzelnen werden folgende Aktionen ausgeführt:

Wenn toleranz 0 ist, wird der Punkt zurückgegeben, der dem Punkt (x,y) am nächsten liegt. Beim Aufruf muß in anzahl mindestens 1 stehen, damit überhaupt ein Punkt abgespeichert werden kann. Werden in der Selektionsliste keine Punkte gefunden, so wird in anzahl 0 zurückgegeben, sonst steht in anzahl 1 und das erste Element im Feld points wird mit dem Zeiger auf diesen Punkt belegt. Ist toleranz >0, so werden alle Punkte gesucht, die einen Abstand von weniger als toleranz zu (x,y) haben. Wird anzahl vor dem Aufruf mit 0 initialisiert, so werden die Punkte nur gezählt und deren Anzahl wird in anzahl geschrieben. Ist anzahl >0, so werden die ersten anzahl Punkte in das Feld points geschrieben und die Zahl der gefundenen Punkte wird in anzahl zurückgegeben, nie jedoch mehr als zum Aufruf dort vorgegeben war.

Parameter

root (PROOT)                                             [IN]

Die Datenbank, deren Punkte identifiziert werden sollen. Die Punkte werden in der Selektionsmenge gesucht.

x (DOUBLE)                                                [IN]

X-Koordinate des Referenzpunktes.

y (DOUBLE)                                                [IN]

Y-Koordinate des Referenzpunktes

toleranz (DOUBLE)                                     [IN]

Abstand um den Referenzpunkt, in dem die Punkte gefunden werden sollen. Wenn toleranz=0 ist, wird der nächste Punkt ermittelt, wenn toleranz > 0 ist, werden alle Punkte ermittelt, deren Abstand von (x,y) nicht größer als toleranz ist. Ist toleranz < 0, so kann kein Punkt gefunden werden.

anzahl (int *)                                        [IN/OUT]

IN:             Anzahl der Punkte im Feld points, die dort maximal hineinpassen. Werden mehr Punkte gefunden, so werden die überzähligen nicht zurückgegeben. Ist anzahl = 0, so werden die Punkte nur gezählt.

OUT:          Anzahl der wirklich zurückgegebenen Punkte. Dies ist bei toleranz = 0 immer 0 oder 1.

points (T_PPOINT *)                         [IN/OUT]

Zeiger auf ein Feld, das die Zeiger der Punkte aufnehmen soll, die beim Identifizieren gefunden werden. Wenn die Punkte nur gezählt werden, dann ist dieser Zeiger irrelevant. Sonst muss er auf ein Feld mit ausreichend Speicherplatz zeigen.

typeSelect (int)                                            [IN]

Gibt vor, welche Elementtypen berücksichtigt werden. In dieser Variablen werden all die Konstanten TYPE_SELECT_??? geodert, die in die Suche eingeschlossen werden sollen. Wenn alle Elementtypen berücksichtigt werden sollen, dann kann auch die Konstante TYPE_SELECT_ALL verwendet werden.

parameterList (PIDENTIFY_PARAMETER) [IN]

Die Struktur IDENTIFY_PARAMETER enthält eine Liste aller DKY, DKA und KEY-Werte. Die Werte können zuvor mit der Routine SYSmakeParameterList erzeugt werden.

Ergebnis

---

Konstanten

TYPE_SELECT_STRING

TYPE_SELECT_TEXT

TYPE_SELECT_POINTELEMENT

TYPE_SELECT_ELIPSE

TYPE_SELECT_SYMBOL

TYPE_SELECT_ALL

Deklaration

#include "database.h"

 

void DLLENTRY DBidentifyObjectUsingKnots (

     PROOT                root,

     DOUBLE                  x,

     DOUBLE                  y,

     DOUBLE                  toleranz,

     int *                anzahl,

     T_PPOINT *              points,

     int                     typeSelect,

     PIDENTIFY_PARAMETER     parameterlist

);