////////////////////////////////////////////////////////////////////////////// //文件: DFDraw补充绘图元素接口类 //主要功能: // //程序编写: 2005-12-07 // // ///////////////////////////////////////////////////////////////////////////// #pragma once #include ".\sectionany.h" #include "DrawLocal\FileSegy.h" class AFX_EXT_CLASS CFMN { public: CFMN(void); virtual ~CFMN(void); virtual void Write(CFile& fw); virtual int Read(CFile& fr); virtual void Clear(void); virtual int Create(CString m_fx, CString m_fy); virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint); int Open(void); int Close(void); CDimension3D* pX; CDimension3D* pY; CDimension3D* pResult; double xmin,xmax,ymin,ymax; CString m_result,m_fx,m_fy; CFileSegy *m_pfr; CString m_3dini; int CreateResult(void); double XX(double m, double n); double YY(double m, double n); double ZZ(double m, double n); int GetMN(double& x, double& y); //获得切片 CDimension2D* pCut; double cut_point; int GetCut(int m1,int n1,int m2,int n2, BOOL bCoorXY=FALSE); //根据cut_point指定的时间值获得切片 int GetCut(double cutPoint, int m1,int n1,int m2,int n2, BOOL bCoorXY=FALSE);//根据cutPoint指定的时间值获得切片 int GetCut(LPCTSTR lpLayerFileName, double top, double bottom, int mode); //根据指定层的解释结果显示切片 int GetCut(LPCTSTR lpLayerFileName1, LPCTSTR lpLayerFileName2, int mode); //根据两层的解释结果显示切片 int GetCut(double beginRange, double endRange, int mode); //根据指定范围显示切片 void SaveCut(CFile& fw, int mode); //保存切片 void GetPly(CFile& fw, LPCTSTR lpLayerFileName1, LPCTSTR lpLayerFileName2); //获得指定层的解释厚度(厚度=层位2-层位1) int GetSwing(int num, double* data, double m, double n); //获得指定线道号处的振幅值 class MN_RANGE { public: MN_RANGE(void){m1=n1=m2=n2=0;t1=t2=0;} int m1,n1,m2,n2; double t1; //top double t2; //bottom }; int GetCut(CSectionCut& cut, double cutPoint, MN_RANGE mr, BOOL bCoorXY=FALSE);//cutPoint为时间值 int GetCut(CSectionCut& cut, LPCTSTR lpLayerFileName, MN_RANGE mr, int mode, BOOL bCoorXY=FALSE); //根据指定层的解释结果显示切片 int GetSectionInline(CSectionAny& sec, int n, MN_RANGE mr); //获得指定主测线的剖面 int GetSectionCrossline(CSectionAny& sec, int m, MN_RANGE mr); //获得指定联络测线的剖面 int GetSectionAny(CSectionAny& sec, CCurve* pCurve, MN_RANGE mr); //根据坐标获得任意剖面数据 int Delete(CCurve* pCurve); //删除解释结果 void GetPlane(CPlane& m_plane,int *m,int *n); void GetRange(); BOOL IsOpen(void); };