////////////////////////////////////////////////////////////////////////////// //文件: DFDraw补充绘图元素接口类 //主要功能: // //程序编写: 2005-12-07 // // ///////////////////////////////////////////////////////////////////////////// #pragma once #include ".\sectionmath.h" #include "MxnFormat/SeisBuilder3D.h" //对于COtherDraw::Exchange(int message,char *Data);处在结果文件显示状态 //message=1,Data为double[2],进入为坐标,返回线号道号,其中一个数据除1e20为实际值 //message=2,画线或道,Data顺序对应为x,y,CDC *,SCreen * //message=3,删除区域内线,Data为CCurve * //message=4,改变结果文件名,Data为CString *,为新的结果文件 //message=5,获得结果文件名(CString *m_result) //message=6,(int stepx,int stepy,int width,int steprx,int stepry,int IsQuick) get //message=7,(int stepx,int stepy,int width,int steprx,int stepry,int IsQuick) write //message=8,(double m,double n) return x=m,n=y; // 补充绘图元素接口 #define OtherDraw_FMN 202 //绘制f(m,n)图形,其中x=x(m,n),y=y(m,n),z=z(m,n),为参数形式曲面方程 #define OtherDraw_OffsetX 204 //COffset class AFX_EXT_CLASS COtherDraw { public: COtherDraw(void); virtual ~COtherDraw(void); int m_type; void* pValue; CString name; CColorBase *pColor; virtual void Serialize(CArchive& ar); virtual int Read(CFile& fr, CString str); virtual int Write(CFile& fw); virtual int Draw(CDC* pDC, CScreenXY& sr,void DrawCurve(CCurve &curve)); virtual int IsInRange(double& xmin, double& xmax, double& ymin, double& ymax); virtual void GetRange(double& xmin, double& xmax, double& ymin, double& ymax); virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint); //将三维解释工区转换为新的三维地震剖面索引文件 bool FmnToSeisIndex3D(OUT CSeisBuilder3D& cubeBuilder); static int IsOtherType(CString str); static int IsOtherType(int type); void GetRange(double& zmin, double& zmax); void *Exchange(int message,char *Data); void Clear(void); void Offset(double dx, double dy); void operator=(const COtherDraw& od); void ScaleCoor(double xs, double ys, double dx, double dy); void ScaleProperty(double sx, double sy); }; class AFX_EXT_CLASS CGlobalFun { public: CGlobalFun() {} static int DeleteResult(CString m_result,CString m_xf,CString m_yf,CCurve *pCurve); static int GetMN(double &x,double &y,CString m_fx,CString m_fy); static void SetBeginLineCdp(int bline,int bcdp); static void GetBeginLineCdp(int &bline,int &bcdp); };