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.

272 lines
8.2 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD>: SegY<67>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A1A2>Ƭ<EFBFBD>еĹ<D0B5><C4B9>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>кõ<D0BA><C3B5><EFBFBD><EFBFBD><EFBFBD><E6A1A2>Ƭ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-11-29
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "AttachBase.h"
#include "BuilderBase.h"
#include "RowColRange.h"
namespace NSeis
{
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>CBuilderBase<73><65><EFBFBD><EFBFBD>
class AFX_EXT_CLASS CSeisBox : public CAttachBase
{
public:
CSeisBox(void);
~CSeisBox(void);
//ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>
CBuilderBase* GetBuilder() { return (CBuilderBase*)GetInput(); }
CSeisSurvey3D& GetSurvey() { return GetBuilder()->GetSurvey(); }
void Clear();
void operator = (CSeisBox& id);
bool CreateCubeSection(int nMode); //nMode=1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, nMode=2Ϊ<32><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BCB0>Ƭ<EFBFBD><C6AC>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ϊָ<CEAA><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD>
bool CreateTexture(CColorBase& cb, int nBPP);
bool CreateTexture();
////////////////////////////////////////////////////////////////////////////
//Create<74><65><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD>intֵΪ<D6B5><CEAA><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>-1<><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
/////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ΪCMeshRand2D
//EOrientation<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateRandMeshRC(IN CCurve* pCurve, EOrientation curOri);
// <20><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateRandMeshXY(IN CCurve* pCurve, EOrientation curOri);
/////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ΪCMesh2D
// <20><><EFBFBD>õ<EFBFBD>ʱ<EFBFBD><CAB1>Ƭ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateSliceUp(float z_value, bool bLineValue = false);
// <20><><EFBFBD>ݽ<EFBFBD><DDBD>Ͳ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
// dn<64><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
// pInsuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
int CreateSliceRC(IN CDimension2D* pInSuf, bool bLineValue = true);
// <20><><EFBFBD>ݽ<EFBFBD><DDBD>Ͳ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// dn<64><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// pInsuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateSliceXY(IN CDimension2D* pInSuf, bool bLineValue = true);
/////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><E6B4A2><EFBFBD><EFBFBD>ΪCSeisLineData
// <20><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>ΪXYƽ<59><C6BD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateRandLineRC(IN CCurve* pCurve);
// <20><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3AC><EFBFBD><EFBFBD>ΪXYƽ<59><C6BD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateRandLineXY(IN CCurve* pCurve);
//////////////////////////////////////////////////////////////////////////////////////////
//<2F>ߵ<EFBFBD><DFB5>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD>areaSnapStep״̬<D7B4>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
//<2F><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateInline(float row_line_num, bool bReMemory = true);
//<2F><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateCrossline(float col_line_num, bool bReMemory = true);
// <20><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>ߵ<EFBFBD><DFB5>ź<EFBFBD>ʱ<EFBFBD><CAB1>
void CalculateItem(CCubeRange& ro,CCubeRange& rn);
void SetCubeRange(CCubeRange& range) { m_range = range; }
CCubeRange& GetCubeRange() { return m_range; }
bool WriteSegy(LPCTSTR lpszFileName); //<2F><><EFBFBD>ݵ<EFBFBD>ǰָ<C7B0><D6B8><EFBFBD>ķ<EFBFBD>Χд<CEA7><D0B4><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////////
//> start
//> <20><>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>Ϊ<EFBFBD>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
enum ESectionType
{
modeNone = 0,
modeInline = 1, ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
modeCrossLine, ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬 ָ<><D6B8>ΪCSeisLineData<74><61><EFBFBD><EFBFBD>
modeSlice, ///< <20><>ʱ<EFBFBD><CAB1>Ƭ
modeSurfaceSlice, ///< <20>ز<EFBFBD><D8B2><EFBFBD>Ƭ<EFBFBD><C6AC> ָ<><D6B8>ΪCMesh2D<32><44><EFBFBD><EFBFBD>
modeRandomLine, ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬 ָ<><D6B8>ΪCSeisLineData<74><61><EFBFBD><EFBFBD>
modeRandomSlice, ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC> ָ<><D6B8>ΪCMeshRand2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><E6B7BD>
};
//////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class AFX_EXT_CLASS CSectionItem : public CAttachBase
{
public:
CSectionItem(CSeisBox* pParentList)
{
SetParentList(pParentList);
m_type = modeNone;
m_pTexture = NULL;
m_nBPP = 32;
}
~CSectionItem(void);
virtual void Clear();
virtual bool CreateTexture() { return false; }
virtual CTexture* GetTexture() { return m_pTexture; }
virtual bool RecreateSection() { return m_pParentList->RecreateSection(this); }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD>߿ռ<DFBF><D5BC><EFBFBD><EFBFBD><EFBFBD>
virtual bool GetCurveCoordRC(CCurve& cv, bool bIsMaxRange) { return false; }
void SetParentList(CSeisBox* pParentList) { m_pParentList = pParentList; }
void operator = (CSectionItem& si);
ESectionType m_type;
CColorBase m_colbar;
int m_nBPP;
CTexture* m_pTexture;
CSeisBox* m_pParentList;
};
//<2F><>¡һ<C2A1><D2BB><EFBFBD><EFBFBD>Ԫ<EFBFBD>ض<EFBFBD><D8B6>󣬷<EFBFBD><F3A3ACB7><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3AC>Ҫ<EFBFBD><D2AA><EFBFBD>ⲿɾ<E2B2BF><C9BE>
int GetCount() { return m_sections.size(); }
CSectionItem* CloneItem(IN CSectionItem* pItem);
CSectionItem* GetAt(int nIndex) { return m_sections[nIndex]; }
CSectionItem* operator[] (int nIndex) { return m_sections[nIndex]; }
void RemoveAt(int nIndex);
void Remove(CSectionItem* pItem);
bool IsEmpty();
//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool RecreateSection(void);
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool RecreateSection(int nIndex);
//ʹ<><CAB9>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<E6A3AC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĺ<DEB8><C4BA><EFBFBD><EFBFBD><EFBFBD>
bool RecreateSection(CSectionItem* pItem);
virtual int AfterCreate(CSectionItem* pItem); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
bool GetItemMaxMin(CSectionItem* pItem, double& dmin, double& dmax);
//////////////////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class AFX_EXT_CLASS CSectionItemLine : public CSectionItem
{
public:
CSectionItemLine(CSeisBox* pParentList);
CSeisLineData* GetData(){ return (CSeisLineData*)GetInput(); }
EOrientation GetOrientation() { return GetData()->GetOrientation(); }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD>߿ռ<DFBF><D5BC><EFBFBD><EFBFBD><EFBFBD>
virtual bool GetCurveCoordRC(CCurve& cv, bool bIsMaxRange);
virtual void Clear();
virtual bool CreateTexture();
void operator = (CSectionItemLine& id);
float line_value; //<2F><><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD>
};
class AFX_EXT_CLASS CSectionItemRandLine : public CSectionItemLine
{
public:
CSectionItemRandLine(CSeisBox* pParentList);
virtual void Clear();
void operator = (CSectionItemRandLine& id);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD>߿ռ<DFBF><D5BC><EFBFBD><EFBFBD><EFBFBD>
virtual bool GetCurveCoordRC(CCurve& cv, bool bIsMaxRange);
CCurve* m_pCurve; //<2F><><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
class AFX_EXT_CLASS CSectionItemSlice : public CSectionItem
{
public:
CSectionItemSlice(CSeisBox* pParentList);
CMesh2D* GetData() { return (CMesh2D*)GetInput(); }
virtual bool CreateTexture();
virtual void Clear();
void operator = (CSectionItemSlice& id);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD>߿ռ<DFBF><D5BC><EFBFBD><EFBFBD><EFBFBD>
virtual bool GetCurveCoordRC(CCurve& cv, bool bIsMaxRange);
float zslice_value; //Ϊ<><CEAA>ʱ<EFBFBD><CAB1>Ƭʱ<C6AC><CAB1>ʱ<EFBFBD><CAB1>ֵ<EFBFBD><D6B5><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>Ƭ<EFBFBD><C6AC>ʹ<EFBFBD>øò<C3B8><C3B2><EFBFBD>
bool m_bLineValue;
};
class AFX_EXT_CLASS CSectionItemSurfaceSlice : public CSectionItemSlice
{
public:
CSectionItemSurfaceSlice(CSeisBox* pParentList);
virtual void Clear();
void operator = (CSectionItemSurfaceSlice& id);
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD>߿ռ<DFBF><D5BC><EFBFBD><EFBFBD><EFBFBD>
virtual bool GetCurveCoordRC(CCurve& cv, bool bIsMaxRange) { return false; }
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
CDimension2D* m_pSurface;
};
class AFX_EXT_CLASS CSectionItemRandSlice : public CSectionItem
{
public:
CSectionItemRandSlice(CSeisBox* pParentList);
virtual bool CreateTexture();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD>߿ռ<DFBF><D5BC><EFBFBD><EFBFBD><EFBFBD>
virtual bool GetCurveCoordRC(CCurve& cv, bool bIsMaxRange);
virtual void Clear(void);
CMeshRand2D* GetData() { return (CMeshRand2D*)GetInput(); }
void operator = (CSectionItemRandSlice& id);
CCurve* m_pCurve;
EOrientation m_ori;
};
//> stop
//////////////////////////////////////////////////////////////////////////////////////
protected:
TObjectSet<CSectionItem> m_sections; //<2F><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ
CCubeRange m_range; //<2F>Χ<E5B7B6><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Χ
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E5BCB0><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
class AFX_EXT_CLASS CSeisCubeSet
: public TObjectSet<CSeisBox>
, public CAttachBase
{
public:
CSeisCubeSet();
virtual ~CSeisCubeSet();
//<2F><><EFBFBD><EFBFBD>pInputָ<74><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>ڲ<EFBFBD><DAB2>Զ<EFBFBD>ɾ<EFBFBD><C9BE>
virtual bool AttachInput(void* pBuilderBase, bool bAutoDelete = false);
virtual void Clear();
CBuilderBase* GetBuilder() { return (CBuilderBase*)GetInput(); }
CSeisSurvey3D& GetSurvey() { return GetBuilder()->GetSurvey(); }
//nMode=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//nMode=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
//nMode=2<><32>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CreateCube(int nMode); //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ȫ<EFBFBD><C8AB>Χ<EFBFBD><CEA7>
int CreateCube(CCubeRange range, int nMode);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
}//namespace