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