|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: SegY<67>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-4-1
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "SeisSampleInfo.h"
|
|
|
|
|
|
#include "SeisSurvey2D.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NSeis
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//2D<32><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>λ<EFBFBD><CEBB>Ϣ<EFBFBD><CFA2>ÿһ<C3BF><D2BB>CLineDataΪһ<CEAA><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CSeisIndexLine2D
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CSeisIndexLine2D();
|
|
|
|
|
|
~CSeisIndexLine2D();
|
|
|
|
|
|
|
|
|
|
|
|
bool NextTrace(int& col); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ĵ<EFBFBD><C4B5>ţ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool PrevTrace(int& col); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ĵ<EFBFBD><C4B5>ţ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
bool GetIndexPoint(int col, OUT CSeisIndexPoint& gp); //<2F><><EFBFBD>ݵ<EFBFBD><DDB5>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꼰<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>λ
|
|
|
|
|
|
|
|
|
|
|
|
CPoint2D GetCoordinate(int col); //<2F><><EFBFBD>ݵ<EFBFBD><DDB5>Ų<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>꣬<EFBFBD>õ<EFBFBD><C3B5>ſ<EFBFBD><C5BF>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>ŷ<EFBFBD>Χ<EFBFBD><CEA7>
|
|
|
|
|
|
int GetCoorCount(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetCoordinate(CPointList& dp); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>LΪ<4C><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetSurveyCurve(CSurveyLine* pCurve); //<2F><><EFBFBD>ò<EFBFBD><C3B2>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꡢ<EAA1A2>š<EFBFBD><C5A1><EFBFBD><EFBFBD>Ƶ<EFBFBD>ֵ
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7AE>L<EFBFBD><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>֮ƥ<D6AE><C6A5>
|
|
|
|
|
|
int MatchingCoordinate(CCurve* pInCurve);
|
|
|
|
|
|
|
|
|
|
|
|
int size() const { return segments.size(); } //<2F><><EFBFBD><EFBFBD><EFBFBD>߶εĸ<CEB5><C4B8><EFBFBD>
|
|
|
|
|
|
int GetTraceCount() const; //<2F><><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>
|
|
|
|
|
|
bool GetRange(TInterval<int>& range) const; //<2F><><EFBFBD>õ<EFBFBD><C3B5>ŷ<EFBFBD>Χ
|
|
|
|
|
|
int GetRange(CRect8& range); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>귶Χ,<2C><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
CSeisSampleInfo& GetSampleInfo(){ return m_sampleInfo; }
|
|
|
|
|
|
|
|
|
|
|
|
void WriteDFD(CFile& fw); //<2F><>inline<6E><65><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>ΪDFD<46>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
|
|
|
|
|
|
void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
int Read(CFile& fr, const short& ver);
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>Զ<EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬Ϊ<E0A3AC>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
|
void CoorRedundant(double dError = 1e-3);
|
|
|
|
|
|
|
|
|
|
|
|
void operator=(CSeisIndexLine2D& sl);
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
class AFX_EXT_CLASS CSegment2D : public TIntervalStep<int>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>zֵ<7A>Ƕ<EFBFBD>Ӧ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
|
|
|
|
|
|
TTypeSet<CPoint3D> coors; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꼯<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Zֵ<5A><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ĵ<EFBFBD><C4B5>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>=2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
TIntervalStep<__int64> m_pos; //<2F><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>λ<EFBFBD>ã<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ݵ<EFBFBD><DDB5>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꼰<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>λ
|
|
|
|
|
|
bool GetIndexPoint(int col, OUT CSeisIndexPoint& gp); //<2F><><EFBFBD>ݵ<EFBFBD><DDB5>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetPointWithIndex(int nIndex, OUT CSeisIndexPoint& gp); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetRange(CRect8& range); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>귶Χ
|
|
|
|
|
|
int GetCoorCount(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetCoordinate(CPointList& dp); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>lΪ<6C><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
inline void operator=(CSegment2D& sg)
|
|
|
|
|
|
{
|
|
|
|
|
|
*(TIntervalStep<int>*)this = *(TIntervalStep<int>*)&sg;
|
|
|
|
|
|
m_pos = sg.m_pos;
|
|
|
|
|
|
coors = sg.coors;
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
CString m_strFileName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>Ӧ<EFBFBD><D3A6>SegY<67>ļ<EFBFBD>
|
|
|
|
|
|
CSeisSampleInfo m_sampleInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
CString line_name; //<2F>ߺ<EFBFBD>
|
|
|
|
|
|
TObjectSet<CSegment2D> segments; //<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>CSegment2D<32><44><EFBFBD><EFBFBD>Ϊ<EFBFBD>˷<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>ż<EFBFBD><C5BC><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>άSegY<67>ļ<EFBFBD><C4BC>е<EFBFBD><D0B5>ߵ<EFBFBD><DFB5>š<EFBFBD><C5A1><EFBFBD><EFBFBD>꼰<EFBFBD><EABCB0><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>λ<EFBFBD>ã<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>CLineData<74><61><EFBFBD><EFBFBD>
|
|
|
|
|
|
class AFX_EXT_CLASS CSeisIndex2D : public TObjectSet<CSeisIndexLine2D>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CSeisIndex2D(void);
|
|
|
|
|
|
~CSeisIndex2D(void);
|
|
|
|
|
|
|
|
|
|
|
|
int GetRange(CRect8& range); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>귶Χ,<2C><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
int FindLine (LPCTSTR lpszLineName) const;
|
|
|
|
|
|
bool GetIndexPoint(LPCTSTR lpszLineName, int col, OUT CSeisIndexPoint& gp);
|
|
|
|
|
|
|
|
|
|
|
|
bool GetSurvey2D(CSeisSurvey2D& sd);
|
|
|
|
|
|
|
|
|
|
|
|
void WriteDFD(LPCTSTR lpszFileName); //<2F><><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>ΪDFD<46>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
|
|
|
|
|
|
|
|
|
|
|
|
void Write(LPCTSTR lpszFileName);
|
|
|
|
|
|
void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
int Read(CFile& fr, const short& ver);
|
|
|
|
|
|
void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
void operator = (CSeisIndex2D& si);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|