|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: <20><>ά<EFBFBD><CEAC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-5-3
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "BuilderBase.h"
|
|
|
|
|
|
#include "SeisLineData.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NCube
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>F(X,Y)<29>ļ<EFBFBD><C4BC><EFBFBD>һ<EFBFBD>㱣<EFBFBD><E3B1A3><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ʽ
|
|
|
|
|
|
//<2F>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1<><31><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ӽ<EFBFBD><D3BD>м<EFBFBD><D0BC><EFBFBD><EFBFBD>ᳬ<EFBFBD><E1B3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
class AFX_EXT_CLASS CBuilderMesh3D
|
|
|
|
|
|
: public CBuilderBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CBuilderMesh3D(void);
|
|
|
|
|
|
~CBuilderMesh3D(void);
|
|
|
|
|
|
|
|
|
|
|
|
//ֱ<>Ӷ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool Read(CString strFxyPathName); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
virtual bool AttachInput(void* pMesh, bool bAutoDelete = false); //<2F><><EFBFBD><EFBFBD>ΪCDimension3D<33><44><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void Clear(void);
|
|
|
|
|
|
virtual float GetSampleInterval(); //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>дSegY<67><59><EFBFBD><EFBFBD>ʱʹ<CAB1><CAB9>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD>е<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
virtual double Value(double x, double y, double z) { return GetCube()->Value(x, y, z); }
|
|
|
|
|
|
virtual double Value(int row, int col, int k) { return GetCube()->Value(row, col, k); }
|
|
|
|
|
|
|
|
|
|
|
|
virtual CColorBase& GetColorBar() { return m_colorBar; }
|
|
|
|
|
|
virtual CSeisSampleInfo& GetSampleInfo() { return m_sampleInfo; }//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ
|
|
|
|
|
|
bool CreateRandMesh_XY(CMeshRand2D& md, CCurve* pCurveXY, EOrientation curOri);
|
|
|
|
|
|
bool CreateRandMesh_XY(CMeshRand2D& md, CCurve* pCurve, float fiexdStep, EOrientation curOri);//ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F>ߵ<EFBFBD><DFB5>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD>areaSnapStep״̬<D7B4>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
|
|
|
|
|
|
bool CreateLineXY(CMesh2D& md, float line, EOrientation ori, bool bReMemory=true);
|
|
|
|
|
|
// <20><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool CreateInlineXY(CMesh2D& md, float row_line_num, bool bReMemory=true);
|
|
|
|
|
|
// <20><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool CreateCrosslineXY(CMesh2D& md, float col_line_num, bool bReMemory=true);
|
|
|
|
|
|
// <20><>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ƭ
|
|
|
|
|
|
bool CreateSliceUpXY(CMesh2D& md, float slice_up_num, bool bReMemory=true);
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
CDimension3D* GetCube() { return (CDimension3D*)GetInput(); }
|
|
|
|
|
|
virtual CSeisSurvey3D& GetSurvey() { return m_survey; }
|
|
|
|
|
|
|
|
|
|
|
|
CSeisSurvey3D m_survey; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
CColorBase m_colorBar;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void InitSampleInfo(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD><DAB0><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
|
|
|
|
|
|
|
|
|
|
|
|
CSeisSampleInfo m_sampleInfo; //<2F><><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD><CAB9><EFBFBD>̶߳<DFB3><CCB6><EFBFBD>
|
|
|
|
|
|
CString m_strMeshFile; //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD><CAB9><EFBFBD>̶߳<DFB3>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
void MeshXY2MeshRC(double* bakXY6); //<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬Ϊ<E5A3AC><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ
|
|
|
|
|
|
void MeshRC2MeshXY(double* bakXY6); //<2F><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual bool CreateData(); //<2F><>ʹ<EFBFBD><CAB9><EFBFBD>̷߳<DFB3>ʽ
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
//<2F><>ʹ<EFBFBD><CAB9><EFBFBD>̷߳<DFB3>ʽ
|
|
|
|
|
|
bool _ReadFile(LPCTSTR lpszMeshFile); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dCurLine<6E><65>line<6E><65><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|
|
|
|
|
bool _CreateLine(CSeisLineData& sd, float line, EOrientation ori, bool bReMemory);
|
|
|
|
|
|
//bool _CreateSeisDataAny(CSeisLineData& sd, float& dCurLine, EOrientation ori);
|
|
|
|
|
|
bool _CreateSeisDataSnap(CSeisLineData& sd, float& dCurLine, EOrientation ori);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><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>
|
|
|
|
|
|
bool _CreateRandLineRC(OUT CSeisLineData& sd, CCurve* pCurve);
|
|
|
|
|
|
//<2F><><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>
|
|
|
|
|
|
bool _CreateRandLineXY(OUT CSeisLineData& sd, CCurve* pCurve);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool _CreateCube(CDimension3D& cb, CCubeRange& cr, bool bReMemory=true);
|
|
|
|
|
|
bool _CreateRandMeshRC(CMeshRand2D& md, CCurve* pCurve, EOrientation curOri);//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool _CreateRandMeshXY(CMeshRand2D& md, CCurve* pCurve, EOrientation curOri);//<2F><><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ
|
|
|
|
|
|
bool _CreateSliceRC(CMesh2D& md, CDimension2D* pInSuf, bool bLineValue);
|
|
|
|
|
|
bool _CreateSliceRC(CMesh2D& md, float& z_value, bool bLineValue);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool _CreateSliceXY(CMesh2D& md, CDimension2D* pInSuf, bool bLineValue);
|
|
|
|
|
|
bool _CreateRandMesh_XY(CMeshRand2D& md, CCurve* pCurveXY, EOrientation curOri);
|
|
|
|
|
|
bool _CreateRandMesh_XY(CMeshRand2D& md, CCurve* pCurve, float fiexdStep, EOrientation curOri);//ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool _CreateMeshData(CMesh2D& md, float& dCurLine, EOrientation ori); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ
|
|
|
|
|
|
bool _CreateMeshDataAny(CMesh2D& md, float& dCurLine, EOrientation ori); //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ
|
|
|
|
|
|
bool _CreateMeshDataSnap(CMesh2D& md, float& dCurLine, EOrientation ori); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㣨<DAB5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|