DBinsertPoint

Top  Previous  Next

Einen Punkt mitten in einen String einfügen.

Jedes Stringelement besteht aus einer beliebigen Anzahl von Punkten, die unter anderem 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 DBinsertPoint wird in einem String an beliebiger Stelle ein weiterer Punkt eingefügt.

Parameter

point (T_PPOINT)                                       [IN]

Hinter diesem Punkt wird der neue Punkt eingefügt. Wenn statt des Handles für einen Punkt das Handle eines Stringelements angegeben wird, wird der neue Punkt vor dem ersten vorhandenen Punkt eingefügt.

pbuf[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.

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 nicht, 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, 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 pbuf ignoriert.

Ergebnis

(T_PPOINT)                                            [OUT]

Konnte der Stützpunkt angelegt werden, wird ein Handle darauf zurückgeliefert, sonst NULL.

Deklaration

#include "database.h"

 

T_PPOINT DLLENTRY DBinsertPoint (

     T_PPOINT point,

     DOUBLE      pbuf[3],

     int         linkage,

     int         symbol,

     int         klasse,

     int         format

);

Konstanten

#define LINK_L         1

#define LINK_R         2

#define LINK_P         3

#define LINK_C         4

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

);

[****]