SIGN DATA

Top  Previous  Next

This structure is used in Moskito by procedures which want to take over the drawing on the screen and the Plotten. There are two beginning points.

A routine which wants to generate from the data bank graphic issues and, besides, the plot machine of Moskito uses, puts down here her parametres and functions.

A driver of special plotters is called with this structure.

 

typedef struct SIGN DATA {

ULONG colorTable [17];

int signaturTabelle;

long int flags [100];

PROOT root;

int device;

int rekursionsStufe;

int clip;

char * plotFileName;

void * userData;

char * blattname;

stand in offsX;

stand in offsY;

stand in rotation;

stand in linescale;

stand in textscale;

stand in symbolscale;

stand in scaleAfterOutput;

stand in scaleBeforeUse;

stand in top;

stand in left;

stand in bottom;

stand in right;

stand in rotX;

stand in rotY;

stand in pixelSize;

TOOL_TAB * tools;

KEY keys [MAX_KEYS];

USHORT keyCount;

void (DLLENTRY *addLine) (struct SIGN DATA * data,

Colour definition fd,

stand in x1,

stand in y1,

stand in x2,

stand in y2);

void (DLLENTRY *addText) (struct SIGN DATA * data,

Colour definition fd,

char * text,

TEXT_SETTINGS * tSet,

int level ones,

stand in x,

stand in y,

char * fontname,

int doDraw);

void (DLLENTRY *addRaster) (struct SIGN DATA * data,

Colour definition fd,

int datatype,

int spreads,

int hoehe,

char * rasterdata,

int rasterFlags,

int level ones,

stand in x,

stand in y,

stand in x2,

stand in y2,

long int * colortable,

long int dataLen,

int lightining,

int doDraw);

PSEGMENT openSeg;

PPLANS openPlan;

POBJECT openObj;

PELEMENT openEl;

T_PPOINT openPoint;

MODIF modLayer [16];

int pIsHiddenL;

void * atxtab;

char * atxfixtext;

char * breakRequest;

int darstellungsModell;

void (DLLENTRY *addArc) (struct SIGN DATA * data,

Colour definition fd,

stand in x1,

stand in y1,

stand in x2,

stand in y2,

stand in x3,

stand in y3);

void (DLLENTRY *startArea) (struct SIGN DATA * data,

Colour definition fd,

int reason,

int flags);

void (DLLENTRY *startHole) (struct SIGN DATA * data,

Colour definition fd);

void (DLLENTRY *endArea) (struct SIGN DATA * data,

Colour definition fd,

int reason,

int flags);

void (DLLENTRY *drawObject) (POBJECT object,

int hilightEbene,

struct SIGN DATA * data,

int toplevelObject,

Colour definition fd,

PINFORMATION infos,

int draw);

void (DLLENTRY *drawElement) (PELEMENT elem,

int hilightEbene,

struct SIGN DATA *data,

Colour definition fd,

PINFORMATION infos,

int draw);

void * plotPoint;

void * userModelData;

void (DLLENTRY *addMarker) (struct SIGN DATA * data,

Colour definition fd,

stand in x1,

stand in y1,

int num,

int doDraw);

int prioritaet;

void * (DLLENTRY *controller) (struct SIGN DATA *data,

int function,

void * userdata);

void * userPlotData;

int dky;

int dka;

int nextPriority;

POBJECT classObjectOfDrawnObject;

int echtScale;

} *PZEICHENDATEN;

 

Description of the fields

 

colorTable (ULONG [17])

RGB values with 17 firmly defined pencils. The colours are described in the table manual under pencil colours.

signaturTabelle (int)

Number of the signature table which should be used to the issue.

flags (long int [100])

 

Counter to the commitment of the issue options. The up to now following are defined by hundred counters:

FLAG_DRAWSEGMENT_BEFORE                0

Before the issue of the objects the sign buffer is given. On the screen the marks and auxiliary lines appear immediately with beginning of the drawing.

FLAG_DRAW_AREAS                        1

Surfaces are given.

