|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
//文件: 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);
|
|
|
};
|