DBidentifyObjectUsingPath

Top  Previous  Next

Object look for co-ordinates.

In the selection amount of the data bank root all points which lie in the surroundings from (x, y) are identified. Besides, not the base with the slightest distance is searched in contrast to the procedure DBidentifyObjectUsingKnots by the Sollkoordinate, but the point of the object which lies the Sollkoordinate with the next. The plumb line on the line trains is liked in each case and with it the distance of the Sollpunktes is determined by the lines. In detail the following actions are explained:

If toleranz 0 are, the point is returned in the amount of the selected objects which lies to the point (x, y) most near. By the call must stand in anzahl at least 1, so that generally a point can be stored away. If no points are found in the selection list, is returned in anzahl 0, but stands in anzahl 1 and the first element in the field points it is booked with the trading. Besides, the trading of the point which lies on the distance before the actually found point is returned. Furthermore the co-ordinates of the point which lies on this distance most near the Sollpunkt are worked out. In addition, are filed in the field status information about the found point. These are defined by the constants performed below and offer the values

„The intersection is perpendicular under the digitized point“,

„The intersection has met the data bank point precisely“,

„The digitized point lies before the data bank point“,

„The digitized point lies behind the data bank point“,

„The intersection lies in the 2nd segment of a definition of a circle“,

„The digitized point is the centre of a circle, the identification is not unequivocal“,

„The digitized point is a part of a text“

as well as sensible combinations of it. Texts and symbols are treated accordingly. Is toleranz >0, all points which have a distance from less than toleranz to (x, y) are searched. It is initialized anzahl before the call with 0, the points are only counted and their number is written in anzahl.

Parametre

root (PROOT) [IN]

The data bank whose points should be identified. The points are searched in the selection amount.

x (STANDS IN) [IN]

X co-ordinate of the authoritative point.

y (STANDS IN) [IN]

Y co-ordinate of the authoritative point

toleranz (STANDS IN) [IN]

Distance around the authoritative point in which the points should be found. If toleranz=0 is, the next point is determined if toleranz> 0 are, all points whose distance from (x, y) is not greater than toleranz are determined. Is toleranz< 0, no point can be found.

anzahl (int *) [IN / OUT]

IN: Number of the points in the field points which fit there at most. If more points are found, are not returned supernumerary. Is anzahl = 0, the points are only counted.

OUT: Number of the really returned points. This is with toleranz = 0 always 0 or 1.

typeSelect (int) [IN]

Gives which element types are considered. In these variables become all constants TYPE_SELECT _??? the geodert which should be enclosed in the search. If all element types should be considered, the constant TYPE_SELECT_ALL can be also used.

points (T_PPOINT *) [IN / OUT]

Pointer on a field which should take up the pointers of the points which are found with identifying. If the points are only counted, this pointer is irrelevant. But he must point at a field with enough storage space. Here will stand after the procedure call the Handles of the points which stand in each case before the real, next point in the data bank.

status (BYTE *) [IN / OUT]

Pointer on a field which should take up the point qualities which are found with identifying. If the points are only counted, this pointer is irrelevant. But he must point at a field with enough storage space. Here become combinations of the constants performed below zurückgeliefert.

xLot (STANDS IN *) [IN / OUT]

yLot (STANDS IN *) [IN / OUT]

Pointer on two fields which should take up the co-ordinates of the found, nearest points. If the points are only counted, this pointer is irrelevant. But he must point at a field with enough storage space. If to single points were found, their co-ordinates stand in these fields. If points within a line or a circle were found, here the co-ordinates of the nearest point stand on the line, or the circle. With texts the position of the toe is put down here.

pIsHiddenL (int) [IN]

If becomes this value on TRUE (! = 0) sedate, so all P connections are so treated in line trains as if these are invisible lines. If is the value FALSE (=0), the line trains are interrupted with a P connection.

parameterList (PIDENTIFY_PARAMETER) [IN]

The structure IDENTIFY_PARAMETER contains a list all DKY, DKA and KEY values. The values can be generated before with the routine SYSmakeParameterList.

Result

---

Constants

TYPE_SELECT_STRING

TYPE_SELECT_TEXT

TYPE_SELECT_POINTELEMENT

TYPE_SELECT_ELIPSE

TYPE_SELECT_SYMBOL

TYPE_SELECT_ALL

IDENTIFY_PATH_STATUS_IS_PERPENDICULAR

IDENTIFY_PATH_STATUS_IS_EXACT

IDENTIFY_PATH_STATUS_IS_BEFORE

IDENTIFY_PATH_STATUS_IS_AFTER

IDENTIFY_PATH_STATUS_IS_SECOND_ARC_POINT

IDENTIFY_PATH_STATUS_IS_ARC_CENTER_POINT

IDENTIFY_PATH_STATUS_IS_ON_TEXT

Declaration

#include "database.h"

 

void DLLENTRY DBidentifyObjectUsingPath (

PROOT root,

STAND-IN x,

STAND-IN y,

STAND-IN toleranz,

int * anzahl,

int typeselect,

T_PPOINT * points,

BYTE * status,

STAND-IN * xLot,

STAND-IN * yLot,

int pIsHiddenL

PIDENTIFY_PARAMETER parameterlist

);