FLAG_BREAK_ON_REQUEST                2

The plot machine should react at interruption standards of the user.

FLAG_DRAWSEGMENT_AFTER                3

After the issue of the objects the sign buffer is given once again. On the screen appear the marks and auxiliary lines about the graphics.

FLAG_STD_LINES                                4

No issue of line signatures.

FLAG_STD_AREAS                        5

Issue of full surfaces, even if shadings are given.

FLAG_REAL_CLIP                                6

The clipping should occur precisely, so at line level in the last step of the issue. The calculation is time-consuming and, therefore, can slow down spending.

FLAG_OPTIMIZE                                7

The issue should be optimised, even if small impurities originate (e.g., texts which are too small, remove).

FLAG_INITIALIZED                                8

The mark that the structure was initialized. Without this Flag defaults are used while printing.

FLAG_USE_WINDOWSFONT                9

Texts are given about the entry addText (). If is this Flag 0, texts with the built-in text generator are disassembled in lines.

FLAG_DRAW_DEFAULT                        10

The lines for which no colour information exists in the tables are drawn in standard colour. If no colour information is available such lines are suppressed.

FLAG_BIGCURSOR                                11

The crosshair cursor is shown. If the Flag is not put, the mouse cursor is helped to pull instead of this by the tray.

FLAG_DELETERASTER                        12

Grid data are released after the drawing again to save storage space. Sensibly while printing, because the data are not needed again.

FLAG_NO_DRAW_PSY                        13

The symbols in the bases of lines are not drawn. The line becomes durchgezeichnet.

FLAG_CONTINOUS_LINESEGMENTS        14

Pattern about bases away

FLAG_BUSY                                15

Herewith on the screen the hourglass is put over the graphic arts window.

FLAG_NO_TEXT_DRAW                        16

Texts are not drawn.

FLAG_NO_SYMBOL_DRAW                        17

Symbols are not drawn. The symbolic elements are meant. Point symbols in the bases of lines are influenced with FLAG_NO_DRAW_PSY.

FLAG_NO_RASTER_DRAW                        18

Grids are not drawn.

FLAG_NO_STRING_DRAW                        19

Lines are not drawn.

FLAG_NO_POINTELEM_DRAW                20

Point elements (marker) is not codrawn.

FLAG_PAPER_DRAW                        21

The issue occurs on paper. Accordingly detail drawings are carried out and accompanying documents are coprinted.

 

root (PROOT)

Act to the data bank.

device (int)

rekursionsStufe (int)

Number of the selfcalls of the plot procedure. With depth 4 the Plotten is broken off to prevent an infinite Rekursion. A rekursiv defined symbol is probably given with a Rekursion.

clip (int)

Except company, substitutes with the Flag FLAG_REAL_CLIP.

plotFileName (char *)

Name of the file in which the plot is filed.

userData (void *)

Aloof for IO routines

blattname (char *)

Name of the plot, as he can be spent in the sheet frame.

offsX, offsY (stands in)

It is added to the calculated co-ordinate values, before the issue occurs.

rotation (stands in)

Rotation corner of the issue. It is given in curve measure.

linescale (stands in)

The graduation which is used for line signatures (Strichlierung and width), because these are given in 1/100 mm in expression. A line width of 50 is given with Linescale 75 and issue graduation 125 (in scaleAfterOutput) with a real width from 50*75/125/100 = 0.3 mm.

textscale (stands in)

With this value all text dimensions are calculated in the issue, the algorithm is the same like with lineScale.

symbolscale (stands in)

With this value all symbolic dimensions are calculated in the issue, the algorithm is the same like with lineScale.

scaleAfterOutput (stands in)

According to the issue calculation all co-ordinates are divided by this value. While printing the graduation, on the screen issue 1 stands here ordinarily. This can be different in symbols.

scaleBeforeUse (stands in)

All co-ordinates after the reading from the German Railways by this value multiply. Serves, e.g. to bring symbols on her real size.

top, left, bottom, right (stands in)

