home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************
- * *
- * Filename : PlotL1.c *
- * *
- *****************************************************************
- * *
- * Comment : Dieses File ist die erste Stufe der Plotlibrary. *
- * Hier sind alle für den Programmierer sichtbaren *
- * Funktionen enthalten. *
- * Die Dokumentation der einzelnen Funktionen ist *
- * im User Manual enthalten. *
- * *
- * Funktionen *
- * ========== *
- * *
- * Open_Plot() oeffnet die Plotlibrary *
- * Close_Plot() schliesst die Plotlibrary *
- * Get_Data() generiert eine neue Kurve *
- * Load_Data() holt Daten von File für eine neue Kurve *
- * Del_Data() löschen bestimmter Daten *
- * Set_Axisname() setzt/löscht Achsenname *
- * Set_Unit() setzt/löscht Achseneinheit *
- * Set_Titel() setzt/löscht Graphiktitel *
- * Set_Curvename() setzt/löscht Kurvenname *
- * Set_Value() setzt/löscht Darstellungsgrenzen *
- * Get_Value() holt aktuelle Darstellungsgrenzen *
- * Set_Autoval() setzt/löscht Autominmaxparamter *
- * Set_Grid() setzt/löscht Gitterdarstellung *
- * Set_Fill() setzt/löscht Füllmuster bei Niveau *
- * Set_Mes() setzt Achsensmasstab *
- * Set_Curvecolor() setzt Kurvenfarbe *
- * Set_3DOptions() definiert die 3D Ausgabe *
- * Set_PlotSize() definiert die Plotterausgabe *
- * Display() stellt alle Daten dar *
- * *
- * 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 "OpClL2.h"
- #include "LoadL2.h"
- #include "DispL2.h"
-
-
- /****************************************************************
- * *
- * externe Variablen *
- * *
- ****************************************************************/
-
- extern struct Plot *plot;
- extern int plerr;
-
-
- /****************************************************************
- * *
- * Function : Open_Plot() *
- * *
- *****************************************************************
- * *
- * Input : void *
- * *
- * Output : int returnset *
- * != FALSE keine Fehler *
- * == FALSE Fehler aufgetreten *
- * *
- *****************************************************************
- * *
- * Comment : Oeffnet die Plotlibrary und alloziert die Plot- *
- * struktur. Es werden alle Defaultwerte eingestellt. *
- * *
- * Error : - Sequence error *
- * - memory allocation failed in create_plot *
- * *
- * 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 *
- * *
- ****************************************************************/
-
- int open_plot()
- {
- int returnset; /* Rückgabewert */
-
- if (plot) /* schon gesetzt ? */
- {
- seterror(SEQOPPLOT); /* Error */
- setreturn(FALSE);
- }
- else
- setreturn(createplot()); /* Speicher holen und */
- return (returnset); /* als Rückgabewert setzten */
- }
-
-
- /****************************************************************
- * *
- * Function : Close_Plot() *
- * *
- *****************************************************************
- * *
- * Input : void *
- * *
- * Output : int returnset *
- * != FALSE keine Fehler *
- * == FALSE Fehler aufgetreten *
- * *
- *****************************************************************
- * *
- * Comment : Gibt den gesammten angeforderten Speicher an das *
- * System zurück. *
- * Alle Kurvendaten sowie die entsprechenden *
- * Strukturen werden aufgehoben. *
- * Als letzte wird die Plotstruktur zurück gegeben. *
- * *
- * Errors : - sequence error *
- * *
- * 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 *
- * *
- ****************************************************************/
-
- int close_plot()
- {
- int returnset; /* Rückgabewert */
-
- if (plot == NULL) /* schon gesetzt ? */
- { /* Nein */
- seterror(SEQCLOSE); /* Error */
- setreturn(FALSE);
- }
- else
- {
- closeplot(); /* alles schliessen und */
- setreturn (TRUE); /* Rückgabewert setzten */
- }
- return (returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : get_data() *
- * *
- *****************************************************************
- * *
- * Input : function,xmin,xmax,count *
- * DATA (*function)() Funktionspointer *
- * DATA xmin x-Startwert *
- * DATA xmax x-Endwert *
- * int count Anzahl Elemente *
- * *
- * Output : int returnset *
- * != FALSE id der neu generierten Kurve *
- * FALSE Fehler aufgetreten *
- * *
- *****************************************************************
- * *
- * Comment : Generiert eine neue Kurve anhand einer math. *
- * Funktion und addiert sie zu der bestehenden *
- * Liste. Wenn die Funktion erfolgreich ausgeführt *
- * wurde, ist der Rückgabewert die ID der Kurve *
- * ansonsten wird er auf FALSE gesetzt. *
- * *
- * Errors : - Sequence error *
- * - Parameter failure *
- * - Memory allocation failure *
- * - invalid curve typ set in plotstructur *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 16/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 16/11/89 *
- * *
- ****************************************************************/
-
- int get_data(function,xmin,xmax,count)
- DATA (*function)(DATA);
- DATA xmin,
- xmax;
- int count;
- {
- int returnset; /* Rückgabewert */
-
- if (plot == NULL) /* schon gesetzt ? */
- { /* Nein */
- seterror(SEQGEDATA); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter kontrolle */
- if ((function == NULL) or /* keine Funktion */
- ((xmax - xmin) <= NULL) or /* keine pos. Differenz */
- (count <= 1)) /* min 2 Pkt zu berechnen */
- {
- seterror(PARAGEDATA); /* dann Parameterfehler */
- setreturn(FALSE);
- }
- else /* alles ok */
- if (plot->typ != D2) /* Nur 2D Daten */
- {
- seterror(INVTYPGDATA);
- setreturn(FALSE);
- }
- else /* getdata Level 2 rufen */
- /* mit ID als rückgabe */
- setreturn(getdata(function,xmin,xmax,count));
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : load_data() *
- * *
- *****************************************************************
- * *
- * Input : file,typ *
- * char *file Datenfilename *
- * int typ optionaler Darstellungstyp *
- * *
- * Output : int returnset *
- * != FALSE id der neu Kurve oder alles ok *
- * FALSE Fehler aufgetreten *
- * *
- *****************************************************************
- * *
- * Comment : Die angegebene Datei wird geladen. Ein Vergleich *
- * zwischen typ und der Datei wird gemacht und ent- *
- * sprechend gehandelt. Je nach typ werden *
- * verschiedene Kurven generiert ( NIVEAU ) oder auch *
- * nur einzelne. Der Typ ist optional. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * NOTYP -> keine Typenprüfung,es wird der Typ *
- * aus dem File genommen *
- * D2 -> 2D Darstellung *
- * NIV -> Niveau Darstellung *
- * D3 -> 3D Darstellung *
- * *
- * Errors : - Sequence error *
- * - Parameter failure *
- * - more curve not allowed for this typ *
- * - Memory allocation failure in getcurve() *
- * - file not found *
- * - file is empty *
- * - invalid file typ *
- * - invalid datas *
- * - reallocation failed *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 21/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 21/11/89 *
- * *
- ****************************************************************/
-
- int load_data(file,typ)
- char *file;
- int typ;
- {
- int returnset; /* Rückgabewert */
-
- if (plot == NULL) /* schon gesetzt ? */
- { /* Nein */
- seterror(SEQLODATA); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter kontrolle */
- if ((file == NULL) or /* kein Filename */
- (typ < NOTYP) or /* typ not in range */
- (typ > D3))
- {
- seterror(PARAGEDATA); /* dann Parameterfehler */
- setreturn(FALSE);
- }
- else /* check ob mehrere Kurven */
- if ((plot->first != NULL) and /* von diesem typ geladen */
- ((plot->typ == NIV) or /* werden dürfen */
- (plot->typ == D3))) /* NIV und 3D dürfen nicht */
- { /* überlagert werden ! */
- seterror(MORENOTALL); /* Fehler */
- setreturn(FALSE);
- }
- else /* sonst alles ok, laden */
- setreturn(loaddata(file,typ));
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : del_data() *
- * *
- *****************************************************************
- * *
- * Input : id,name *
- * int id id der zu löschenden Kurve *
- * char *name name der zu löschenden Kurve *
- * *
- * Output : int returnset *
- * != FALSE alles klar Kurve(n) gelöscht *
- * FALSE Fehler aufgetreten *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion löscht bestimmte Daten aus dem *
- * Speicher. Es können so überlagerte Kurven *
- * selektiv wieder gelöscht werden. *
- * Es darf nur ein Parameter gesetzt sein. Entweder *
- * ID oder Name. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * DELALL -> löscht alle Daten im Speicher *
- * DELLAST -> löscht die letzte Kurve *
- * NOID -> keine id aber Namen gegeben *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - curve not found in slist... *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 26/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 26/11/89 *
- * *
- ****************************************************************/
-
- int del_data(id,name)
- int id;
- char *name;
- {
- int returnset;
-
- if ((plot == NULL) or /* plot gesetzt und */
- (plot->first == NULL)) /* Daten vorhanden ? */
- { /* Nein */
- seterror(SEQDEDATA); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter kontrolle */
- if (((id == NOID) and /* Nur 1 Parameter darf */
- (name == NULL)) or /* gesetzt sein */
- ((id != NOID) and
- (name != NULL)))
- { /* keiner oder mehrere sind */
- seterror(PARADEDATA); /* gesetzt. Fehler */
- setreturn(FALSE);
- }
- else /* alles klar */
- setreturn(deldata(id,name)); /* lösche Kurve */
-
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : set_axisname() *
- * *
- *****************************************************************
- * *
- * Input : axis,axisname *
- * int axis Achsenparameter *
- * char *axisname Name der Achse *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt/löscht die verschiedenen *
- * Achsennamen. Für die 2D-Darstellung ist der *
- * Z-Parameter nicht erlaubt. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * XAXIS -> x-Achse *
- * YAXIS -> y-Achse *
- * ZAXIS -> z-Achse *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - name not allowed for this typ *
- * - string already set *
- * - name to big *
- * - memory allocation failure *
- * - no name given *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 29/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 29/11/89 *
- * *
- ****************************************************************/
-
- int set_axisname(axis,axisname)
- int axis;
- char *axisname;
- {
-
- int returnset;
-
- if (plot == NULL) /* plot gesetzt ? */
- { /* Nein */
- seterror(SEQAXNAME); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter kontrolle */
- if ((axis < XAXIS) or /* Achsenrange */
- (axis > ZAXIS))
- { /* NOK ? */
- seterror(PARAXNAME); /* Fehler */
- setreturn(FALSE);
- }
- else
- if ((plot->typ == D2) and /* 2D und Z ? */
- (axis == ZAXIS))
- { /* Ja Fehler */
- seterror(NONAMETYP);
- setreturn(FALSE);
- }
- else /* alles ok setzten */
- setreturn(setaxisname(axis,axisname));
-
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : set_unit() *
- * *
- *****************************************************************
- * *
- * Input : axis,unit *
- * int axis Achsenparameter *
- * char *unit Einheit der Achse *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt/löscht die verschiedenen *
- * Achseneiheiten. Für die 2D-Darstellung ist der *
- * Z-Parameter nicht erlaubt. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * XAXIS -> x-Achse *
- * YAXIS -> y-Achse *
- * ZAXIS -> z-Achse *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - name not allowed for this typ *
- * - string already set *
- * - name to big *
- * - memory allocation failure *
- * - no name given *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 30/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 30/11/89 *
- * *
- ****************************************************************/
-
- int set_unit(axis,unit)
- int axis;
- char *unit;
- {
-
- int returnset;
-
- if (plot == NULL) /* plot gesetzt ? */
- { /* Nein */
- seterror(SEQSEUNI); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter kontrolle */
- if ((axis < XAXIS) or /* Achsenrange */
- (axis > ZAXIS))
- { /* NOK ? */
- seterror(PARASEUNI); /* Fehler */
- setreturn(FALSE);
- }
- else
- if ((plot->typ == D2) and /* 2D und Z ? */
- (axis == ZAXIS))
- { /* Ja Fehler */
- seterror(NONAMETYP);
- setreturn(FALSE);
- }
- else /* alles ok setzten */
- setreturn(setunit(axis,unit));
-
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : set_titel() *
- * *
- *****************************************************************
- * *
- * Input : titel *
- * char *titel Titel der Graphik *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt/löscht den Graphiktitel. *
- * *
- * Errors : - sequence error *
- * - string already set *
- * - name to big *
- * - memory allocation failure *
- * - no name given *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 30/11/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 30/11/89 *
- * *
- ****************************************************************/
-
- int set_titel(titel)
- char *titel;
- {
-
- int returnset;
-
- if (plot == NULL) /* plot gesetzt ? */
- { /* Nein */
- seterror(SEQSEUNI); /* Error */
- setreturn(FALSE);
- }
- else /* go Level 2 */
- setreturn(settitel(titel));
-
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : set_curvename() *
- * *
- *****************************************************************
- * *
- * Input : id,name *
- * int id id der Kurve *
- * char *name Name der Kurve *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt/löscht den Namen einer Kurve *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - curve not found *
- * - string already set *
- * - name to big *
- * - memory allocation failure *
- * - no name given *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 01/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 01/12/89 *
- * *
- ****************************************************************/
-
- int set_curvename(id,name)
- int id;
- char *name;
- {
-
- int returnset;
-
- if ((plot == NULL) or /* plot gesetzt ? */
- (plot->first == NULL)) /* Daten vorhanden ? */
- { /* Nein */
- seterror(SEQCURNAM); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter Fehler ? */
- if (id == NULL)
- {
- seterror(PARACURNAM); /* Ja, setzte Fehler */
- setreturn(FALSE);
- }
- else /* go Level 2 */
- setreturn(setcurvename(id,name));
-
- return(returnset);
- }
-
- /****************************************************************
- * *
- * Function : set_value() *
- * *
- *****************************************************************
- * *
- * Input : typ,value *
- * int typ Funktionsauswahl siehe unten *
- * DATA value neuer Wert *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt oder löscht Darstellungs- *
- * grenzen von den verschiedenen Achsen. Es kann *
- * immer nur ein Wert der spez. Achse gesetz werden. *
- * Wenn die Löschfunktion gewählt wurde, werden *
- * die entsprechenden Werte aller Kurven geholt *
- * und neu gesetzt. *
- * *
- * Die folgenden Übergabeparamter sind in Plotlib.h *
- * definiert: *
- * *
- * XMIN,XMAX -> X-Achsen Grenzwerte *
- * YMIN,YMAX -> X-Achsen Grenzwerte *
- * ZMIN,ZMAX -> X-Achsen Grenzwerte *
- * CLEAR -> Grenzwerte neu berechnen *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - value not allowed for this typ *
- * - value higher then maxvalue *
- * - value lower then minvalue *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 02/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 02/12/89 *
- * *
- ****************************************************************/
-
- int set_value(typ,value)
- int typ;
- DATA value;
- {
-
- int returnset; /* allg Rückgabewert */
-
- if (plot == NULL) /* plot gesetzt ? */
- { /* Nein */
- seterror(SEQSEVAL); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter im Bereich ? */
- if ((typ < CLEAR) or
- (typ > ZMAX))
- {
- seterror(PARASEVAL); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else /* go Level 2 */
- setreturn(setvalue(typ,value));
-
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : get_value() *
- * *
- *****************************************************************
- * *
- * Input : typ *
- * int typ Funktionsauswahl siehe unten *
- * DATA *value Zeiger auf Grenzwertvariable *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion holt die aktuelle Darstellungs- *
- * grenze von der spezifizierten Achse. Es kann *
- * immer nur ein Wert abgefragt werden. *
- * *
- * Die folgenden Übergabeparamter sind in Plotlib.h *
- * definiert: *
- * *
- * XMIN,XMAX -> X-Achsen Grenzwerte *
- * YMIN,YMAX -> X-Achsen Grenzwerte *
- * ZMIN,ZMAX -> X-Achsen Grenzwerte *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 02/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 02/12/89 *
- * *
- ****************************************************************/
-
- int get_value(typ,value)
- int typ;
- DATA *value;
- {
-
- int returnset; /* allg Rückgabewert */
-
- if (plot == NULL) /* plot gesetzt und */
- { /* Nein */
- seterror(SEQGEVAL); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter im Bereich ? */
- if ((typ < XMIN) or
- (typ > ZMAX))
- {
- seterror(PARAGEVAL); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else
- {
- getvalue(typ,value);
- setreturn(TRUE);
- }
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : set_autoval() *
- * *
- *****************************************************************
- * *
- * Input : para *
- * int para Autoparameter siehe unten *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt den Autoparameter in der *
- * Plotstruktur. Mit diesem Parameter wird *
- * festgelegt, ob die Grenzwerte der Plotstruktur *
- * automatisch nach jedem addieren oder löschen *
- * einer Kurve berechnet werden. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * AUTOON -> automatisches berechnen ein *
- * AUTOOFF -> automatisches berechnen aus *
- * *
- * Wenn diese Funktion mit AUTOON aufgerufen wird, *
- * werden die Werte sogleich angepasst. *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 03/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 03/12/89 *
- * *
- ****************************************************************/
-
- int set_autoval(para)
- int para;
- {
-
- int returnset; /* allg Rückgabewert */
-
- if (plot == NULL) /* plot gesetzt */
- { /* Nein */
- seterror(SEQAUVAL); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter im Bereich ? */
- if ((para < AUTOON) or
- (para > AUTOOFF))
- {
- seterror(PARAAUVAL); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else
- {
- setautoval(para); /* go to Level 2 */
- setreturn(TRUE); /* kein Rückgabewert also */
- } /* TRUE setzten */
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : set_Grid() *
- * *
- *****************************************************************
- * *
- * Input : typ *
- * int typ Gitterparameter *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt den Gitterparameter *
- * entsprechend dem typ. Wenn dieser Parameter *
- * gesetzt ist (GRID), wird auf der Ausgabe ein *
- * Gitter dargestellt. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * GRID -> Darstellung mit Gitter *
- * NOGRID -> Darstellung ohne Gitter *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 03/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 03/12/89 *
- * *
- ****************************************************************/
-
- int set_grid(typ)
- int typ;
- {
-
- int returnset; /* allg Rückgabewert */
-
- if (plot == NULL) /* plot gesetzt */
- { /* Nein */
- seterror(SEQSEGRID); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter im Bereich ? */
- if ((typ < GRID) or
- (typ > NOGRID))
- {
- seterror(PARASEGRID); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else
- {
- setgrid(typ); /* go to Level 2 */
- setreturn(TRUE); /* kein Rückgabewert also */
- } /* TRUE setzten */
- return(returnset);
- }
-
- /****************************************************************
- * *
- * Function : Set_Fill() *
- * *
- *****************************************************************
- * *
- * Input : typ *
- * int typ Musterparameter *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt das Muster entsprechend *
- * entsprechend dem typ. Wenn dieser Parameter *
- * gesetzt ist (STYLE), wird auf der Ausgabe einer *
- * Niveaukurve die Kurve ausgefüllt. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * STYLE -> Darstellung mit Muster *
- * NOSTYLE -> Darstellung ohne Muster *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 04/01/90 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 04/01/90 *
- * *
- ****************************************************************/
-
- int set_fill(typ)
- int typ;
- {
-
- int returnset; /* allg Rückgabewert */
-
- if (plot == NULL) /* plot gesetzt */
- { /* Nein */
- seterror(SEQSEFILL); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter im Bereich ? */
- if ((typ < NOSTYLE) or
- (typ > STYLE))
- {
- seterror(PARASEFILL); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else
- {
- setfill(typ); /* go to Level 2 */
- setreturn(TRUE); /* kein Rückgabewert also */
- } /* TRUE setzten */
- return(returnset);
- }
-
- /****************************************************************
- * *
- * Function : set_mes() *
- * *
- *****************************************************************
- * *
- * Input : axis,unit *
- * int axis zu setzende Achse *
- * int unit neue Skalierung *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion legt die Skalierung einer Achse *
- * fest. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * XAXIS -> x-Achse *
- * YAXIS -> y-Achse *
- * ZAXIS -> z-Achse *
- * *
- * LIN -> lineare Darstellung *
- * LOG -> logarithmische Darstellung *
- * LN -> natürlich logarithmische Darstellung *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 04/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 04/12/89 *
- * *
- ****************************************************************/
-
- int set_mes(axis,typ)
- int axis;
- int typ;
- {
-
- int returnset;
-
- if (plot == NULL) /* plot gesetzt */
- { /* Nein */
- seterror(SEQSEMES); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter im Bereich ? */
- if ((axis < XAXIS) or
- (axis > ZAXIS) or
- (typ < LIN) or
- (typ > LN))
- {
- seterror(PARASEMES); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else
- if ((plot->typ == D2) and /* 2D Darstellung und Z */
- (axis == ZAXIS)) /* definiert ? */
- { /* Ja Fehler */
- seterror(NONAMETYP);
- setreturn(FALSE);
- }
- else /* go Level 2 */
- setreturn(setmes(axis,typ));
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : set_curvecolor() *
- * *
- *****************************************************************
- * *
- * Input : id,name,color *
- * int id id der Kurve *
- * char *name name der Kurve *
- * int color Farbe der Kurve *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Die Funktion set_curvecolor weist einer Kurve eine *
- * bestimmte Farbe zu. Die Kurve wird dann in dieser *
- * Farbe beim Bildaufbau gezeichnet. Bei einer *
- * Ausgabe auf ein einfarbiges Gerät wird dieser Wert *
- * für die Musteridentifikation verwendet. *
- * ACHTUNG: Der Paramter für die Farbe wird erst in *
- * der Display Funktion kontrolliert. Es kann *
- * deshalb vorkommen, dass nicht die gewählte Farbe *
- * dargestellt wird. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * NOID -> keine ID sondern Namen gegeben *
- * COLDET -> Farbe detection *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - curve not found *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 04/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 04/12/89 *
- * *
- ****************************************************************/
-
- int set_curvecolor(id,name,color)
- int id;
- char *name;
- int color;
- {
-
- int returnset; /* allg Rückgabewert */
-
- if ((plot == NULL) or /* plot gesetzt und */
- (plot->first == NULL)) /* Daten vorhanden ? */
- { /* Nein */
- seterror(SEQCURCOL); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter kontrolle */
- if (((id == NOID) and /* Nur 1 Parameter darf */
- (name == NULL)) or /* gesetzt sein */
- ((id != NOID) and
- (name != NULL)))
- { /* keiner oder mehrere sind */
- seterror(PARADEDATA); /* gesetzt. Fehler */
- setreturn(FALSE);
- }
- else
- setreturn(setcurvecolor(id,name,color));
- return(returnset);
- }
-
- /****************************************************************
- * *
- * Function : Set_3DOptions() *
- * *
- *****************************************************************
- * *
- * Input : typ *
- * int typ Options *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion setzt die 3D Ausgabe mit den *
- * gewünschten Parametern. Es können so die Ver- *
- * netzung der Oberfläche sowie die versteckten *
- * Linien ein- und ausgeschalten werden. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * CROSHON -> Darstellung mit Vernetzung *
- * CROSHOFF -> Darstellung ohne Vernetzung *
- * HIDDENON -> Darstellung mit versteckten Linien *
- * HIDDENOFF -> Darstellung ohne versteckten Linien *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 04/02/90 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 04/01/90 *
- * *
- ****************************************************************/
-
- int set_3doptions(typ)
- int typ;
- {
-
- int returnset; /* allg Rückgabewert */
-
- if (plot == NULL) /* plot gesetzt */
- { /* Nein */
- seterror(SEQ3DOPT); /* Error */
- setreturn(FALSE);
- }
- else
- setreturn(set3doptions(typ)); /* go to Level 2 */
- return(returnset);
- }
-
- /****************************************************************
- * *
- * Function : set_plotsize() *
- * *
- *****************************************************************
- * *
- * Input : x,y,xsize,ysize,attr,name *
- * int x Start von rechten Rand *
- * int y Start von oberem Rand *
- * int xsize Länge der Ausgabe *
- * int ysize Höhe der Ausgabe *
- * int attr Ausgabeattribute *
- * char *name Ausgabedatei *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : set_plotsize() legt die Dimension der Ausgabe *
- * auf einen Plotter fest. *
- * Die Grössenangaben beziehen sich auf den oberen *
- * rechten Rand der Graphik. Für die Attribute ist *
- * in Plotlib.h definiert: *
- * *
- * ROTATE -> Die Ausgabe wird um +90 Grad *
- * gedreht. *
- * *
- * Generell erfolgt die Ausgabe in eine Datei. Es *
- * können aber auch direkte Ausgaben über die *
- * Schnittstelle erfolgen, wenn diese auch wie eine *
- * Datei angesprochen werden können. Mögliche *
- * Filenamen auf dem Amiga für die Schnittstellen *
- * sind PAR:, PRT: und SER:. *
- * Wenn keine Filenamen spezifiziert wurde, wird *
- * default Plot.plt verwendet. *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - memory allocation failure *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 31/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 31/12/89 *
- * *
- ****************************************************************/
-
- int set_plotsize(x,y,xsize,ysize,attr,name)
- int x,
- y,
- xsize,
- ysize,
- attr;
- char *name;
- {
-
- int returnset;
-
- if (plot == NULL) /* plot gesetzt */
- { /* Nein */
- seterror(SEQSEPLO); /* Error */
- setreturn(FALSE);
- }
- else /* Grösse im Bereich ? */
- if ((!xsize) or
- (!ysize) or
- ( attr & ~ROTATE))
- {
- seterror(PARASEPLO); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else
- setreturn(setplotsize(x,y,xsize,ysize,attr,name));
- return(returnset);
- }
-
-
- /****************************************************************
- * *
- * Function : display() *
- * *
- *****************************************************************
- * *
- * Input : typ,para *
- * int typ output typ *
- * int para Graphikparamter *
- * *
- * Output : int returnset *
- * != FALSE alle klar *
- * == FALSE Fehler *
- * *
- *****************************************************************
- * *
- * Comment : Diese Funktion ist die komplexeste Funktion der *
- * der gesammten Library. Mit ihr wird die Ausgabe *
- * der Daten auf die verschiedenen Ausgabegeräte *
- * ausgeführt. Die Darstellung wird aus der Plot- *
- * struktur genommen so wie sie zu diesem Zeitpunkt *
- * eingestellt ist. *
- * Der Graphikparameter gibt Auskunft, ob der *
- * Programmierer vom Textmodus in den Graphikmodus *
- * umgeschaltet hat. Wenn dem so ist, muss keine *
- * Graphik initialisiert werden. *
- * Diese Funktion ist die einzige dieser Library *
- * welche auf den Level 3 zugreift. *
- * *
- * Die folgenden Parameter sind in Plotlib.h *
- * definiert: *
- * *
- * SCREENOUT -> Ausgabe auf Bildschirm *
- * SCREENCLOSE -> Schliesen des Graphikschirms *
- * PRINTOUT -> Ausgabe aus Matrixdrucker *
- * PLOTOUT -> Ausgabe auf Plotter HPGL *
- * *
- * GRAPHNOTSET -> Graphik nicht initialisiert *
- * GRAPHSET -> Graphik schon init. *
- * *
- * Errors : - sequence error *
- * - parameter failure *
- * - invalid display parameter *
- * - function not implemeted *
- * - graphic not open *
- * - displaypara not equal *
- * - no plotdatas specified *
- * - graphic open failure *
- * - graphic mem alloc failure *
- * - polygon fill failure *
- * - plotdfile open failure *
- * - plotsize not in range *
- * *
- * Rev : V1.0 *
- * *
- * History : V1.0 erstellen dieses Files 06/12/89 *
- * *
- * Doc : Plotlibrary User's Guide *
- * *
- * Bugs : keine bekannten *
- * *
- * Autor : Oesch Silvano *
- * *
- * Datum : 06/12/89 *
- * *
- ****************************************************************/
-
- int display(typ,para)
- int typ,
- para;
-
- {
- int returnset;
-
- if ((plot == NULL) or /* plot gesetzt und */
- (plot->first == NULL)) /* Daten vorhanden ? */
- { /* Nein */
- seterror(SEQDISP); /* Error */
- setreturn(FALSE);
- }
- else /* Parameter kontrolle */
- if ((typ < SCREENOUT) or /* outputparameter in range */
- (typ > PLOTOUT))
- {
- seterror(PARADISP); /* Nein, Fehler */
- setreturn(FALSE);
- }
- else
- setreturn(displ2(typ,para)); /* go Level 2 */
- return(returnset);
- }
-
-