|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// <09><><EFBFBD>ڱ<EFBFBD><DAB1>涨<EFBFBD><E6B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2011-5-5
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "DrawModel\curve.h"
|
|
|
|
|
|
#include "Mesh2D.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NCube
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汣<EFBFBD><E6B1A3>
|
|
|
|
|
|
class AFX_EXT_CLASS CMeshRand2D : public CMeshCoor3D
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CMeshRand2D(void);
|
|
|
|
|
|
~CMeshRand2D(void);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Empty(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//pCurve<76><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//aveStep<65><70>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸò<DDB8><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>߶μ<DFB6><CEBC>ж<EFBFBD><D0B6>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD>ݣ<EFBFBD>
|
|
|
|
|
|
// Ϊ<>˱<EFBFBD>֤ÿ<D6A4><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㴦<DAB5><E3B4A6>Ӧһ<D3A6><D2BB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ÿ<EFBFBD>߶μ<DFB6><CEBC>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><C2B8><EFBFBD>
|
|
|
|
|
|
//startRange<67><65>endRange<67><65><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB>Ϊ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|
|
|
|
|
bool Initial(CCurve& curve, double aveStep, double rangeStart, double rangeEnd, double rangeStep, EOrientation curOri);
|
|
|
|
|
|
bool Initial(CCurve& curve, double aveStep, TIntervalStep<double> range, EOrientation curOri);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>չ̶<D5B9><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㽫<DAB5><E3BDAB><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
|
|
|
|
|
|
bool InitialFixedStep(CCurve& curve, double fixedStep, TIntervalStep<double> range, EOrientation curOri);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD>xyƽ<79><C6BD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ֵƽ<D6B5><C6BD><EFBFBD><EFBFBD><EFBFBD>꣨<EFBFBD><EAA3A8><EFBFBD>չ̶<D5B9><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
|
|
|
|
|
|
bool AttachSection(CCurve& survey_xy, CGrid* pGridSection, EMeshType mtype);
|
|
|
|
|
|
|
|
|
|
|
|
CMeshRand2D& operator =(CMeshRand2D& mr);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>
|
|
|
|
|
|
bool GetCurveCoord(CCurve& cv, bool bIsMaxRange); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĿռ<C4BF><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetIndexTrace(int nCurveNodeIndex); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽ڵ<DFBD><DAB5><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double GetIndexTraceStep(int nCurveNodeIndex); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽ڵ<DFBD>(<28>ýڵ<C3BD><DAB5><EFBFBD>ǰһ<C7B0>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>߶<EFBFBD>)<29><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double GetPercent(int nCurveNodeIndex) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽ڵ<DFBD><DAB5><EFBFBD>ռ<EFBFBD>İٷֱ<D9B7><D6B1><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_pCoor->l[nCurveNodeIndex]/m_pCoor->l[m_pCoor->num-1];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool GetTraceCoord(int nTraceIndex, dfPoint& pt, bool bIsMaxRange); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dfPoint GetCoordinate(int i, int j);
|
|
|
|
|
|
bool GetCoordinate(int i, int j, dfPoint& pt); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ʵ<EFBFBD>ʿռ<CABF><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetOriCoord(int j, CPoint3D& pt); //<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
int Write(LPCTSTR lpszFileName);
|
|
|
|
|
|
void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
int Read(CFile& fr, const short& ver);
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
bool WriteSegy(LPCTSTR lpszFileName);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int FindCurveNodeIndex(int nTraceIndex); //<2F><><EFBFBD>ö<EFBFBD><C3B6>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ٶ<EFBFBD>λ
|
|
|
|
|
|
|
|
|
|
|
|
//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
|
class CPointIndex
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CPointIndex() { m_nTraceIndex = 0; m_dStep = 0; }
|
|
|
|
|
|
bool operator==( const CPointIndex& cs ) const { return m_nTraceIndex == cs.m_nTraceIndex; }
|
|
|
|
|
|
|
|
|
|
|
|
int m_nTraceIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_dStep; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>õ<EFBFBD><C3B5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϊԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
CCurve* m_pCoor;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>ͬ<EFBFBD><CDAC><EFBFBD>뷶Χm_range<67><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Zֵ<5A><D6B5><EFBFBD><EFBFBD>ʱ=oriZslice<63><65> <20><>XY<58>γɵ<CEB3>ƽ<EFBFBD><C6BD><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>XΪX<CEAA><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YΪY
|
|
|
|
|
|
// Xֵ<58><D6B5><EFBFBD><EFBFBD>ʱ=oriInline<6E><65> <20><>YZ<59>γɵ<CEB3>ƽ<EFBFBD><C6BD><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>XΪY<CEAA><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YΪZ
|
|
|
|
|
|
// Yֵ<59><D6B5><EFBFBD><EFBFBD>ʱ=oriCrossline<6E><65><EFBFBD><EFBFBD>XZ<58>γɵ<CEB3>ƽ<EFBFBD><C6BD><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>XΪX<CEAA><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YΪZ
|
|
|
|
|
|
|
|
|
|
|
|
TIntervalStep<double> m_range; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Zֵ<5A><D6B5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ΧΪZֵ<5A><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
|
// Xֵ<58><D6B5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ΧΪXֵ<58><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
|
// Yֵ<59><D6B5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ΧΪYֵ<59><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
|
|
|
|
|
|
|
TTypeSet<CPointIndex> m_indexSet; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using namespace NCube;
|