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.

72 lines
1.8 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//文件: SegY文件操作类
//主要功能:
//
//程序编写: 2005-12-07
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
//仅是为了保存任意剖面数据,每道仅保存一个坐标
//这样为了保存不规则体,是CDimension3D的扩展保存方式
class AFX_EXT_CLASS CSectionAny
{
public:
CSectionAny(void);
virtual ~CSectionAny(void);
virtual int Create(int numx, int numy);
virtual void Empty(void);
virtual double XX(int nIndex);
virtual double YY(int nIndex);
virtual double AA(int i, int j);
virtual double ZZ(int i, int j);
virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint);
BOOL IsInRangeA(double aa);
virtual void SetValueX(int nIndex, double x0);
virtual void SetValueY(int nIndex, double y0);
virtual void SetValue(int i, int j, double a0);
double* GetValueP(int nIndex);
virtual void GetRange(void);
double t0;
double dt; //每道的采样间隔
double rangeA[2]; //振幅范围
double rangeZ[2]; //Z值范围
int num[2];
double *x;
double *y;
double *a; //一道数据连接一道的保存
};
class AFX_EXT_CLASS CSectionCut : public CSectionAny
{
public:
CSectionCut(void);
virtual ~CSectionCut(void);
virtual int Create(int numx, int numy, double x0, double y0, double dx, double dy);
virtual int Create(int numx, int numy);
virtual void Empty(void);
virtual double XX(int nIndex);
virtual double YY(int nIndex);
virtual double AA(int i, int j);
virtual double ZZ(int i, int j);
virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint);
virtual void GetRange(void);
virtual void SetValue (int i, int j, double a0); //设置振幅数据
virtual void SetValueZ(int i, int j, double z0); //设置振幅数据
double xmin(void);
double ymin(void);
double xmax(void);
double ymax(void);
double delt[2];
double *z;
};