3 <H2>Information from source codes</H2>
20 #define MINFLOAT (1e-31)
25 #define CONTOUR_ACCURACY (MINFLOAT)
29 typedef long contourParaTypeInteger;
30 typedef double contourParaTypeReal;
32 typedef struct contourParaElement {
33 contourParaTypeInteger n;
34 contourParaTypeReal Min;
35 contourParaTypeReal Max;
36 contourParaTypeReal d;
39 typedef struct contourImage {
40 contourParaTypeReal* image;
41 contourParaTypeReal* image2;
47 contourParaTypeReal section;
50 typedef struct contourPoint {
51 contourParaTypeReal x;
52 contourParaTypeReal y;
53 contourParaTypeReal z;
56 typedef struct contourALine contourALine;
65 typedef struct contourLine contourLine;
68 contourALine* current;
69 contourParaTypeInteger n;
73 typedef struct contourLines contourLines;
77 contourParaTypeInteger n;
81 typedef struct contourLinesSet contourLinesSet;
82 struct contourLinesSet {
84 contourLines* current;
85 contourParaTypeInteger n;
86 contourLinesSet* next;
89 typedef struct contourArgs {
90 contourParaTypeReal f00; /* For 2D Contour*/
91 contourParaTypeReal f01;
92 contourParaTypeReal f11;
93 contourParaTypeReal f10;
94 contourParaTypeReal f000; /* For 3D Contour */
95 contourParaTypeReal f001;
96 contourParaTypeReal f010;
97 contourParaTypeReal f011;
98 contourParaTypeReal f100;
99 contourParaTypeReal f101;
100 contourParaTypeReal f110;
101 contourParaTypeReal f111;
102 contourParaTypeReal x;
103 contourParaTypeReal y;
104 contourParaTypeReal z;
105 contourParaTypeReal dx;
106 contourParaTypeReal dy;
107 contourParaTypeReal dz;
110 typedef enum contourFlag {
118 /* prototype begin */
119 /* search contour lines in a boxel */
120 extern void createContourALine(contourLine* ls, contourArgs c);
122 /* create contour lines in order */
123 extern void createContourLine (contourLines* ls, contourLine* l);
125 /* craete contourLines at each section */
126 extern void createContourLines(contourLines* ls, contourImage image);
128 /* create contourLines at all sections */
129 extern void createContour(contourLinesSet* lsset, contourImage image, contourParaTypeReal level, contourFlag flag);
131 extern void appendContourLine0(contourLine* l, contourParaTypeReal xc1, contourParaTypeReal yc1, contourParaTypeReal xc2, contourParaTypeReal yc2, contourParaTypeReal z);
132 extern void appendContourLine1(contourLine* l, contourLine* als);
134 extern void lmrc2contour(contourLinesSet* c, mrcImage* m, contourParaTypeReal l, contourFlag f, long mode);
137 #endif /* CONTOUR_H */