home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************
- * *
- * Filename : OpClL2.c *
- * *
- *****************************************************************
- * *
- * Comment : Level 2 Funktionen von der Plotlibrary. *
- * Unterstützt das öffnen und das schliessen der *
- * der Library. *
- * *
- * Funktionen *
- * ========== *
- * *
- * createplot() alloziert Speicher für Plotstruktur *
- * initplot() setzt die Plotstrukur auf default *
- * closeplot() gibt alle Resourcen frei *
- * datainit() setzte default Grenzwerte *
- * *
- * globale Variablen *
- * ================= *
- * *
- * plot Plotstrukturpointer *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 15/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 15/11/89 *
- * *
- ****************************************************************/
-
- /****************************************************************
- * *
- * Plotlibrary Includedateien *
- * *
- ****************************************************************/
-
- #include "Plot.h"
- #include "PlotL2.h"
- #include "DispL2.h"
- #include "OpClL2.h"
-
- /****************************************************************
- * *
- * globale Variablen *
- * *
- ****************************************************************/
-
- struct Plot *plot = NULL;
-
- /****************************************************************
- * *
- * externe Variablen *
- * *
- ****************************************************************/
-
- extern int plerr;
-
- /****************************************************************
- * *
- * Function : createplot() *
- * *
- *****************************************************************
- * *
- * Input : void *
- * *
- * Output : int returnset *
- * != FALSE Speicher bekommen *
- * == FALSE Fehler bei Speicherallozierung *
- * *
- *****************************************************************
- * *
- * Comment : alloziert Speicher für die Plotstruktur. Durch *
- * das löschen des Speichers sind die folgenden *
- * Standardwerte eingestellt: *
- * *
- * Dimension : D2 *
- * Typ : RID *
- * Masstab : LIN *
- * Grenzwerte : AUTOON *
- * *
- ****************************************************************/
-
- int createplot()
- {
- int plotsize, /* Grösse der Plotstruktur */
- returnset; /* Globaler Rückgabewert */
-
- plotsize = sizeof(struct Plot); /* Grösse bestimmen */
- plot = (struct Plot *)calloc(1,plotsize);
- /* hole Speicher */
- if (plot == NULL) /* Fehler ? */
- {
- seterror(MEMOPPLOT); /* Ja */
- setreturn(FALSE);
- }
- else
- {
- initplot(); /* initialisiere plot */
- setreturn(TRUE);
- }
- return (returnset); /* und zurück */
- }
-
- /****************************************************************
- * *
- * Function : initplot() *
- * *
- *****************************************************************
- * *
- * Input : void *
- * *
- * Output : void *
- * *
- *****************************************************************
- * *
- * Comment : Defaultwerte setzten der Plotstruktur soweit sie *
- * notwendig sind *
- * *
- * *
- ****************************************************************/
-
- void initplot()
- {
- plot->typ = D2; /* Darstellungstyp */
- plot->grid = GRID; /* Gitterdarstellung */
- plot->clipp = NOCLIPP; /* kein Clipping */
- plot->autoval = AUTOON; /* automatisches minmax */
- plot->xmes = LIN; /* alle Achsen linear */
- plot->ymes = LIN;
- plot->zmes = LIN;
- plot->count = NULL; /* Kurvencount auf NULL */
- plot->currid = NULL; /* und neue ID verteilen */
- plot->d3opt = HIDDEN|CROSH; /* Hiddenline, Crosshatch. */
- /* einschalten */
- datainit();
- }
-
- /****************************************************************
- * *
- * Function : datainit() *
- * *
- *****************************************************************
- * *
- * Input : void *
- * *
- * Output : void *
- * *
- *****************************************************************
- * *
- * Comment : Alle minimalen und maximalen Grenzwerte der Plot- *
- * struktur auf +-5 setzten. Wenn AUTOVAL vor laden *
- * der ersten Kurve auseschaltet wird, dann gelten *
- * doiese Grenzen. *
- * *
- ****************************************************************/
-
- static void datainit()
- {
- plot->xmin = (DATA)-5.0; /* alle Werte löschen */
- plot->xmax = (DATA)5.0;
- plot->ymin = (DATA)-5.0;
- plot->ymax = (DATA)5.0;
- plot->zmin = (DATA)-5.0;
- plot->zmax = (DATA)5.0;
- }
-
- /****************************************************************
- * *
- * Function : closeplot() *
- * *
- *****************************************************************
- * *
- * Input : void *
- * *
- * Output : void *
- * *
- *****************************************************************
- * *
- * Comment : Der Graphikbildschirm wird geschlossen, wenn er *
- * geöffnet ist. Alle Kurvenstrukturen und die *
- * Plotstruktur werden an das System zurückgegeben. *
- * *
- ****************************************************************/
-
- void closeplot()
- {
- char **name; /* Zeiger auf Charpointer */
- int i; /* Schleifenzähler */
-
- (void)deldata(DELALL,NULL); /* alle Kurven freigeben */
-
- name = &plot->titel; /* startend ab Titel */
- for (i=0;i<MAXNAMES;i++) /* alle freigeben */
- {
- if (*name) /* aber nur wenn vorhanden */
- free(*name); /* Name löschen */
- name++; /* nächster Name */
- }
-
- free(plot); /* plotstruktur freigeben */
- plot = NULL; /* setzte zurück auf NULL */
- }
-
-