////////////////////////////////////////////////////////////////////////////// //文件: SegY文件操作类 //主要功能: // //程序编写: 2011-4-1 // // ///////////////////////////////////////////////////////////////////////////// #pragma once #include "SeisIndex2D.h" #include "SeisFileHeader.h" #include "SeisBuilder3D.h" #include "SeisBox.h" namespace NSeis { //进行一个工区的管理:地震剖面管理、断层(面)管理、层位管理、 //井位(分层、坐标、测井曲线)管理、切片管理、速度场 class AFX_EXT_CLASS CSeisAreaManager { public: CSeisAreaManager(void); ~CSeisAreaManager(void); bool Load3D(LPCTSTR lpszSegyName, CSeisTraceHeader& th); void WriteSurvey3D(LPCTSTR lpszFileName); bool SaveAsMesh3D(LPCTSTR lpszFileName, CCubeRange& cr, double scaleZ = 1.0f); //将三维数据体保存为三维网格数据 bool Get3DRange(OUT CPoint3D& ptMin,OUT CPoint3D& ptMax); void Write(LPCTSTR lpszFileName); int Read(LPCTSTR lpszFileName); void Write(CFile& fw, const short& ver); int Read(CFile& fr, const short& ver); void Serialize(CArchive& ar, const short &ver); int SerializeRead(LPCTSTR lpszFileName); int SerializeWrite(LPCTSTR lpszFileName); bool Load2D(LPCTSTR lpszSegyName, CSeisTraceHeader& th); void WriteSurvey2D(LPCTSTR lpszFileName); void Clear(); bool IsEmpty(); public: EPolicy2D3D m_pol2D3D; //工区类型 //三维工区参数 CSeisBuilder3D m_builder3D; CSeisBox m_secList; //建立的剖面、切片管理 //二维测网参数 CSeisIndex2D m_index2D; CString m_strProjectName; //项目名称 CString m_strComment; //注释说明 }; }//namespace using namespace NSeis;