File: CNdata.h

package info (click to toggle)
plotmtv 1.4.1-4
  • links: PTS
  • area: main
  • in suites: slink
  • size: 4,024 kB
  • ctags: 5,006
  • sloc: ansic: 51,179; makefile: 1,976; fortran: 1,277; sh: 510; csh: 439
file content (189 lines) | stat: -rw-r--r-- 6,791 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/*
 * CNdata.h - definitions for data, constant, macro 
 */

#ifndef CNdata_defined
#define CNdata_defined

#include <math.h>

/*
 * Constants 
 */
#define CN_MAXCHAR    1000       /* No of characters in a word */
#define CN_MAXWORDS   100        /* No of words in an array    */
#define CN_TRUE       1          /* True                       */
#define CN_FALSE      0          /* False                      */
#define CN_ERROR     -1          /* Error                      */
#define CN_SUCCESS    1          /* Success                    */
#define CN_FAIL       0          /* Failed                     */

#define CN_LARGE      1.0e99     /* A large number             */
#define CN_SMALL      1.0e-30    /* A small number             */
#define CN_SMALLER    1.0e-50    /* A very small number        */
#define CN_TINY       1.0e-99    /* A really tiny number       */

#define CN_HIGH       2          /* Contour-boundary interpolation style */
#define CN_LOW        1          /* Contour-boundary interpolation style */
#define CN_NONE       0          /* Contour-boundary interpolation style */

/* Data types */
#define CN_CONTOUR    1          /* contour plot                   */
#define CN_PLOT2D     2          /* 2D plot                        */
#define CN_PLOT3D     3          /* 3D plot                        */
#define CN_PIF_PARENT 4          /* triangular mesh data (parent)  */
#define CN_PIF_CHILD  5          /* pif mesh derived from a parent */
#define CN_GRID4D     6          /* 4D Grid data                   */
#define CN_VECTOR     7          /* Vector plot                    */
#define CN_PROBAB     8          /* Probability plot               */
#define CN_HISTOGRAM  9          /* Histogram plot                 */
#define CN_BARCHART   10         /* Bar Chart                      */
#define CN_MESH4D_P   11         /* 4D Mesh data (parent)          */
#define CN_MESH4D_C   12         /* 4D Mesh quantity data (child)  */
#define CN_POLYGON    13         /* Polygons (used for contours)   */

/* Data type */
#define CN_TRIA_STR   1          /* Triangle structure             */
#define CN_RECT_STR   2          /* Rectangle structure            */

/* Plot types */
#define CN_SCIENTIFIC_PLOT  1    /* Scientific (default) plot      */
#define CN_PROBABILITY_PLOT 2    /* Probability plot               */
#define CN_HISTOGRAM_PLOT   3    /* Histogram plot                 */
#define CN_BARCHART_PLOT    4    /* Bar Chart                      */

#define CN_NSLICE     0          /* No Slice defined               */
#define CN_XSLICE     1          /* Slice along X                  */
#define CN_YSLICE     2          /* Slice along Y                  */
#define CN_ZSLICE     3          /* Slice along Z                  */

#define CN_LINECONT   1          /* Line contours                  */
#define CN_FILLCONT   2          /* Filled contours                */
#define CN_PLOTMESH   3          /* Surface Plot                   */
#define CN_LNFILLCONT 4          /* Filled and line contours       */

#define CN_STEPSIZE   1          /* Use defined contour stepsize   */
#define CN_NUMSTEPS   2          /* Use defined num-steps          */
#define CN_LOGSTEPS   3          /* Use logarithm steps            */
#define CN_USERDEFN   4          /* User-defined contour steps     */

#define CN_RECTRECT   0          /* Rect-rect     contour interpolation */
#define CN_RECT2TRIA  1          /* Rect-2tria    contour interpolation */
#define CN_RECT4TRIA  2          /* Rect-4tria    contour interpolation */
#define CN_RECTFLAT   3          /* Rect-flatrect contour interpolation */
#define CN_RECT2MAT   4          /* Rect-mat-rect contour interpolation */

#define CN_INT_TRIA   1          /* Triangle-plane intersection method */
#define CN_INT_SEGM   2          /* Segment-plane intersection method  */

