home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 344b.lha / plplot_v2.6 / include / plplot.h < prev   
Encoding:
C/C++ Source or Header  |  1990-01-27  |  13.3 KB  |  303 lines

  1. /* This header file contains all of the function prototypes and
  2.    machine dependent defines */
  3.  
  4. /* We need to know where the fonts are located, so set these. */
  5. #ifdef AMIGA
  6.   #define SSTRKFONT  "PLFONTS:plstnd.fnt"
  7.   #define SFONTINDX  "PLFONTS:plstnd.idx"
  8.   #define SFONTLKUP  "PLFONTS:plstnd.lkp"
  9.   #define XSTRKFONT  "PLFONTS:plxtnd.fnt"
  10.   #define XFONTINDX  "PLFONTS:plxtnd.idx"
  11.   #define XFONTLKUP  "PLFONTS:plxtnd.lkp"
  12. #endif
  13.  
  14. /* plfontld.c is the only file that uses these defines. So if you
  15.    move the fonts, just change these and recompile plfontld.c */
  16. #ifdef unix
  17.   #define SSTRKFONT  "/home/dukee2/amr/newplp/fonts/plstnd.fnt" 
  18.   #define SFONTINDX  "/home/dukee2/amr/newplp/fonts/plstnd.idx"
  19.   #define SFONTLKUP  "/home/dukee2/amr/newplp/fonts/plstnd.lkp"
  20.   #define XSTRKFONT  "/home/dukee2/amr/newplp/fonts/plxtnd.fnt"
  21.   #define XFONTINDX  "/home/dukee2/amr/newplp/fonts/plxtnd.idx"
  22.   #define XFONTLKUP  "/home/dukee2/amr/newplp/fonts/plxtnd.lkp"
  23. #endif
  24.  
  25. /* If PLDBL is defined all floating point variables will be of type double */
  26. #ifdef PLDBL
  27.    typedef double PLFLT;
  28. #else
  29.    typedef float PLFLT;
  30. #endif
  31.  
  32. /* You'd better leave this as is. I haven't gotten around to seeing
  33.    if things will work with short's. I doubt that they will. */
  34. typedef long PLINT;
  35.  
  36. #ifdef LATTICE_50
  37.    #define PLSTDC             1
  38. #endif
  39.  
  40. #ifdef __STDC__
  41.    #define PLSTDC             1
  42. #endif
  43.  
  44. /* We need a signed char type. Manx doesn't support signed char but
  45.    fortunately treats char as signed. */
  46. #ifndef AZTEC_C 
  47.    typedef signed char SCHAR;
  48. #else
  49.    typedef char        SCHAR;
  50. #endif
  51.  
  52. /* Let's try to get around some ANSI/non-ANSI problems with typedef's */
  53. /* PLPLOT needs a signed char type to work. Some compilers don't
  54.    recognize the signed char keywords however. */
  55. #ifdef PLSTDC
  56.    typedef void        VOID;
  57. #else
  58.    typedef char        VOID;
  59. #endif
  60.  
  61. #ifdef PLSTDC
  62.    #define PLARGS(a)  a       /* Use function prototypes. */
  63. #else
  64.    #define PLARGS(a)  ()
  65. #endif
  66.  
  67. #ifdef NOPROTS
  68.    #undef PLARGS
  69.    #define PLARGS(a) ()
  70. #endif
  71.  
  72. #ifndef max
  73.    #define max(a,b)     ((a)>(b) ? (a) : (b))
  74.    #define min(a,b)     ((a)<(b) ? (a) : (b))
  75.    #define abs(a)       ((a)<0 ? -(a) : (a))
  76. #endif
  77.  
  78. #define round(a)   (PLINT)((a)<0. ? ((a)-.5) : ((a)+.5))
  79.  
  80. /* All of the void type declarations are made first. */
  81. void pladv PLARGS((PLINT page));
  82. void plbeg PLARGS((PLINT dev, PLINT nx, PLINT ny));
  83. void plbin PLARGS((PLINT nbin, PLFLT *x, PLFLT *y, PLINT centre));
  84. void plbox PLARGS((char *xopt, PLFLT xtick, PLINT nxsub, char *yopt, \
  85.                    PLFLT ytick, PLINT nysub));
  86. void plccal PLARGS((PLFLT *pts, PLINT nx, PLINT ny, PLFLT zlev, \
  87.                     PLINT ix, PLINT iy, PLINT ixg, PLINT iyg, PLFLT *dist));
  88. void plclr PLARGS((void));
  89. void plcntr PLARGS((PLFLT *points, PLINT nx, PLINT ny, PLINT kx, PLINT lx, \
  90.                     PLINT ky, PLINT ly, PLFLT zlev, PLINT *iscan, \
  91.                     PLINT *ixstor, PLINT *iystor, PLINT nstor, \
  92.                     void (*tr)(PLFLT x, PLFLT y, PLFLT *tx, PLFLT *ty)));
  93. void plcol PLARGS((PLINT color));
  94. void plcont PLARGS((PLFLT *z, PLINT nx, PLINT ny, PLINT kx, PLINT lx, \
  95.                     PLINT ky, PLINT ly, PLFLT *clevel, PLINT nlevel, \
  96.                     void (*tr)()));
  97. void pldeco PLARGS((short **symbol, PLINT *length, char *text));
  98. void pldtik PLARGS((PLFLT vmin, PLFLT vmax, PLFLT *tick, PLINT *nsubt, \
  99.                     PLINT *mode, PLINT *prec));
  100. void plend PLARGS((void));
  101. void plenv PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, \
  102.                    PLINT just, PLINT axis));
  103. void plerrx PLARGS((PLINT n, PLFLT *xmin, PLFLT *xmax, PLFLT *y));
  104. void plerry PLARGS((PLINT n, PLFLT *x, PLFLT *ymin, PLFLT *ymax));
  105. void plerx1 PLARGS((PLFLT xmin, PLFLT xmax, PLFLT y));
  106. void plery1 PLARGS((PLFLT x, PLFLT ymin, PLFLT ymax));
  107. void plexit PLARGS((char *msg));
  108. void plfill PLARGS((PLINT n, PLFLT *x, PLFLT *y));
  109. void plfont PLARGS((PLINT ifont));
  110. void plfontld PLARGS((PLINT fnt));
  111. void plfontrel PLARGS((void));
  112. void plform PLARGS((PLFLT value, PLINT mode, PLINT prec, char *result));
  113. void plgra PLARGS((void));
  114. void plgspa PLARGS((PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax));
  115. void plhist PLARGS((PLINT n, PLFLT *data, PLFLT datmin, PLFLT datmax, \
  116.                     PLINT nbin, PLINT oldwin));
  117. void plhrsh PLARGS((PLINT ch, PLINT x, PLINT y));
  118. void pljoin PLARGS((PLFLT x1, PLFLT y1, PLFLT x2, PLFLT y2));
  119. void pllab PLARGS((char *xlabel, char *ylabel, char *tlabel));
  120. void pllclp PLARGS((PLINT x1, PLINT y1, PLINT x2, PLINT y2));
  121. void plline PLARGS((PLINT n, PLFLT *x, PLFLT *y));
  122. void pllsty PLARGS((PLINT line));
  123. void plmtex PLARGS((char *side, PLFLT disp, PLFLT pos, PLFLT just, \
  124.                     char *text));
  125. void plpat PLARGS((PLINT n, PLINT *inc, PLINT *del));
  126. void plpoi1 PLARGS((PLFLT x, PLFLT y, PLINT code));
  127. void plpoin PLARGS((PLINT n, PLFLT *x, PLFLT *y, PLINT code));
  128. void plprec PLARGS((PLINT setp, PLINT prec));
  129. void plpsty PLARGS((PLINT patt));
  130. void plptex PLARGS((PLFLT x, PLFLT y, PLFLT dx, PLFLT dy, PLFLT just, \
  131.                     char *text));
  132. void plr135 PLARGS((PLINT *ix, PLINT *iy, PLINT isens));
  133. void plr45 PLARGS((PLINT *ix, PLINT *iy, PLINT isens));
  134. void plschr PLARGS((PLFLT dep, PLFLT scale));
  135. void plselect PLARGS((PLINT ori, char *file));
  136. void plsetup PLARGS((PLFLT xdpi, PLFLT ydpi, PLINT xw, PLINT yw));
  137. void plsmaj PLARGS((PLFLT def, PLFLT scale));
  138. void plsmin PLARGS((PLFLT def, PLFLT scale));
  139. void plssym PLARGS((PLFLT def, PLFLT scale));
  140. void plstar PLARGS((PLINT nx, PLINT ny));
  141. void plstik PLARGS((PLFLT mx, PLFLT my, PLFLT dx, PLFLT dy));
  142. void plstr PLARGS((PLINT base, PLFLT *xform, PLINT refx, PLINT refy, \
  143.                   char *string));
  144. void plstyl PLARGS((PLINT nels, PLINT *mk, PLINT *sp));
  145. void plsvpa PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax));
  146. void plsym PLARGS((PLINT n, PLFLT *x, PLFLT *y, PLINT code));
  147. void plsym1 PLARGS((PLFLT x, PLFLT y, PLINT code));
  148. void pltext PLARGS((void));
  149. void plupd PLARGS((void));
  150. void plvpor PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax));
  151. void plvsta PLARGS((void));
  152. void plwid PLARGS((PLINT pwid));
  153. void plwind PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax));
  154. void plxtik PLARGS((PLINT x, PLINT y, PLINT below, PLINT above));
  155. void plxybx PLARGS((char *opt, char *label, PLFLT wx1, PLFLT wy1, \
  156.                     PLFLT wx2, PLFLT wy2, PLFLT vmin, PLFLT vmax, \
  157.                     PLFLT tick, PLINT nsub, PLINT nolast));
  158. void plxytx PLARGS((PLFLT wx1, PLFLT wy1, PLFLT wx2, PLFLT wy2, \
  159.                     PLFLT disp, PLFLT pos, PLFLT just, char *text));
  160. void plytik PLARGS((PLINT x, PLINT y, PLINT left, PLINT right));
  161. void plzbx PLARGS((char *opt, char *label, PLINT right, PLFLT dx, PLFLT dy, \
  162.                    PLFLT wx, PLFLT wy1, PLFLT wy2, PLFLT vmin, PLFLT vmax, \
  163.                    PLFLT tick, PLINT nsub));
  164. void plztx PLARGS((char *opt, PLFLT dx, PLFLT dy, PLFLT wx, PLFLT wy1, \
  165.                    PLFLT wy2, PLFLT disp, PLFLT pos, PLFLT just, char *t));
  166.  
  167. /* 3-D routine types*/
  168. void pl3cut PLARGS((PLINT sx1, PLINT sy1, PLINT sx2, PLINT sy2, PLINT su1, \
  169.                     PLINT sv1, PLINT su2, PLINT sv2, PLINT *cx, PLINT *cy));
  170. void plbox3 PLARGS((char *xopt, char *xlabel, PLFLT xtick, PLINT nsubx, \
  171.                     char *yopt, char *ylabel, PLFLT ytick, PLINT nsuby, \
  172.                     char *zopt, char *zlabel, PLFLT ztick, PLINT nsubz));
  173. void plgrid3 PLARGS((PLFLT tick));
  174. void plmesh PLARGS((PLFLT *x, PLFLT *y, PLFLT *z, PLINT ly, \
  175.                       PLINT nx, PLINT ny, PLINT opt));
  176. void plnxtv PLARGS((PLINT *u, PLINT *v, PLINT n, PLINT init));
  177. void plot3d PLARGS((PLFLT *x, PLFLT *y, PLFLT *z, PLINT ly, \
  178.                       PLINT nx, PLINT ny, PLINT opt, PLINT side));
  179. void plside3 PLARGS((PLFLT *x, PLFLT *y, PLFLT *z, PLINT ly, PLINT nx, \
  180.                        PLINT ny, PLINT opt));
  181. void plt3zz PLARGS((PLINT xstar0, PLINT ystar0, PLINT dx, PLINT dy, \
  182.                       PLINT flg0, PLINT init, PLFLT *x, PLFLT *y, PLFLT *z, \
  183.                       PLINT ly, PLINT nx, PLINT ny, PLINT *u, PLINT *v));
  184. void plw3d PLARGS((PLFLT basex, PLFLT basey, PLFLT height, PLFLT xmin0, \
  185.                      PLFLT xmax0, PLFLT ymin0, PLFLT ymax0, PLFLT zmin0, \
  186.                      PLFLT zmax0, PLFLT alt, PLFLT az));
  187.  
  188. /* The novice plplot user will not need to call the following functions */
  189. void cleanup PLARGS((void));
  190. void genlin PLARGS((PLINT x1, PLINT y1, PLINT x2, PLINT y2));
  191. void movphy PLARGS((PLINT x, PLINT y));
  192. void draphy PLARGS((PLINT x, PLINT y));
  193. void movwor PLARGS((PLFLT x, PLFLT y));
  194. void drawor PLARGS((PLFLT x, PLFLT y));
  195. void setphy PLARGS((PLINT xmin, PLINT xmax, PLINT ymin, PLINT ymax));
  196. void setpxl PLARGS((PLFLT xpmm0, PLFLT ypmm0));
  197. void setsub PLARGS((void));
  198. void xform PLARGS((PLFLT x, PLFLT y, PLFLT *tx, PLFLT *ty));
  199. /* stuff in global.c */
  200. void glev PLARGS((PLINT *n));
  201. void slev PLARGS((PLINT n));
  202. void gbase PLARGS((PLFLT *x, PLFLT *y, PLFLT *xc, PLFLT *yc));
  203. void sbase PLARGS((PLFLT x, PLFLT y, PLFLT xc, PLFLT yc));
  204. void gnms PLARGS((PLINT *n));
  205. void snms PLARGS((PLINT n));
  206. void gdev PLARGS((PLINT *dev, PLINT *term, PLINT *gra));
  207. void sdev PLARGS((PLINT dev, PLINT term, PLINT gra));
  208. void smod PLARGS((PLINT term));
  209. void gcurr PLARGS((PLINT *ix, PLINT *iy));
  210. void scurr PLARGS((PLINT ix, PLINT iy));
  211. void gdom PLARGS((PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax));
  212. void sdom PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax));
  213. void grange PLARGS((PLFLT *zscl, PLFLT *zmin, PLFLT *zmax));
  214. void srange PLARGS((PLFLT zscl, PLFLT zmin, PLFLT zmax));
  215. void gw3wc PLARGS((PLFLT *dxx, PLFLT *dxy, PLFLT *dyx, PLFLT *dyy, PLFLT *dyz));
  216. void sw3wc PLARGS((PLFLT dxx, PLFLT dxy, PLFLT dyx, PLFLT dyy, PLFLT dyz));
  217. void gvpp PLARGS((PLINT *ixmin, PLINT *ixmax, PLINT *iymin, PLINT *iymax));
  218. void svpp PLARGS((PLINT ixmin, PLINT ixmax, PLINT iymin, PLINT iymax));
  219. void gspp PLARGS((PLINT *ixmin, PLINT *ixmax, PLINT *iymin, PLINT *iymax));
  220. void sspp PLARGS((PLINT ixmin, PLINT ixmax, PLINT iymin, PLINT iymax));
  221. void gclp PLARGS((PLINT *ixmin, PLINT *ixmax, PLINT *iymin, PLINT *iymax));
  222. void sclp PLARGS((PLINT ixmin, PLINT ixmax, PLINT iymin, PLINT iymax));
  223. void gphy PLARGS((PLINT *ixmin, PLINT *ixmax, PLINT *iymin, PLINT *iymax));
  224. void sphy PLARGS((PLINT ixmin, PLINT ixmax, PLINT iymin, PLINT iymax));
  225. void gsub PLARGS((PLINT *nx, PLINT *ny, PLINT *cs));
  226. void ssub PLARGS((PLINT nx, PLINT ny, PLINT cs));
  227. void gumpix PLARGS((PLINT *ix, PLINT *iy));
  228. void sumpix PLARGS((PLINT ix, PLINT iy));
  229. void gatt PLARGS((PLINT *ifnt, PLINT *icol));
  230. void satt PLARGS((PLINT ifnt, PLINT icol));
  231. void gcol PLARGS((PLINT *icol));
  232. void scol PLARGS((PLINT icol));
  233. void gwid PLARGS((PLINT *pwid));
  234. void swid PLARGS((PLINT pwid));
  235. void gspd PLARGS((PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax));
  236. void sspd PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax));
  237. void gvpd PLARGS((PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax));
  238. void svpd PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax));
  239. void gvpw PLARGS((PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax));
  240. void svpw PLARGS((PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax));
  241. void gpixmm PLARGS((PLFLT *x, PLFLT *y));
  242. void spixmm PLARGS((PLFLT x, PLFLT y));
  243. void gwp PLARGS((PLFLT *xscl, PLFLT *xoff, PLFLT *yscl, PLFLT *yoff));
  244. void swp PLARGS((PLFLT xscl, PLFLT xoff, PLFLT yscl, PLFLT yoff));
  245. void gwm PLARGS((PLFLT *xscl, PLFLT *xoff, PLFLT *yscl, PLFLT *yoff));
  246. void swm PLARGS((PLFLT xscl, PLFLT xoff, PLFLT yscl, PLFLT yoff));
  247. void gdp PLARGS((PLFLT *xscl, PLFLT *xoff, PLFLT *yscl, PLFLT *yoff));
  248. void sdp PLARGS((PLFLT xscl, PLFLT xoff, PLFLT yscl, PLFLT yoff));
  249. void gmp PLARGS((PLFLT *xscl, PLFLT *xoff, PLFLT *yscl,PLFLT *yoff));
  250. void smp PLARGS((PLFLT xscl, PLFLT xoff, PLFLT yscl, PLFLT yoff));
  251. void gchr PLARGS((PLFLT *def, PLFLT *ht));
  252. void schr PLARGS((PLFLT def, PLFLT ht));
  253. void gsym PLARGS((PLFLT *def, PLFLT *ht));
  254. void ssym PLARGS((PLFLT def, PLFLT ht));
  255. void gmaj PLARGS((PLFLT *def, PLFLT *ht));
  256. void smaj PLARGS((PLFLT def, PLFLT ht));
  257. void gmin PLARGS((PLFLT *def, PLFLT *ht));
  258. void smin PLARGS((PLFLT def, PLFLT ht));
  259.  
  260. /* Functions that return floats */
  261. PLFLT plstrl PLARGS((char *string));
  262. /* Stuff in fcnvrt.c */
  263. PLFLT dcmmx PLARGS((PLFLT x));
  264. PLFLT dcmmy PLARGS((PLFLT y));
  265. PLFLT dcscx PLARGS((PLFLT x));
  266. PLFLT dcscy PLARGS((PLFLT y));
  267. PLFLT mmdcx PLARGS((PLFLT x));
  268. PLFLT mmdcy PLARGS((PLFLT y));
  269. PLFLT scdcx PLARGS((PLFLT x));
  270. PLFLT scdcy PLARGS((PLFLT y));
  271. PLFLT wcmmx PLARGS((PLFLT x));
  272. PLFLT wcmmy PLARGS((PLFLT y));
  273. PLFLT w3wcx PLARGS((PLFLT x, PLFLT y, PLFLT z));
  274. PLFLT w3wcy PLARGS((PLFLT x, PLFLT y, PLFLT z));
  275.  
  276. /* Functions returning PLINTs */
  277. PLINT plabv PLARGS((PLINT px, PLINT py, PLINT sx1, PLINT sy1, PLINT sx2, PLINT sy2));
  278. PLINT plcvec PLARGS((PLINT ch, signed char **xygrid));
  279. PLINT stindex PLARGS((char *str1, char *str2));
  280. PLINT strpos PLARGS((char *str, char chr));
  281. PLINT stsearch PLARGS((char *str, char chr));
  282. /* This stuff is all in icnvrt.c */
  283. PLINT dcpcx PLARGS((PLFLT x));
  284. PLINT dcpcy PLARGS((PLFLT y));
  285. PLINT mmpcx PLARGS((PLFLT x));
  286. PLINT mmpcy PLARGS((PLFLT y));
  287. PLINT wcpcx PLARGS((PLFLT x));
  288. PLINT wcpcy PLARGS((PLFLT y));
  289.  
  290. /* Device independent routines */
  291. void grsetup PLARGS((void));
  292. void grselect PLARGS((void));
  293. void grbeg PLARGS((PLINT dev));
  294. void grclr PLARGS((void));
  295. void grpage PLARGS((void));
  296. void grcol PLARGS((void));
  297. void grwid PLARGS((void));
  298. void grinit PLARGS((void));
  299. void grgra PLARGS((void));
  300. void grline PLARGS((PLINT x1, PLINT y1, PLINT x2, PLINT y2));
  301. void grtext PLARGS((void));
  302. void grtidy PLARGS((void));
  303.