DBidentifyPointsInElementUsingPath

Top  Previous  Next

Suche von Lotpunkten.

In dem angegebenen Element werden all die Punkte identifiziert, die in der Umgebung von (x,y) liegen. Dabei wird im Gegensatz zur Prozedur DBidentifyPointsInElementsUsingKnots nicht der Stützpunkt mit dem geringsten Abstand von der Sollkoordinate gesucht, sondern der Punkt des Objekts, der der Sollkoordinate an nächsten liegt. Es wird also jeweils das Lot auf die Linienzüge gefällt und damit der Abstand des Sollpunktes von den Linien bestimmt. 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 im Element 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

elem (PELEMENT)                                     [IN]

Handle auf beliebiges Element.

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_PPOINTS *)                       [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.

status (BYTE *)                                  [IN/OUT]

Zu jedem Lotpunktpaar gibt es einen Status, der die Lage zu den Stützpunkten beschreibt. Siehe Konstanten

xLot (DOUBLE *)                               [IN/OUT]

Liste von den X-Werten der gefundenen Lotpunkte.

yLot (DOUBLE *)                               [IN/OUT]

Liste von den Y-Werten der gefundenen Lotpunkte

pIsHiddenL (int)                                          [IN]

Wird dieser Wert auf TRUE (!= 0) gesetzt, so werden alle P-Verbindungen in Linienzügen so behandelt, als seien es unsichtbare Linien. Ist der Wert FALSE (=0), so werden die Linienzüge bei einer P-Verbindung unterbrochen.

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

---

Deklaration

#include "database.h"

 

void DLLENTRY DBidentifyPointsInElementUsingPath (

     PELEMENT             elem,

     DOUBLE                  x,

     DOUBLE                  y,

     DOUBLE                  toleranz,

     int *                anzahl,

     T_PPOINTS *             points,

     BYTE *                  status

     DOUBLE *             xLot,

     DOUBLE *             yLot,

     int                     pIsHiddenL,

     PIDENTIFY_PARAMETER     parameterlist

);

Konstanten

IDENTIFY_PATH_STATUS_IS_PERPENDICULAR                          1

IDENTIFY_PATH_STATUS_IS_EXACT                                      2

IDENTIFY_PATH_STATUS_IF_BEFORE                                     4

IDENTIFY_PATH_STATUS_IS_AFTER                                       8

IDENTIFY_PATH_STATUS_IS_SECOND_ARC_POINT          16

IDENTIFY_PATH_STATUS_IS_ARC_CENTER_POINT           32

IDENTIFY_PATH_STATUS_IS_ON_TEXT                                   64

Verwandte Funktionen

DBidentifyPointsInElementUsingKnots