Difference between revisions of "Contour(API)"
From EosPedia
(Created page with "DataExpress/'''Contour''' is API for the calculation of contour. It is ued by psFile(API), etc.. == constant == #define MINFLOAT (1e-31) #define CONTOUR_ACCURACY (MINF...") |
|||
| Line 1: | Line 1: | ||
| − | DataExpress/'''Contour''' is API for the calculation of contour. It is | + | DataExpress/'''Contour''' is API for the calculation of contour. It is used by [[psFile(API)]], etc.. |
== constant == | == constant == | ||
Latest revision as of 00:19, 2 September 2014
DataExpress/Contour is API for the calculation of contour. It is used by psFile(API), etc..
Contents
constant
#define MINFLOAT (1e-31) #define CONTOUR_ACCURACY (MINFLOAT)
struct
typedef long contourParaTypeInteger; typedef double contourParaTypeReal;
typedef struct contourParaElement {
contourParaTypeInteger n;
contourParaTypeReal Min;
contourParaTypeReal Max;
contourParaTypeReal d;
} contourParaElement;
typedef struct contourImage {
contourParaTypeReal* image;
contourParaTypeReal* image2;
contourParaElement x;
contourParaElement y;
contourParaElement z;
contourParaElement w;
contourParaElement h;
contourParaTypeReal section;
} contourImage;
typedef struct contourPoint {
contourParaTypeReal x;
contourParaTypeReal y;
contourParaTypeReal z;
} contourPoint;
typedef struct contourALine contourALine;
struct contourALine {
contourALine* before;
contourPoint p0;
contourPoint p1;
contourPoint p2;
contourALine* next;
};
typedef struct contourLine contourLine;
struct contourLine {
contourALine* top;
contourALine* current;
contourParaTypeInteger n;
contourLine* next;
};
typedef struct contourLines contourLines;
struct contourLines {
contourLine* top;
contourLine* current;
contourParaTypeInteger n;
contourLines* next;
};
typedef struct contourLinesSet contourLinesSet;
struct contourLinesSet {
contourLines* top;
contourLines* current;
contourParaTypeInteger n;
contourLinesSet* next;
};
typedef struct contourArgs {
contourParaTypeReal f00; /* For 2D Contour*/
contourParaTypeReal f01;
contourParaTypeReal f11;
contourParaTypeReal f10;
contourParaTypeReal f000; /* For 3D Contour */
contourParaTypeReal f001;
contourParaTypeReal f010;
contourParaTypeReal f011;
contourParaTypeReal f100;
contourParaTypeReal f101;
contourParaTypeReal f110;
contourParaTypeReal f111;
contourParaTypeReal x;
contourParaTypeReal y;
contourParaTypeReal z;
contourParaTypeReal dx;
contourParaTypeReal dy;
contourParaTypeReal dz;
} contourArgs;
typedef enum contourFlag {
contourFlagXSection,
contourFlagYSection,
contourFlagZSection,
contourFlag3D
} contourFlag;
API
search contour lines in a boxel
extern void createContourALine(contourLine* ls, contourArgs c);
create contour lines in order
extern void createContourLine (contourLines* ls, contourLine* l);
craete contourLines at each section
extern void createContourLines(contourLines* ls, contourImage image);
create contourLines at all sections
extern void createContour(contourLinesSet* lsset, contourImage image, contourParaTypeReal level, contourFlag flag);
extern void appendContourLine0(contourLine* l, contourParaTypeReal xc1, contourParaTypeReal yc1, contourParaTypeReal xc2, contourParaTypeReal yc2, contourParaTypeReal z); extern void appendContourLine1(contourLine* l, contourLine* als);
extern void lmrc2contour(contourLinesSet* c, mrcImage* m, contourParaTypeReal l, contourFlag f, long mode);