ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/meta/mgvars.h
Revision: 1.1
Committed: Sat Feb 22 02:07:26 2003 UTC (21 years, 2 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R5
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# User Rev Content
1 greg 1.1 /* RCSid: $Id$ */
2     /*
3     * mgvars.h - header file for graphing routines using variables.
4     *
5     * 6/23/86
6     *
7     * Greg Ward Larson
8     */
9    
10     /*
11     * Data arrays are used to store point data.
12     */
13    
14     typedef struct {
15     int size; /* the size of the array */
16     float *data; /* pointer to the array */
17     } DARRAY;
18    
19     /*
20     * Intermediate variables are not referenced
21     * directly by the program, but may be used
22     * for defining other variables.
23     */
24    
25     typedef struct ivar {
26     char *name; /* the variable name */
27     char *dfn; /* its definition */
28     struct ivar *next; /* next in list */
29     } IVAR; /* an intermediate variable */
30    
31     /*
32     * Variables are used for all graph parameters. The four variable
33     * types are: REAL, FUNCTION, STRING and DATA.
34     * Of these, only STRING and DATA must be interpreted by us; an
35     * expression parser will handle the rest.
36     */
37     /* standard variables */
38     #define FTHICK 0 /* frame thickness */
39     #define GRID 1 /* grid on? */
40     #define LEGEND 2 /* legend title */
41     #define OTHICK 3 /* origin thickness */
42     #define PERIOD 4 /* period of polar plot */
43     #define SUBTITLE 5 /* subtitle */
44     #define SYMFILE 6 /* symbol file */
45     #define TSTYLE 7 /* tick mark style */
46     #define TITLE 8 /* title */
47     #define XLABEL 9 /* x axis label */
48     #define XMAP 10 /* x axis mapping */
49     #define XMAX 11 /* x axis maximum */
50     #define XMIN 12 /* x axis minimum */
51     #define XSTEP 13 /* x axis step */
52     #define YLABEL 14 /* y axis label */
53     #define YMAP 15 /* y axis mapping */
54     #define YMAX 16 /* y axis maximum */
55     #define YMIN 17 /* y axis minimum */
56     #define YSTEP 18 /* y axis step */
57    
58     #define NVARS 19 /* number of standard variables */
59    
60     /* curve variables */
61     #define C 0 /* the curve function */
62     #define CCOLOR 1 /* the curve color */
63     #define CDATA 2 /* the curve data */
64     #define CLABEL 3 /* the curve label */
65     #define CLINTYPE 4 /* the curve line type */
66     #define CNPOINTS 5 /* number of curve points to plot */
67     #define CSYMSIZE 6 /* the curve symbol size */
68     #define CSYMTYPE 7 /* the curve symbol type */
69     #define CTHICK 8 /* the curve line thickness */
70    
71     #define NCVARS 9 /* number of curve variables */
72    
73     #define MAXCUR 8 /* maximum number of curves */
74    
75     /* types */
76     #define REAL 1 /* floating point */
77     #define STRING 2 /* character array */
78     #define FUNCTION 3 /* function definition */
79     #define DATA 4 /* a set of real points */
80    
81     /* flags */
82     #define DEFINED 01 /* variable is defined */
83    
84     typedef struct {
85     char *name; /* the variable name */
86     short type; /* the variable type */
87     char *descrip; /* brief description */
88     unsigned short flags; /* DEFINED, etc. */
89     union {
90     char *s; /* STRING value */
91     DARRAY d; /* DATA value */
92     char *dfn; /* variable definition */
93     } v; /* value */
94     } VARIABLE; /* a variable */
95    
96     extern IVAR *ivhead; /* the intermediate list */
97    
98     extern VARIABLE gparam[NVARS]; /* the graph variables */
99     extern VARIABLE cparam[MAXCUR][NCVARS]; /* the curve variables */
100    
101     extern VARIABLE *vlookup();
102    
103     extern double varvalue(), funvalue();
104    
105     extern int errno;
106    
107     #define mgclear(vname) undefine(vlookup(vname))