home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / libs / plotlib.lha / Plot_1.lzh / Header / PlotLib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-02-21  |  12.0 KB  |  401 lines

  1. #ifndef PLOTLIB_H
  2. #define PLOTLIB_H
  3.  
  4. /****************************************************************
  5. *                                                                                                                                *
  6. *     Filename : PlotLib.h                                                                                    *
  7. *                                                                                                                                *
  8. *****************************************************************
  9. *                                                                                                                                *
  10. *        Comment : Includedatei für die Plotlibrary. Diese Datei            *
  11. *                            muss immer eingebunden werden, wenn eine Funktion    *
  12. *                            dieser Library verwendet wird.                                        *
  13. *                                                                                                                                *
  14. *                Rev : V1.0                                                                                            *
  15. *                                                                                                                                *
  16. *        History : V1.0 erstellen dieses Files                            15/11/89    *
  17. *                                                                                                                                *
  18. *                Doc : Plotlibrary User's Guide                                                    *
  19. *                                                                                                                                *
  20. *             Bugs : keine bekannten                                                                        *
  21. *                                                                                                                                *
  22. *            Autor : Oesch Silvano                                                                            *
  23. *                                                                                                                                *
  24. *            Datum : 15/11/89                                                                                    *
  25. *                                                                                                                                *
  26. ****************************************************************/
  27.  
  28. /****************************************************************
  29. *                                                                                                                                *
  30. *    Defines für die verschiedenen Rechner und Betriebssysteme.        *
  31. *    Implemenationen auf den Rechnern                                                            *
  32. *                                                                                                                                *
  33. *                            - AMIGA    unter Lattice C                                                        *
  34. *                            - MSDOS und kompatible unter Turbo C                            *
  35. *                                                                                                                                *
  36. *    vorhanden.                                                                                                        *
  37. *                                                                                                                                *
  38. ****************************************************************/
  39.  
  40. /****************************************************************
  41. *                                                                                                                                *
  42. * Prototypendeklaration                                                                                    *
  43. *                                                                                                                                *
  44. *****************************************************************
  45. *                                                                                                                                *
  46. *    Wenn ein Compiler keine Prototypen verarbeiten kann, dann            *
  47. *    die Variable PROTOTYPEN auf 0 definiert werden.                                *
  48. *                                                                                                                                *
  49. ****************************************************************/
  50.  
  51. #ifdef AMIGA
  52. #ifdef LATTICE_50
  53. #define PROTOTYPEN 1
  54. #endif
  55. #endif
  56.  
  57. #ifdef __MSDOS__
  58. #ifdef __TURBOC__
  59. #define PROTOTYPEN 1
  60. #endif
  61. #endif
  62.  
  63.  
  64. #ifdef __MSDOS__
  65. #ifdef __TURBOC__
  66.  
  67. /****************************************************************
  68. *                                                                                                                                *
  69. * Graphiktreiberdefinitionen nur für MSDOS                                            *
  70. *                                                                                                                                *
  71. *****************************************************************
  72. *                                                                                                                                *
  73. *    Diese Deklaration beinhaltet alle Treiber, welche gelinkt            *
  74. *    (1) und welche nicht gelinkt (0) werden sollen. Da jeder             *
  75. *    Treiber ca. 6 kBytes gross ist, kann so das Programm stark        *
  76. * verkleinert werden. Wenn der Treiber nicht definiert ist,            *
  77. *    wird versucht, den richtigen von der Disk zu laden.                        *
  78. *                                                                                                                                *
  79. ****************************************************************/
  80.  
  81. #define MAXDRIVERS 6
  82.  
  83. #define ATT_DRIVER            0                        /* Hier müssen die Treiber    */
  84. #define CGA_DRIVER            1                        /* angegeben werden. Wenn        */
  85. #define EGAVGA_DRIVER        1                        /* alle Treiber mit 0 def.    */
  86. #define PC3270_DRIVER        0                        /* sind, dann wird auf der    */
  87. #define HERC_DRIVER            0                        /* Disk der Graphiktreiber    */
  88. #define IBM8514_DRIVER    0                        /* gesucht.                                    */
  89.  
  90. #ifndef _PLOT_                                            /* Nur in Userprogramm            */
  91.                                                                         /* nicht definiert.                    */
  92.  
  93. #include <dos.h>
  94.  
  95. extern unsigned _stklen = 10240;        /* 10kB Stack für qsort            */
  96.  
  97. #if CGA_DRIVER
  98. extern void CGA_driver(void);
  99. #endif
  100.  
  101. #if EGAVGA_DRIVER
  102. extern void EGAVGA_driver(void);
  103. #endif
  104.  
  105. #if PC3270_DRIVER
  106. extern void PC3270_driver(void);
  107. #endif
  108.  
  109. #if HERC_DRIVER
  110. extern void Herc_driver(void);
  111. #endif
  112.  
  113. #if IBM8514_DRIVER
  114. extern void IBM8414_driver(void);
  115. #endif
  116.  
  117. #if ATT_DRIVER
  118. extern void ATT_driver(void);
  119. #endif
  120.  
  121. void (*DRIVERS[MAXDRIVERS])(void) =
  122. {
  123.  
  124. #if CGA_DRIVER
  125.     CGA_driver,
  126. #else
  127.     NULL,
  128. #endif
  129.  
  130. #if EGAVGA_DRIVER
  131.     EGAVGA_driver,
  132. #else
  133.     NULL,
  134. #endif
  135.  
  136. #if PC3270_DRIVER
  137.     PC3270_driver,
  138. #else
  139.     NULL,
  140. #endif
  141.  
  142. #if HERC_DRIVER
  143.     Herc_driver,
  144. #else
  145.     NULL,
  146. #endif
  147.  
  148. #if IBM8514_DRIVER
  149.     IBM8414_driver,
  150. #else
  151.     NULL,
  152. #endif
  153.  
  154. #if ATT_DRIVER
  155.     ATT_driver,
  156. #else
  157.     NULL,
  158. #endif
  159.  
  160. };
  161.  
  162. #endif
  163. #endif
  164. #endif
  165.  
  166. /****************************************************************
  167. *                                                                                                                                *
  168. * Typedefinition                                                                                                *
  169. *                                                                                                                                *
  170. *****************************************************************
  171. *                                                                                                                                *
  172. *    DATA steht für den Datentyp welcher verarbeitet wird. Er kann    *
  173. *    bei Geschwindigkeitsproblemen auf float gesetzt werden.                *
  174. *                                                                                                                                *
  175. *    GPT steht für GraphicPoint. Damit ist die Grösse gemeint,            *
  176. *    welche verwendet wird, um in den Bildschirm mittels der                *
  177. *    ScFillPolyLine zu zeichnen. Dieser Wert muss auf den                    *
  178. *    verschiedenen Rechnern angepasst werden.                                            *
  179. *                                                                                                                                *
  180. ****************************************************************/
  181.  
  182. typedef double DATA;
  183.  
  184. #ifdef AMIGA
  185. typedef short GPT;
  186. #endif
  187.  
  188. #ifdef __MSDOS__
  189. #ifdef __TURBOC__
  190. typedef int GPT;
  191. #endif
  192. #endif
  193.  
  194.  
  195. /****************************************************************
  196. *                                                                                                                                *
  197. *    allgemeine Defines                                                                                        *
  198. *                                                                                                                                *
  199. ****************************************************************/
  200.  
  201. #ifndef TRUE
  202. #define TRUE 1
  203. #endif
  204.  
  205. #ifndef FALSE
  206. #define FALSE 0
  207. #endif
  208.  
  209. /****************************************************************
  210. *                                                                                                                                *
  211. * Darstellungsparameter                                                                                    *
  212. *                                                                                                                                *
  213. ****************************************************************/
  214.  
  215. #define NOTYP        0                                        /* kein spez. Typ                        */
  216. #define D2            1                                        /* Zweidimensionale Dar.        */
  217. #define NIV            2                                        /* Niveau Darstellung                */
  218. #define D3            3                                        /* Dreidimensionale Dar.        */
  219.  
  220. /****************************************************************
  221. *                                                                                                                                *
  222. *    Clipping                                                                                                            *
  223. *                                                                                                                                *
  224. ****************************************************************/
  225.  
  226. #define NOCLIPP    1                                        /* kein Clipping                        */
  227. #define CLIPP        2                                        /* Clippen                                    */
  228.  
  229. /****************************************************************
  230. *                                                                                                                                *
  231. *    Übergabeparameter für Set_Autoval                                                            *
  232. *                                                                                                                                *
  233. ****************************************************************/
  234.  
  235. #define AUTOON    1                                        /* einschalten                            */
  236. #define AUTOOFF    2                                        /* ausschalten                            */
  237.  
  238. /****************************************************************
  239. *                                                                                                                                *
  240. * Übergabeparameter für Set_Mes                                                                    *
  241. *                                                                                                                                *
  242. ****************************************************************/
  243.  
  244. #define LIN 1                                                /* lineare Darstellung            */
  245. #define LOG 2                                                /* log. Darstellung                    */
  246. #define LN    3                                                /* natürlich log. Dar.            */
  247.  
  248. /****************************************************************
  249. *                                                                                                                                *
  250. * Übergabeparameter für Set_Grid                                                                *
  251. *                                                                                                                                *
  252. ****************************************************************/
  253.  
  254. #define GRID        1                                        /* mit Gitter                                */
  255. #define NOGRID    2                                        /* ohne Gitter                            */
  256.  
  257. /****************************************************************
  258. *                                                                                                                                *
  259. * Übergabeparameter für Set_Style                                                                *
  260. *                                                                                                                                *
  261. ****************************************************************/
  262.  
  263. #define STYLE        0                                        /* mit Füllmuster                        */
  264. #define NOSTYLE    -1                                    /* ohne Füllmuster                    */
  265.  
  266. /****************************************************************
  267. *                                                                                                                                *
  268. * Übergabeparameter für Set_Value                                                                *
  269. *                                                                                                                                *
  270. ****************************************************************/
  271.  
  272. #define CLEAR            -1                                /* Userwerte löschen                */
  273. #define XMIN            0                                    /* sonst die verschiedenen    */
  274. #define XMAX            1                                    /* Werte für die entsp.            */
  275. #define YMIN            2                                    /* Grenze                                        */
  276. #define YMAX            3
  277. #define ZMIN            4
  278. #define ZMAX            5
  279.  
  280. /****************************************************************
  281. *                                                                                                                                *
  282. * Übergabeparameter für Set_Curvecolor                                                    *
  283. *                                                                                                                                *
  284. ****************************************************************/
  285.  
  286. #define COLDET        0                                    /* Color detection                    */
  287.  
  288. /****************************************************************
  289. *                                                                                                                                *
  290. * Übergabeparameter für Del_Data                                                                *
  291. *                                                                                                                                *
  292. ****************************************************************/
  293.  
  294. #define DELALL    -2                                    /* alle Daten löschen                */
  295. #define DELLAST -1                                    /* letzte Kurve löschen            */
  296. #define NOID        0                                        /* keine ID, Namen                    */
  297.  
  298. /****************************************************************
  299. *                                                                                                                                *
  300. * Übergabeparameter der Achsen                                                                    *
  301. *                                                                                                                                *
  302. ****************************************************************/
  303.  
  304. #define XAXIS    1                                            /* X-Achse                                    */
  305. #define    YAXIS    2                                            /* Y-Achse                                    */
  306. #define    ZAXIS    3                                            /* Z-Achse                                    */
  307.  
  308. /****************************************************************
  309. *                                                                                                                                *
  310. * Übergabeparameter für Set_PlotSize                                                        *
  311. *                                                                                                                                *
  312. ****************************************************************/
  313.  
  314. #define ROTATE            1                                /* Plotausgabe drehen                */
  315. #define PLDATASET        2                                /* Plotterdaten gesetzt            */
  316. #define PLLOADED        4                                /* Plottertreiber geladen        */
  317.  
  318. /****************************************************************
  319. *                                                                                                                                *
  320. * Übergabeparameter für Set_3DOptions                                                        *
  321. *                                                                                                                                *
  322. ****************************************************************/
  323.  
  324. #define CROSHON            0x01                        /* Croshatching ein                    */
  325. #define CROSHOFF        0x02                        /* Croshatching aus                    */
  326. #define HIDDENON        0x04                        /* Hiddenline ein                        */
  327. #define HIDDENOFF        0x08                        /* Hiddenline aus                        */
  328.  
  329. /****************************************************************
  330. *                                                                                                                                *
  331. * Übergabeparameter für Display                                                                    *
  332. *                                                                                                                                *
  333. ****************************************************************/
  334.  
  335. #define SCREENOUT     1                                /* Bildschirmausgabe                */
  336. #define SCREENCLOSE    2                                /* Bildschirmausgabe ende        */
  337. #define PRINTOUT        3                                /* Ausgabe auf Matrixdr.        */
  338. #define PLOTOUT            4                                /* Ausgabe auf Plotter            */
  339.  
  340. #define GRAPHNOTSET    1                                /* keine eigene Graphik            */
  341. #define GRAPHSET        2                                /* eigene Graphik                        */
  342. #define PLOTSET            4                                /* Plotausgabe im gange            */
  343.  
  344. /****************************************************************
  345. *                                                                                                                                *
  346. *    Definition der Funktionsparameter der Level 1 Funktionen            *
  347. *                                                                                                                                *
  348. ****************************************************************/
  349.  
  350. #if PROTOTYPEN
  351.  
  352. int open_plot(void);
  353. int close_plot(void);
  354. int get_data(DATA (*)(DATA),DATA ,DATA ,int );
  355. int load_data(char *,int );
  356. int del_data(int ,char *);
  357. int set_axisname(int ,char *);
  358. int set_unit(int ,char *);
  359. int set_titel(char *);
  360. int set_curvename(int ,char *);
  361. int set_value(int ,DATA );
  362. int get_value(int ,DATA *);
  363. int set_autoval(int );
  364. int set_grid(int );
  365. int set_fill(int );
  366. int set_mes(int ,int );
  367. int set_curvecolor(int ,char *,int );
  368. int set_3doptions(int);
  369. int set_plotsize(int ,int ,int ,int ,int ,char *);
  370. int display(int ,int );
  371. void dis_ploterror(void);
  372. char *get_ploterror(void);
  373.  
  374. #else
  375.  
  376. int open_plot();
  377. int close_plot();
  378. int get_data();
  379. int load_data();
  380. int del_data();
  381. int set_axisname();
  382. int set_unit();
  383. int set_titel();
  384. int set_curvename();
  385. int set_value();
  386. int get_value();
  387. int set_autoval();
  388. int set_grid();
  389. int set_fill();
  390. int set_mes();
  391. int set_curvecolor();
  392. int set_3doptions();
  393. int set_plotsize();
  394. int display();
  395. void dis_ploterror();
  396. char *get_ploterror();
  397.  
  398. #endif
  399.  
  400. #endif
  401.