DBaddPointExisting

Top  Previous  Next

Stützpunkt hinzufügen, ID ist bekannt.

Jedes Stringelement besteht aus einer beliebigen Anzahl von Punkten, die vor allem aus einer Position und einer Verbindungsart zum Vorgänger bestehen. Als Verbindungen sind keine (unsichtbare) Verbindung (P), gerade Linie (L), Kreis (R) und Spline (C) möglich. Mit DBaddPointExisting wird an einen String hinten ein weiterer Punkt angefügt. Im Gegensatz zur Funktion DBaddPoint wird bei DBaddPointExisting die ID des Punktes vorgegeben.

Parameter

string (PSTRING_ELEMENT)                   [IN]

An dieses Stringelement wird der Punkt angehängt.

position[3] (DOUBLE)                                 [IN]

Dies ist die Position des neuen Punktes im Raum. Wenn als Format FORMAT_2D angegeben ist, werden nur die ersten beiden Werte benutzt. Bei FORMAT_3D werden alle drei Werte verwendet.

linkage (int)                                                  [IN]

Mit diesem Wert wird die Art der Verbindung zum vorhergehenden Punkt festgelegt. Als mögliche Werte sind hier die unten definierten LINK_L, LINK_R, LINK_C und LINK_P zulässig. Der erste Punkt eines String muss den Linkagetyp LINK_P haben. Dies wird nicht überprüft, sondern bei den verarbeitenden Prozeduren einfach angenommen. LINK_L verbindet mit einer Strecke, LINK_P verbindet unsichtbar, LINK_C verbindet mit einem Spline und LINK_R verbindet mit einem Kreissegment.

symbol (int)                                                  [IN]

Der eigentliche Punkt kann mit einem Symbol sichtbar dargestellt werden. Wenn in symbol 0 angegeben ist, so wird kein Symbol eingesetzt. Ansonsten wird das Symbol mit der angegebenen Nummer aus der Symboltabelle entnommen.

klasse (int)                                                   [IN]

Punkte werden in Punktklassen eingeteilt, die z.B. zum Suchen genutzt werden können. Hiermit wird diese Klasse festgelegt.

format (int)                                                   [IN]

Mögliche Werte sind FORMAT_2D und FORMAT_3D. Hiermit wird festgelegt, ob der Punkt eine Höhe besitzt oder nicht. Im Falle FORMAT_2D wird die 3. Koordinate von position ignoriert.

blockId (ULONG)                                        [IN]

systemID (ULONG)                                    [IN]

ID des neuen Punktes. Diese ist normalerweise nicht bekannt und kann dann mit blockID=0 und systemID=0 gesetzt werden. Der Aufruf entspricht dann DBaddPoint.

Ergebnis

(T_PPOINT)                                            [OUT]

Das Handle des Punktes, der im angegebenen String neu angelegt wurde. Wenn ein Fehler aufgetreten ist wird statt dessen NULL zurückgegeben.

Deklaration

#include "database.h"

 

T_PPOINT DLLENTRY DBaddPoint (

     PSTRING_ELEMENT      string,

     DOUBLE               position[3],

     int                  linkage,

     int                  symbol,

     int                  klasse,

     int                  format,

     ULONG             blockID,

     ULONG             systemID

);

Konstanten

Werte für linkage (siehe LINKAGE)

#define LINK_L                   1

#define LINK_R                  2

#define LINK_P                  3

#define LINK_C                  4

#define LINK_CON     5

#define LINK_RPT               6

#define LINK_CLS               7

#define LINK_EBD     8

Verwandte Funktionen

DBdeletePoint

DBaddPointElement

Marker-Element im Objekt erzeugen.

Während Linienzüge mindestens einen Stützpunkt enthalten müssen, lassen sich mit Punktelementen einzelne Punkte in der Datenbank unterbringen. Jedes Punktelement besteht dabei aus einem einzelnen Punkt mit allen Eigenschaften eines Punktes aus einem String. Auf dem Bildschirm erscheinen Punktelemente in einer besonderen Form. Punktelemente mit Punktklassen zwischen 1 und 15 werden entsprechend den Markern von Gradis dargestellt, d.h. als nicht skalierte geometrische Markierungen. Alle anderen Punktelemente werden nicht sichtbar. Dies kann vom Anwender mit Hilfe einer eigenen Zeichenfunktion umdefiniert werden. Alle anderen Eigenschaften des Punktes werden beim Zeichnen nicht berücksichtigt. Sie werden aber unverändert im Punktelement gespeichert.

Parameter

object (POBJECT) [IN]

Das neue Punktelement soll in dieses Objekt eingefügt werden. Wenn das Objekt selektiert ist, wird das neue Element sofort dargestellt.

pbuf[3] (DOUBLE) [IN]

Dieses Feld enthält die Koordinaten des neuen Punktelementes. Wenn als format FORMAT_2D angegeben ist, werden nur die ersten beiden Werte berücksichtigt.

linkage (int) [IN]

Dieser Wert wird als LINK_? in das Punktelement eingetragen, zeigt aber keine Wirkung, da nur ein einzelner Punkt vorhanden ist. Dieser kann schlecht mit einem Vorgänger verbunden werden.

symbol (int) [IN]

Wenn an dieser Stelle eine von 0 verschiedene Zahl steht, wird an der Stelle das entsprechende Symbol statt des Punktelementes gezeichnet.

klasse (int) [IN]

Solange symbol 0 ist, bestimmt klasse das Aussehen des Punktelementes. Für Werte zwischen 1 und 15 wird das aus Gradis bekannte Markiersymbol gezeichnet, sonst bleibt das Punktelement unsichtbar.

format (int) [IN]

Als mögliche Werte sind hier FORMAT_2D und FORMAT_3D vorhanden. Bei FORMAT_2D wird die dritte Koordinate (z-Wert) als 0 angenommen und nicht aus pbuf übernommen.

Ergebnis

(PPOINT_ELEMENT) [OUT]

Das Handle des neu eingefügten Elements. Mit diesem Handle lässt sich das Element abfragen und manipulieren.

Deklaration

#include "database.h"

[****]

PPOINT_ELEMENT DLLENTRY BaddPointElement (

POBJECT object,

DOUBLE pbuf[3],

int linkage,

int symbol,

int klasse,

int format

);

[****]

 

DBinsertPoint

DBaddRasterElement