You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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