home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / forum23.lzh / f23b / SOFTWARE / PDRAW / header.h < prev    next >
Text File  |  1992-01-15  |  4KB  |  119 lines

  1. #define MAXCHAR 1000            /* Maximum number of chars in a line */
  2. #define MAXPTS  2000            /* Maximum no of points */
  3. #define MAXTYPE 100             /* Maximum no of line/marker types */
  4. #define N       4               /* The size of all matrices */
  5. #define MAXKEY  20              /* Maximum no of keywords */
  6.  
  7. #define YES   1
  8. #define NO    0
  9. #define ON    1
  10. #define OFF   0
  11. #define TRUE  1
  12. #define FALSE 0
  13. #define SMALL 1.0e-10
  14.  
  15. #define esc '\033'              /* ESC character (ascii) */
  16. #define PSFILE "dataplot.ps"    /* Postscript file */
  17. #define SUN_LIN  4
  18. #define SUN_MKR 96
  19. #define HP_LIN   9
  20. #define HP_MKR   5
  21. #define PS_LIN  11
  22. #define PS_MKR  17
  23.  
  24. #define PSMAX 500
  25. #define PSMIN 100
  26.  
  27. /* input formats */
  28. #define CONV 0
  29. #define PIF  1
  30.  
  31. typedef double matrix[N][N];    /* 2D Matrix array */
  32.  
  33.  
  34. /* Data structure for point/curve storage */
  35. typedef struct {
  36.    double x;
  37.    double y;
  38.    double z;
  39. } xyzdata;                      /* xyz coordinates */
  40.  
  41. typedef struct {
  42.    double xl;
  43.    double xr;
  44.    double yb;
  45.    double yt;
  46. } box;                          /* box dimensions */
  47.  
  48. typedef struct node_strct { 
  49.    double x;
  50.    double y;
  51.    double z;
  52.    struct node_strct *next;
  53.    struct node_strct *prev;
  54. } node;                          /* structure containing xyz data points */
  55.  
  56. typedef struct segm_strct { 
  57.    struct node_strct *head;      /* pointer to first node */
  58.    struct node_strct *tail;      /* pointer to last node */
  59.    struct segm_strct *next;
  60.    struct segm_strct *prev;
  61.    double zave;                  /* average z value of the points */
  62. } segm;                          /* a single line */
  63.  
  64. typedef struct node_strct *nodeptr;
  65. typedef struct segm_strct *segmptr;
  66.  
  67.  
  68. /* This linked list stores the names of all the plotfiles */
  69. typedef struct pfile_strct {
  70.    char   plotfile[MAXCHAR];
  71.    int    format;
  72.    struct pfile_strct *prev;
  73.    struct pfile_strct *next;
  74. } pfile;
  75.  
  76. typedef struct pfile_strct *pfileptr;
  77.  
  78. #ifndef MAIN
  79.  
  80. extern segmptr segmhead;                /* pointer to first segment */
  81. extern segmptr segmtail;                /* pointer to last segment */
  82.  
  83. extern pfileptr pfilehead;
  84. extern pfileptr pfiletail;
  85.  
  86. /* some plot options */
  87. extern char    *term;                  /* terminal type */
  88. extern char    xlabel[MAXCHAR];        /* x-label */
  89. extern char    ylabel[MAXCHAR];        /* y-label */
  90. extern char    zlabel[MAXCHAR];        /* z-label */
  91. extern char    toplabel[MAXCHAR];      /* header label */
  92. extern char    printer[MAXCHAR];       /* printer type */
  93.  
  94. /* info for scaling and transformations */
  95. extern xyzdata eyepos;                 /* position of the eye/camera */
  96. extern xyzdata viewcenter;             /* center of view */
  97. extern xyzdata viewup;                 /* up direction of view */
  98. extern box     window;                 /* window dimensions relative to center */
  99. extern box     viewport;               /* viewport in normalized device coordinates*/
  100.  
  101. extern matrix  I;                      /* identity matrix */
  102. extern matrix  view_transfo;           /* matrix for view transformation */
  103. extern double  ndc_width;              /* width in ndc space */
  104. extern double  ndc_height;             /* height in ndc space */
  105.  
  106. /* plotting options/parameters */
  107. extern int grid,equalscale,postscript,printplot,noplot;
  108. extern int xticks,yticks,zticks;
  109. extern int line,linechange,marker,markerchange;
  110. extern int linetype[MAXTYPE], markertype[MAXTYPE];
  111. extern int hiddenline, quick_sort, nosort;
  112. extern double scale;
  113.  
  114. /* plot boundaries */
  115. extern double xmin, xmax, ymin, ymax, zmin, zmax;
  116. extern double pxmin, pymin, pxmax, pymax;
  117.  
  118. #endif
  119.