Co-ordinate area of the issue medium. Information occurs in metre.

rotX, rotY (stands in)

Fulcrum for the rotation. If the rotation corner is not 0, the co-ordinates are turned around this point. A point with the co-ordinate (rotX, rotY) lands after the rotation in the position (0,0).

pixelSize (stands in)

Size 1 pixel on the issue device in metre. If the Flag FLAG_OPTIMIZE is put, are left out writings and vectors which are too small for this value. Circles are always disassembled with the help of this value in line segments.

tools (TOOL_TAB *)

keys [MAX_KEYS] (KEY)

Inside uses to the buffer of object keys.

keyCount (USHORT)

Number of real values in keys

addLine (procedure pointers)

The driver of the issue device puts down here the sign routine for lines. If no routine is put down, no line issue occurs.

 

Parametre

data (struct SIGN DATA *)

Pointer on the description of the issue, even for the use in addLine.

fd (colour definition)

Modifiers for the colour of the issue, so width, line kind, colour. User-defined line patterns are dissolved before.

x1 (stands in)

y1 (stands in)

Co-ordinate of the starting point for this line in paper co-ordinates.

x2 (stands in)

y2 (stands in)

Co-ordinate of the goal for this line in paper co-ordinates.

 

Result

void

 

addText (procedure pointer)

The driver of the issue device puts down here the sign routine for texts. If no routine is put down, no text edition occurs.

 

Parametre

data (struct SIGN DATA *)

Description is absent.

fd (colour definition)

Description is absent.

text (char *)

Description is absent.

tSet (TEXT_SETTINGS *)

Description is absent.

level (int)

Description is absent.

x (stands in)

Description is absent.

y (stands in)

Description is absent.

fontname (char *)

Description is absent.

doDraw (int)

Description is absent

Result

void

 

addRaster (procedure pointer)

Description is absent

 

Parametre

data (struct SIGN DATA *)

Description is absent.

fd (colour definition)

Description is absent.

datatype (int)

Colour depth of the handed over pixel data, 1=Monochrom, 2 = 8 bits with palette, 3 real colours with 24 bits.

spreads (int)

Width of the grid in pixels.

hoehe (int)

Height of the grid in pixels.

rasterdata (char *)

Description is absent.

rasterFlags (int)

Description is absent.

level (int)

Highlight level.

x (stands in)

Position (legal value) of the left lower corner of the picture.

y (stands in)

Position (high-level value) of the left lower corner of the picture.

x2 (stands in)

Position (legal value) of the right upper corner of the picture.

y2 (stands in)

Position (high-level value) of the right upper corner of the picture.

colortable (long int *)

Description is absent.

dataLen (long int)

Description is absent.

lightining (int)

Description is absent.

doDraw (int)

Description is absent.

 

Result

void

 

openSeg (PSEGMENT)

Act of the topically open Layers.

openPlan (PPLANS)

Act of the just topical plan. Serves later the modification of the announcement. Up to now without function.

openObj (POBJECT)

Act of the topical object. It is used for the announcement modification of this object. See also modLayer.

openEl (PELEMENT)

Act of the topical element. It is used for the announcement modification of this element. See also modLayer.

openPoint (T_PPOINT)

Act of the topical point. It is used for the announcement modification of this point. See also modLayer.

modLayer [16] (MODIF)

Description is absent.

pIsHiddenL (int)

Description is absent.

atxtab (void *)

Description is absent.

atxfixtext (char *)

Description is absent.

breakRequest (char *)

Description is absent.

darstellungsModell (int)

Description is absent.

addArc (Prozedurezeiger)

Description is absent

 

Parametre

data (struct SIGN DATA *)

Description is absent.

fd (colour definition)

Description is absent.

stand in x1

stand in y1

stand in x2

stand in y2

stand in x3

stand in y3

Co-ordinate for the arc points

 

Result

void

 

startArea (procedure pointer)

Description is absent.

 

Parametre

data (struct SIGN DATA *)

Description is absent.

fd (colour definition)

Description is absent.

 

Result

