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 */
|