#define CN_MAXSTEPS   51         /* Max no of contour steps     */
#define CN_IDLSTEPS   10         /* Ideal no of contour steps   */

#define CN_FILE       1          /* Read from file              */
#define CN_PIPE       2          /* Read from pipe              */

#define CN_NONAME     "NoName"

/* Titles (for plots) */
#define CN_DEF_XLABEL "X-Axis"
#define CN_DEF_YLABEL "Y-Axis"
#define CN_DEF_ZLABEL "Z-Axis"
#define CN_DEF_TLABEL "PLOT"

/* PI */
#define CN_PI         3.14159265358979323846 /* PI                     */
#define CN_DEG2RAD    CN_PI/180.0            /* Degrees to Radians     */
#define CN_RAD2DEG    180.0/CN_PI            /* Radians to Degrees     */

/*
 * Macros
 */
#define BOOLEAN_VALUE(x)   ((x) ? "TRUE" : "FALSE")
#define SMALLER_OF(x,y)    ((x) < (y) ? (x) : (y))
#define MINOF3(a,b,c)      (SMALLER_OF(SMALLER_OF(a,b),c))
#define LARGER_OF(x,y)     ((x) > (y) ? (x) : (y))
#define MAXOF3(a,b,c)      (LARGER_OF(LARGER_OF(a,b),c))

#define EQUAL(x,y)      ((fabs((double)(x-y)) < CN_TINY) ? CN_TRUE : CN_FALSE)
#define NEQUAL(x,y)     ((fabs((double)(x-y)) > CN_TINY) ? CN_TRUE : CN_FALSE)

/*
 * Line types for plot
 */
#define CN_LN_NONE         0
#define CN_LN_SOLID        1
#define CN_LN_DASHED       2  
#define CN_LN_DOTTED       3
#define CN_LN_DOTDASH      4 
#define CN_LN_LONGDOT      5 
#define CN_LN_DOUBLEDOT    6
#define CN_LN_LONGDASH     7
#define CN_LN_DOTDASH2     8
#define CN_LN_TRIPLEDOT    9
#define CN_LN_DOTDOTDASH   10
#define CN_LN_TYPES        10
#define CN_GD_DOTTED      -1

/*
 * Marker types for plot
 */
#define CN_MK_NONE         0
#define CN_MK_DOT          1
#define CN_MK_CROSS        2
#define CN_MK_X            3
#define CN_MK_SQUARE1      4    
#define CN_MK_SQUARE2      5  
#define CN_MK_DIAMOND1     6 
#define CN_MK_DIAMOND2     7 
#define CN_MK_TRIANGLE1    8 
#define CN_MK_TRIANGLE2    9 
#define CN_MK_ITRIANGLE1   10 
#define CN_MK_ITRIANGLE2   11 
#define CN_MK_CIRCLE1      12
#define CN_MK_CIRCLE2      13
#define CN_MK_TYPES        13

/*
 * Fill Styles
 */
#define CN_FILL_NONE       0
#define CN_FILL_SOLID      1
#define CN_FILL_SQUARE     2
#define CN_FILL_DIAG1      3
#define CN_FILL_DIAG2      4
#define CN_FILL_CHKRBD     5
#define CN_FILL_VERT       6
#define CN_FILL_HORZ       7
#define CN_FILL_DOTTED     8
#define CN_FILL_TYPES      8
#define CN_FL_TYPES CN_FILL_TYPES

/*
 * Distinct colors
 */
#define CN_MAX_LINE_COLORS 10
#define CN_LN_COLRS CN_MAX_LINE_COLORS
#define CN_MK_COLRS CN_MAX_LINE_COLORS
#define CN_FL_COLRS CN_MAX_LINE_COLORS

/*
 * Distinct sizes
 */
#define CN_LN_SIZES 10
#define CN_MK_SIZES 10


/*
 * The basic element is a point, which is a point in space with
 * x,y,z cartesian coordinates.
 * A node contains a value (e.g. potential) in physical space (x,y,z).
 */

/* x-y-z coordinates */
typedef struct CNcoord_strct {
   double  x;
   double  y;
   double  z;
} CNcoord;

#endif /* CNdata_defined */