void

 

All calls after startArea to endArea form the definition of a surface. Holes are defined as usual as areas with straight cut number to the infinity.

startHole (Prozedurezeiger)

Description is absent.

 

Parametre

data (struct SIGN DATA *)

Description is absent.

fd (colour definition)

Description is absent

reason (int)

One of the constants

PLOT_START_END_AREA_REASON_AREAFILL (0)

The system carries out a surface filling up to the next final area. To final area lines, circles and if necessary a bitmap follow for filling.

PLOT_START_END_AREA_REASON_STARTCLIP (1)

The system fixes a new clip polygon. This is valid up to the next FINAL CLIP. Then the old polygon is used again.

PLOT_START_END_AREA_REASON_ENDCLIP (2)

The last clip polygon is removed. It is worth again the value valid before it.

flags (int)

always 0

 

Result

void

 

It is not used.

endArea (procedure pointer)

Description is absent

 

Parametre

data (struct SIGN DATA *)

Description is absent

fd (colour definition)

Description is absent

reason (int)

One of the constants

PLOT_START_END_AREA_REASON_AREAFILL (0)

The system carries out a surface filling up to the next final area. To final area lines, circles and if necessary a bitmap follow for filling.

PLOT_START_END_AREA_REASON_STARTCLIP (1)

The system fixes a new clip polygon. This is valid up to the next FINAL CLIP. Then the old polygon is used again.

PLOT_START_END_AREA_REASON_ENDCLIP (2)

The last clip polygon is removed. It is worth again the value valid before it.

flags (int)

always 0

 

Result

void

see startArea.

drawObject (procedure pointer)

Description is absent.

 

Parametre

object (POBJECT)

Description is absent.

hilightEbene (int)

Description is absent.

data (struct SIGN DATA *)

Description is absent.

toplevelObject (int)

Description is absent.

fd (colour definition)

Description is absent.

infos (PINFORMATION)

Description is absent.

draw (int)

Description is absent.

 

Result

void

 

drawElement (procedure pointer)

Description is absent.

 

Parametre

elem (PELEMENT)

Description is absent

hilightEbene (int)

Description is absent.

data (struct SIGN DATA *)

Description is absent.

fd (colour definition)

Description is absent.

infos (PINFORMATION)

Description is absent.

draw (int)

Description is absent.

 

Result

void

 

plotPoint (void *)

Remark: as a substitute, to PLINE_TABLE is exported.

Sign routine for a single point. Because the structure PLINE_TABLE is not known yet outwardly the definition must happen as void*.

userModelData (void *)

The object classes which define own sign routines can interstore here parametre.

addMarker (procedure pointer)

The plot formats which can spend marker symbols give here your sign routine. The markers are given by firm size in the position (x, y). The marker <num> is used. A list of the markers is to be found in the table manual.

 

Parametre

data (struct SIGN DATA *)

Act to the data output.

fd (colour definition)

Description of the issue modifiers, see colour definition.

x (stands in)

y (stands in)

Position of the marker symbol.

num (int)

Number of the marker symbol. Normally the numbers 1 to 17 are used. Definition see table manual.

doDraw (int)

<>0 The symbols should be drawn.

0 The symbols should be removed from the drawing.

 

Result

void

 

prioritaet (int)

Information of the priority with is just given. If a smaller value is necessary for an element, the issue must be jumped over, because the element was already given. If the value is bigger, the issue must be put back. This function is not implemented yet.

controller (procedure pointer)

General Callbackfunktion, not yet in company.

 

Parametre:

struct SIGN DATA *data

Act to the data output.

int function

Number of the executive functionality.

void *userdata

Data for the function are depending on the value of function

 

Result:

void *

 

The result is dependent on the functional kind.

userPlotData (void *)

The sign routines (addLine, addText...) may file here data.

dky (int)

The last used surface key.

dka (int)

The last used surface key.

nextPriority (int)

It is initialized with 0x7fffffff. If a sign routine needs an other priority which is smaller than the topical value, here he must be put down.