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