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.

64 lines
1.5 KiB
C++

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