Difference between revisions of "Contour(API)"

From EosPedia
Jump to: navigation, search
(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 ued by [[psFile(API)]], etc..
+
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..

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);