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.

206 lines
7.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><E6B9B9><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-4-1
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "SeisSampleInfo.h"
#include "SeisSurvey3D.h"
#include "DrawModel/ColorBase.h"
namespace NSeis
{
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><DFB1>ʽ
//
// 1------------------------------2
// <20><>/|\ ------------------------------
// <20><> | ...... ......
// <20><> | ------------------------------
// | 0------------------------------3
//
// --------><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////
//3D<33><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>λ<EFBFBD><CEBB>Ϣ<EFBFBD><CFA2>ÿһ<C3BF><D2BB>CLineDataΪһ<CEAA><D2BB>inline<6E><65><EFBFBD>߶κ<DFB6>Ϊcrossline
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3>ȣ<EFBFBD>
class AFX_EXT_CLASS CSeisIndexLine3D
{
public:
CSeisIndexLine3D( );
CSeisIndexLine3D( int i, EOrientation ori = oriInline );
~CSeisIndexLine3D(void);
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>λ
__int64 GetFilePosition(int col); //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ȷʱ<C8B7><CAB1><EFBFBD><EFBFBD>-1
int size() const { return segments.size(); } //<2F><><EFBFBD><EFBFBD><EFBFBD>߶εĸ<CEB5><C4B8><EFBFBD>
int GetTraceCount(); //<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>
int segmentOf(int) const; //<2F><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ŵ<EFBFBD><C5B5>߶<EFBFBD>
//void merge(const CLineData&, bool incl); //!< incl=union, !incl=intersection
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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool GetIndexSegment(OUT CSeisIndexLine3D& id, int startCol, int stopCol);
int nearestSegment(double) const;
void WriteLine(CStdioFile& 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); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ı<EFBFBD><C4B1>ļ<EFBFBD>
int Read(CFile& fr);
void Serialize(CArchive& ar, const short &ver);
public:
///////////////////////////////////////////////////////////////////////////////////////
class AFX_EXT_CLASS CSegment3D : public TIntervalStep<int>
{
public:
//<2F><><EFBFBD>ݵ<EFBFBD><DDB5>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>λ
bool GetIndexPoint(int col, OUT CSeisIndexPoint& gp);
bool GetIndexPointStart(OUT CSeisIndexPoint& gp);
bool GetIndexPointStop(OUT CSeisIndexPoint& gp);
__int64 GetFilePosition(int col); //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>λ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>
bool GetSegment(OUT CSegment3D& sd, int startCol, int stopCol);
void operator=(CSegment3D& sg);
bool isEqual(CSegment3D* psg);
public:
//crossline<6E><65>: start stop step
TIntervalStep<__int64> m_pos; //<2F><>Ӧcrossline<6E><65><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>λ<EFBFBD>ã<EFBFBD>
//<2F><>Ϊ<EFBFBD><CEAA>SegY<67>ļ<EFBFBD><C4BC><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><E6BBAE><EFBFBD><EFBFBD>,
//һ<><EFBFBD><E3B2BD>Ϊ<EFBFBD><CEAA>240+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B3A4>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPoint2D m_coorStart; //<2F><>Ӧcrossline<6E>ŵĿ<C5B5>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CPoint2D m_coorStop; //<2F><>Ӧcrossline<6E>ŵĽ<C5B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
EOrientation m_orientation; //Inline<6E><65>Crossline<6E><65><EFBFBD><EFBFBD>
int line_num; //Inline<6E><65><EFBFBD>ߺţ<DFBA>Crossline<6E><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TObjectSet<CSegment3D> segments; //<2F><><EFBFBD>ŵļ<C5B5><C4BC><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>
class AFX_EXT_CLASS CSeisIndex3D : public TObjectSet<CSeisIndexLine3D>
{
public:
CSeisIndex3D(void);
~CSeisIndex3D(void);
int FindInline( int lnr ) const; //<2F><><EFBFBD><EFBFBD>-1Ϊû<CEAA>и<EFBFBD><D0B8><EFBFBD>
CSeisIndexLine3D* GetInline(int inr);
bool GetCrossline(int crl, OUT CSeisIndexLine3D& sl);
bool isIncludes(int inl,int crl) const;
bool getInlRange(TIntervalStep<int>& rg) const; //!< Returns whether fully regular.
bool getCrlRange(TIntervalStep<int>& rg) const; //!< Returns whether fully regular.
bool getCubeRange(CCubeRange& cr);
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>ŷ<EFBFBD>Χ
bool getInlRange(int inline_num, OUT TIntervalStep<int>& rg) const;
bool getCrlRange(int crossline_num, OUT TIntervalStep<int>& rg) const;
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>,isCoorΪtrueʱ<65><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EAB7B6><CEA7>Ϊfalse<73><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>ŷ<EFBFBD>Χ
bool getInlRange(int inline_num, CPoint3D& minPoint, CPoint3D& maxPoint, bool isCoor);
bool getCrlRange(int crossline_num, CPoint3D& minPoint, CPoint3D& maxPoint, bool isCoor);
bool isFullyRectAndReg() const;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>λ,<2C><><EFBFBD><EFBFBD>gp<67>е<EFBFBD><D0B5>ߵ<EFBFBD><DFB5>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>ǰָ<C7B0><D6B8>
bool GetIndexPoint(CSeisIndexPoint& gp);
//<2F><><EFBFBD>ÿ<EFBFBD><C3BF>γɵ<CEB3><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>psegΪ4<CEAA><34><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
bool GetRectRange(CSeisIndexPoint* pseg);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>ŷ<EFBFBD>ΧΪ<CEA7><CEAA><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ľǵ㣬<C7B5>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>ŷ<EFBFBD>Χ
void GetFullyRectRange(CSeisIndexPoint* pseg);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ,<2C><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
int GetRange(CRect8& range);
//<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>߿򣬷<DFBF><F2A3ACB7>ػ<EFBFBD><D8BB>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int GetFrame(CCurve& curve);
int GetFrame(TTypeSet<CSeisIndexPoint>& tp);
void WriteInline(LPCTSTR lpszFileName); //<2F><>inline<6E><65><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>ΪDFD<46>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
void WriteCrossline(LPCTSTR lpszFileName); //<2F><>crossline<6E><65><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>ΪDFD<46>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
//void merge(const CCubePosition&,bool incl);
//void sort();
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 = (CSeisIndex3D& si);
CSeisSampleInfo& GetSampleInfo() { return m_sampleInfo; }
CSeisSurvey3D& GetSurvey() { return m_survey; }
CColorBase& GetColorBar() { return m_colorBar; }
/** @brief <09><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>SegY<67><59>ʽ<EFBFBD>еı<D0B5><C4B1><EFBFBD>һ<EFBFBD>£<EFBFBD>ʹ<EFBFBD><CAB9>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>0.001 */
void SetSampleInterval(unsigned short si);
bool InitSurvey(); //<2F><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
void InitRange(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ߵ<EFBFBD><DFB5>ŷ<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>
////////////////////////////////////////////////////////////////////////
//SegY<67>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CFileSegy* OpenSegyFile();
void CloseSegyFile();
bool IsOpen();
//<2F><>λ<EFBFBD><CEBB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>
bool SeekToTrace(int row, int col);
//<2F><>SegY<67><59>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʹ<EFBFBD><CAB9>ǰ<EFBFBD><C7B0>Ҫ<EFBFBD>ȶ<EFBFBD>λ<EFBFBD><CEBB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pTempMem<65><6D><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><E6A3AC><EFBFBD>ⲿָ<E2B2BF><D6B8><EFBFBD><EFBFBD>Ϊ<EFBFBD>˷<EFBFBD>ֹÿ<D6B9>ν<EFBFBD><CEBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>裬ȱʡʱ<CAA1>ڲ<EFBFBD><DAB2>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ȡ
float ReadOneValueFromSegy(double dTime, bool bLineValue, BYTE* pTempMem = NULL);
float ReadOneValueFromSegy(int nIndexSample);
///** @brief <09><>SegY<67><59>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡһ<C8A1><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
///** int inl:<3A>ߺ<EFBFBD>
///** int crl:<3A><><EFBFBD><EFBFBD>
///** int nIndexSample:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>0ֵ)
///** double dTime:ָ<><D6B8><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>ʱ<EFBFBD><CAB1>ֵ
///** bool bLineValue:<3A>Ƿ<EFBFBD><C7B7><EFBFBD>ֵ
float ReadOneValueFromSegy(int inl, int crl, int nIndexSample); //<2F><>ȡָ<C8A1><D6B8><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
float ReadOneValueFromSegy(int inl, int crl, double dTime, bool bLineValue);
////////////////////////////////////////////////////////////////////////
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>Ϣ
CSeisSurvey3D m_survey; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CColorBase m_colorBar; //<2F><>ɫ<EFBFBD><C9AB>
protected:
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD> -- wcw
void GetIrregularBorder(TTypeSet<CSeisIndexPoint>& tp);
//<2F>õ<EFBFBD><C3B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽߱<DFB1><DFBD><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD>ҹ<EFBFBD><D2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false -- wcw
bool GetDirectIndexPoints(TTypeSet<CSeisIndexPoint>& tp, int& direct);
public:
TIntervalStep<int> m_inlRange; //<2F><><EFBFBD>DZ<EFBFBD><C7B1><EFBFBD>getInlRange<67><65><EFBFBD>صĽ<D8B5><C4BD><EFBFBD>
TIntervalStep<int> m_crlRange; //<2F><><EFBFBD>DZ<EFBFBD><C7B1><EFBFBD>getCrlRange<67><65><EFBFBD>صĽ<D8B5><C4BD><EFBFBD>
protected:
CFileSegy m_frSegy; //SegY<67>ļ<EFBFBD><C4BC><EFBFBD>ȡ
};
}//namespace