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++
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;
|
|
|