home *** CD-ROM | disk | FTP | other *** search
- #ifndef PLOT_H
- #define PLOT_H
-
- /****************************************************************
- * *
- * Filename : Plot.h *
- * *
- *****************************************************************
- * *
- * Comment : Diese File enthält alle Strukturdefinitionen *
- * für die Plotlibrary. *
- * Allgemeine Definitionen werden ebenfalls hier *
- * deklariert. Diese Includedatei sollte in jeden *
- * Teil der Library geladen werden. Allgemeine *
- * Includefiles werden hier nachgeladen wenn sie noch *
- * nicht definiert sind. *
- * *
- * Strukturen *
- * ---------- *
- * *
- * - Plot -> Initialisierungsstruktur *
- * - Kurve -> Kurvenstruktur *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 14/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 14/11/89 *
- * *
- ****************************************************************/
-
- /****************************************************************
- * *
- * allgemeine Includefiles *
- * *
- ****************************************************************/
-
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
-
-
- /****************************************************************
- * *
- * Plotlibrary Includefiles *
- * *
- ****************************************************************/
-
- #define _PLOT_
-
- #ifndef PLOTLIB_H
- #include "PlotLib.h"
- #endif
-
- #ifndef LISTL2_H
- #include "ListL2.h"
- #endif
-
- #ifndef PLERROR_H
- #include "Plerror.h"
- #endif
-
- /****************************************************************
- * *
- * Globale Macros *
- * *
- ****************************************************************/
-
- #ifndef or
- #define or ||
- #endif
-
- #ifndef and
- #define and &&
- #endif
-
- #ifndef EOS
- #define EOS '\0'
- #endif
-
- #ifndef forever
- #define forever for(;;)
- #endif
-
- #define swap(a,b,c) (c=a,a=b,b=c)
-
-
- /****************************************************************
- * *
- * Globale Defines *
- * *
- ****************************************************************/
-
- #define DEFCOUNT 800 /* Def.grösse eines arrays */
- #define COUNTSTEP 400 /* Step zum nachladen */
- #define BUFFERSIZE 80 /* Zeichenbuffergrösse */
-
- #define TITELLEN 40 /* längen der verschiedenen */
- #define AXNAMLEN 20 /* Texte welche für die */
- #define UNITLEN 10 /* Beschriftung gesetzt */
- #define CURNAMLEN 20 /* werden können */
-
- #define D2MULT 2 /* Anzahl Punkte für die */
- #define NIVMULT 2 /* verschiedenen */
- #define D3MULT 3 /* Darstellungen */
-
- #define VALSIZE 9 /* Beschriftungslänge des */
- /* Zahlenwertes */
- #define RECTSIZE VALSIZE+3 /* Rechteckgrösse für Niv. */
-
- #define STARTCOL 1 /* Startfarbe für Kurven */
- #define TEXTCOL 1 /* Textfarbe ( weiss ) */
- #define BACKCOL 0 /* Hintergrundfarbe */
-
- #define XSIZE 1 /* Textgrösse für X */
- #define YSIZE 2 /* Textgrösse für Y */
-
- #define XTRANS 2 /* Translationsrückgabewert */
- #define YTRANS 4 /* für ungültige transf. */
- #define ZTRANS 8
-
- #define STEPNBR 5 /* Anzahl möglicher steps */
- /* für lin. Darstellung */
- #define STEPVAL 12 /* Anzahl def. Steps für */
- /* auto. Skalierung */
-
- #define TOP_LEFT 0x1 /* Eckdefinitionen für */
- #define BOT_LEFT 0x2 /* Flächenclipping */
- #define TOP_RIGHT 0x4
- #define BOT_RIGHT 0x8
-
- #define T_T 0x1 /* Text Top */
- #define T_CY 0x2 /* Text Center */
- #define T_B 0x4 /* Text Bottom */
-
- #define T_L 0x10 /* Text Left */
- #define T_CX 0x20 /* Text Center */
- #define T_R 0x40 /* Text Right */
-
- #define C_L 0x1 /* Clipping Line Left */
- #define C_R 0x2 /* Clipping Line Right */
- #define C_T 0x4 /* Clipping Line Top */
- #define C_B 0x8 /* Clipping Line Bottom */
-
- #define X_MN 0x01 /* Clipping XMin */
- #define X_MX 0x02 /* Clipping XMax */
- #define Y_MN 0x04 /* Clipping YMin */
- #define Y_MX 0x08 /* Clipping YMax */
- #define Z_MN 0x10 /* Clipping ZMin */
- #define Z_MX 0x20 /* Clipping ZMax */
-
- #define MAXLST 5 /* Max. Linienmuster */
- #define SOL_LINE 0 /* volle Linie */
- #define DOT_LINE 1 /* gepunktete Linie */
- #define DAS_LINE 2 /* gestrichelte Linie */
-
- #define STEPLSIZE 50 /* Länge in % der Stepline */
- #define GRIDLSIZE 25 /* Länge in % der Gridline */
- #define BSTEPSIZE 2 /* Länge in % der Stepline */
- #define BGRIDSIZE 4 /* Länge in % der Gridline */
- #define CURLSIZE 3*plot->xtext /* Länge in Punkten der Bes */
-
- #define LINSLSTEP 5 /* lineare Unterteilung */
- #define LOGSLSTEP 9 /* log Unterteilung */
-
- #define CROSH 0x01 /* Croshatching */
- #define HIDDEN 0x02 /* Hiddenline */
-
- #define MAXNAMES 8 /* Anzahl *char in plot */
-
- /****************************************************************
- * *
- * Plotstruktur *
- * *
- ****************************************************************/
-
-
- struct Plot
- {
- int typ, /* Darstellung 2D,Niveau,3D */
- grid, /* Spezifikation oben */
- clipp, /* clipping indikator */
- autoval, /* auto. minmax-Anpassung */
- xmes, /* Masstab x-Achse */
- ymes, /* Masstab y-Achse */
- zmes, /* Masstab z-Achse */
- phix, /* Rotationswinkel der */
- phiy, /* Achsen in Grad für */
- phiz, /* 3D Darstellung */
- count, /* Anzahl Kurven */
- disp, /* Displayindikator */
- xpic1, /* linker Bildrand */
- xpic2, /* rechter Bildrand */
- xsize, /* max. horiz. Auflösung */
- ypic1, /* oberer Bildrand */
- ypic2, /* unterer Bildrand */
- ysize, /* max. vert. Auflösung */
- maxcol, /* max. Anzahl Farben */
- xtext, /* Breite eines Zeichens */
- ytext, /* Höhe eines Zeichens */
- xout, /* Start x von Output in cm */
- yout, /* Start y von Output in cm */
- xlength, /* Outputlänge x in cm */
- ylength, /* Outputlänge y in cm */
- pldisp, /* Plotter Indikator */
- currid, /* current ID */
- xht, /* horiz. halbe Textgrösse */
- xlt, /* horiz. ganze Textgrösse */
- xle, /* horiz. exp. Textgrösse */
- yht, /* vert. halbe Textgrösse */
- ylt, /* vert. ganze Textgrösse */
- yle, /* vert. exp. Textgrösse */
- style, /* nächstes Füllmuster */
- col, /* nächste Farbe */
- cpt, /* Beschriftungsstart */
- d3opt, /* 3d Displayoptions */
- ispare1,
- ispare2,
- ispare3,
- ispare4;
-
- struct Curve *first, /* erste Kurvenstruktur */
- *last; /* letzte Kurvenstruktur */
-
- /****************************************************************
- * *
- * Achtung : Die nächsten Zeilen innerhalb eines Elementes nicht *
- * verändert werden. Verschiedene Funktionen benötigen *
- * nur die Startadresse des Elementes und die anderen *
- * Werte werden dann in der Funktion zugewiesen. *
- * Als Element wird immer eine Achse bezeichnet. *
- * *
- ****************************************************************/
-
- DATA xmin, /* abs. min. X-Wert */
- xmax, /* abs. max. X-Wert */
- xstep, /* Beschriftungsschritte */
- xgridmin, /* Gitterstart X */
- xgridmax, /* Gitterend X */
- xcenter,
- xspare,
- ymin, /* abs. min. Y-Wert */
- ymax, /* abs. max. Y-Wert */
- ystep, /* Beschriftungsschritte */
- ygridmin, /* Gitterstart Y */
- ygridmax, /* Gitterend Y */
- ycenter,
- yspare,
- zmin, /* abs. min. Z-Wert */
- zmax, /* abs. max. Z-Wert */
- zstep, /* Beschriftungsschritte */
- zgridmin, /* Gitterstart Z */
- zgridmax, /* Gitterend Z */
- zcenter,
- zspare;
-
- /****************************************************************
- * *
- * Achtung : In den nächsten Zeilen dürfen keine anderen Typen *
- * als char * vorkommen, da in closeplot() alle Werte *
- * ab titel wenn sie gesetzt sind, freigibt. Die *
- * Anzahl der Namen ist in MAXNAMES definiert. *
- * *
- ****************************************************************/
-
- char *titel, /* Titel der Graphik */
- *xname, /* x-Achsen Name */
- *xunit, /* xeinheits Titel */
- *yname, /* y-Achsen Name */
- *yunit, /* yeinheits Titel */
- *zname, /* z-Achsen Name */
- *zunit, /* zeinheits Titel */
- *outname, /* Plotterfilename */
- *tspare;
- };
-
- /****************************************************************
- * *
- * Kurvenstruktur *
- * *
- ****************************************************************/
-
- struct Curve
- {
- struct Curve *next; /* Zeiger auf nächste Kurve */
- char *titel; /* Zeiger auf Kurvennamen */
- int id, /* Kurvennummer */
- color, /* Farb- oder Musterwert */
- count, /* Anzahl Datenelemente */
- maxcount; /* max. Datenelemente */
- DATA xmin, /* xmin dieser Kurve */
- xmax, /* xmax dieser Kurve */
- ymin, /* ymin dieser Kurve */
- ymax, /* ymax dieser Kurve */
- zmin, /* zmin dieser Kurve */
- zmax, /* zmax dieser Kurve */
- *val; /* Zeiger auf Datenfeld */
- };
-
-
- #endif
-