|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "TriAdapter.h"
|
|
|
|
|
|
#include "PolygonCreatorBoundary.h"
|
|
|
|
|
|
class CScatteredTrace;
|
|
|
|
|
|
class CScatteredPoint;
|
|
|
|
|
|
class CScatteredEdge;
|
|
|
|
|
|
class CScatteredTriangle;
|
|
|
|
|
|
class CPolygonCreatorLine;
|
|
|
|
|
|
struct SCATTEREDDATAINDEX;
|
|
|
|
|
|
class FACIESPOINT;
|
|
|
|
|
|
|
|
|
|
|
|
void CalculateBorderPosition(int iPointIndex0,int iPointIndex1,double& dPosition);
|
|
|
|
|
|
void CalculateBorderPosition(int iPointIndex0,int iPointIndex1,double& dPosition,double& dIndex0,double& dIndex1);
|
|
|
|
|
|
|
|
|
|
|
|
class CContourPolygon
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CContourPolygon(CScatteredTrace* pScatteredData);
|
|
|
|
|
|
~CContourPolygon();
|
|
|
|
|
|
//Attributes
|
|
|
|
|
|
private:
|
|
|
|
|
|
CScatteredTrace* m_pScatteredData;
|
|
|
|
|
|
CString m_strName;
|
|
|
|
|
|
CTypedPtrArray<CPtrArray,CPolygonCreatorLine*> m_PolygonCreatorLineArray;
|
|
|
|
|
|
//Operations
|
|
|
|
|
|
public:
|
|
|
|
|
|
void SetScatteredData(CScatteredTrace* pScatteredData);
|
|
|
|
|
|
CScatteredTrace* GetScatteredData();
|
|
|
|
|
|
|
|
|
|
|
|
void SetName(LPCTSTR strName);
|
|
|
|
|
|
CString GetName();
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Clear();
|
|
|
|
|
|
|
|
|
|
|
|
int GetPolygonCreatorLineCount();
|
|
|
|
|
|
CPolygonCreatorLine* GetPolygonCreatorLine(int index);
|
|
|
|
|
|
|
|
|
|
|
|
void AddPolygonCreatorLine(CPolygonCreatorLine* pPolygonCreatorLine);
|
|
|
|
|
|
void DeletePolygonCreatorLine(int index);
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CContourPolygonGroup//һ<><D2BB><EFBFBD>ߴ<EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CContourPolygonGroup(CScatteredTrace* pScatteredData);
|
|
|
|
|
|
~CContourPolygonGroup();
|
|
|
|
|
|
//Attributes
|
|
|
|
|
|
private:
|
|
|
|
|
|
CScatteredTrace* m_pScatteredData;
|
|
|
|
|
|
|
|
|
|
|
|
CString m_strName;
|
|
|
|
|
|
double m_dValue;
|
|
|
|
|
|
CTypedPtrArray<CPtrArray,CContourPolygon*> m_PolygonArray;
|
|
|
|
|
|
|
|
|
|
|
|
GDFLOGPEN m_LogPen;
|
|
|
|
|
|
GDFLOGBRUSH m_LogBrush;
|
|
|
|
|
|
//Operations
|
|
|
|
|
|
public:
|
|
|
|
|
|
void SetScatteredData(CScatteredTrace* pScatteredData);
|
|
|
|
|
|
CScatteredTrace* GetScatteredData();
|
|
|
|
|
|
|
|
|
|
|
|
void SetName(LPCTSTR strName);
|
|
|
|
|
|
CString GetName();
|
|
|
|
|
|
|
|
|
|
|
|
void SetValue(double dValue);
|
|
|
|
|
|
double GetValue();
|
|
|
|
|
|
|
|
|
|
|
|
void Clear();
|
|
|
|
|
|
|
|
|
|
|
|
int GetPolygonCount();
|
|
|
|
|
|
CContourPolygon* GetPolygon(int index);
|
|
|
|
|
|
|
|
|
|
|
|
void AddPolygon(CContourPolygon* pPolygon);
|
|
|
|
|
|
|
|
|
|
|
|
void GetLogPen(GDFLOGPEN* pLogPen);
|
|
|
|
|
|
void SetLogPen(GDFLOGPEN* pLogPen);
|
|
|
|
|
|
|
|
|
|
|
|
void GetLogBrush(GDFLOGBRUSH* pLogBrush);
|
|
|
|
|
|
void SetLogBrush(GDFLOGBRUSH* pLogBrush);
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CFaciesRgnTracer;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>зָ<D0B7><D6B8><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ԫ,
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
class CContourUnit
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CContourUnit();
|
|
|
|
|
|
~CContourUnit();
|
|
|
|
|
|
//Attributes
|
|
|
|
|
|
private:
|
|
|
|
|
|
CFaciesRgnTracer* m_pScatteredTracer;
|
|
|
|
|
|
|
|
|
|
|
|
int m_iNextCellIndex;
|
|
|
|
|
|
POLYGONCREATORSEGMENT m_SegmentArray[9]; // 0<><30>1<EFBFBD><31>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD><EFBFBD>
|
|
|
|
|
|
BYTE m_byteFlag;
|
|
|
|
|
|
|
|
|
|
|
|
double m_dValue;//ֵ<><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//Operations
|
|
|
|
|
|
public:
|
|
|
|
|
|
void SetScatteredTracer(CFaciesRgnTracer* pScatteredTracer);
|
|
|
|
|
|
CFaciesRgnTracer* GetScatteredTracer();
|
|
|
|
|
|
|
|
|
|
|
|
int GetNextCellIndex();
|
|
|
|
|
|
void SetNextCellIndex(int iCellIndex);
|
|
|
|
|
|
|
|
|
|
|
|
int SegmentHitTest(double dBorderPosition0,double dPosition0,double dBorderPosition1,double dPosition1);
|
|
|
|
|
|
int SegmentHitTest(double dBorderPosition,double dPosition0,double dPosition1);
|
|
|
|
|
|
|
|
|
|
|
|
POLYGONCREATORSEGMENT* GetSegmentArray();
|
|
|
|
|
|
void GetSegmentArray(POLYGONCREATORSEGMENT* pSegmentArray);
|
|
|
|
|
|
void SetSegmentArray(POLYGONCREATORSEGMENT* pSegmentArray);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL CutOff(double dBorderPosition,double dPosition0,double dBorderPosition1,double dPosition1,CGDFObjectLine* pObject,double dPointIndex0,double dPointIndex1);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL GetFlag();
|
|
|
|
|
|
void SetFlag();
|
|
|
|
|
|
void ClearFlag();
|
|
|
|
|
|
|
|
|
|
|
|
double GetValue();
|
|
|
|
|
|
void SetValue(double dValue);
|
|
|
|
|
|
|
|
|
|
|
|
void operator=(CContourUnit& cell);
|
|
|
|
|
|
|
|
|
|
|
|
CPolygonCreatorLine* GetPolygonCreatorLine();
|
|
|
|
|
|
private:
|
|
|
|
|
|
BOOL BuildBorderSegment(CScatteredEdge* pBorder,double dRelativeIndex0,double dRelativeIndex1,CPolygonCreatorSegment* pSegment);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct SCATTEREDSEGMENT
|
|
|
|
|
|
{
|
|
|
|
|
|
int iTriangleIndex;
|
|
|
|
|
|
BYTE byteBorderIndex;
|
|
|
|
|
|
|
|
|
|
|
|
BYTE byteHeadStep;
|
|
|
|
|
|
BYTE byteEndStep;
|
|
|
|
|
|
|
|
|
|
|
|
int iHeadPointIndex;
|
|
|
|
|
|
int iEndPointIndex;
|
|
|
|
|
|
|
|
|
|
|
|
double dHeadDistance;
|
|
|
|
|
|
double dEndDistance;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CONTOURSTEPVALUE
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CONTOURSTEPVALUE(){dValue=0.0;strValue[0]=0;LogPen.m_dWidth=0.0;byteEnhanceConnection=0;byteLabel=0;byteLineColorCal=1;byteFillColorCal=1;LogPen.m_dWidth=5.0f;};
|
|
|
|
|
|
double dValue;
|
|
|
|
|
|
TCHAR strValue[128];
|
|
|
|
|
|
GDFLOGPEN LogPen;
|
|
|
|
|
|
GDFLOGBRUSH LogBrush;
|
|
|
|
|
|
|
|
|
|
|
|
BYTE byteEnhanceConnection;
|
|
|
|
|
|
BYTE byteLineColorCal;
|
|
|
|
|
|
BYTE byteLabel;
|
|
|
|
|
|
BYTE byteFillColorCal;
|
|
|
|
|
|
|
|
|
|
|
|
void operator=(CONTOURSTEPVALUE& value);
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#include "FaciesTypeManager.h"
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A>Ա߽<D4B1><DFBD>Ĵ<EFBFBD><C4B4><EFBFBD>*/
|
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD>û<EFBFBD>б߽<D0B1>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>߽<EFBFBD>*/
|
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ߽<C3B1>,<2C><>Ҫͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD>ڱ߽缰<DFBD><E7BCB0><EFBFBD>߽<EFBFBD>,<2C>ڱ߽<DAB1><DFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>,ͬʱ<CDAC><CAB1><EFBFBD>߽<EFBFBD><DFBD>ϵĵ<CFB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD>ֵͬ<CDAC><D6B5><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ûֵ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
/*<2A>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ڱ߽<DAB1><DFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD>µĵ<C2B5>,<2C><>ͬʱ<CDAC><CAB1><EFBFBD>뵽<EFBFBD><EBB5BD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
/*/<2F><><EFBFBD>ٵ<EFBFBD>ֵ<EFBFBD><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰҪ<C7B0><D2AA><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD>еı߽<C4B1><DFBD><EFBFBD><EFBFBD><EFBFBD>ȱʧ<C8B1><CAA7>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
class CFaciesRgnTracer
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CFaciesRgnTracer(CScatteredTrace* pScatteredData=NULL);
|
|
|
|
|
|
~CFaciesRgnTracer();
|
|
|
|
|
|
//Attributes
|
|
|
|
|
|
protected:
|
|
|
|
|
|
struct BUILDDISTANCEBORDER
|
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int iTriangleIndex;
|
|
|
|
|
|
BYTE byteBorderIndex;
|
|
|
|
|
|
double dDistance;
|
|
|
|
|
|
int iPointIndex;
|
|
|
|
|
|
BOOL bCanExtend;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
CFaciesTypeMgr* m_pFaciesTypeManager;
|
|
|
|
|
|
|
|
|
|
|
|
BOOL m_bLabel;
|
|
|
|
|
|
GDFLOGFONT m_LabelFont;
|
|
|
|
|
|
double m_dLabelDistance;
|
|
|
|
|
|
|
|
|
|
|
|
CTypedPtrArray<CPtrArray,CArray<FACIESPOINT,FACIESPOINT>* > m_BorderArray;
|
|
|
|
|
|
CArray<int,int> m_BorderTypeArray;//0--<2D><><EFBFBD>߽<EFBFBD> 1--<2D>ڱ߽粻<DFBD>պϡ<D5BA>2--<2D>ڱ߽<DAB1><DFBD>պ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
CScatteredTrace* m_pScatteredData;
|
|
|
|
|
|
CTypedPtrArray<CPtrArray,CContourPolygonGroup*> m_PolygonGroupArray;
|
|
|
|
|
|
|
|
|
|
|
|
CArray<int,int> m_FirstCellIndexArray;//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֵ
|
|
|
|
|
|
CArray<CContourUnit,CContourUnit> m_CellArray;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ηָ<CEB7><D6B8><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ԫ
|
|
|
|
|
|
|
|
|
|
|
|
BYTE m_byteEnhanceConnection;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7B7>ʱ<EFBFBD><CAB1>ǿ<EFBFBD><C7BF>ͨ<EFBFBD><CDA8> 0--<2D><><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ͨ 1--<2D><><EFBFBD><EFBFBD>ͨ 2--<2D><><EFBFBD><EFBFBD>ͨ 3--ǿ<><C7BF>ͨ 255--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ
|
|
|
|
|
|
double m_dCurrentTraceValue;
|
|
|
|
|
|
|
|
|
|
|
|
int m_iStartTriangleIndex;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٱ߽<D9B1><DFBD><EFBFBD>
|
|
|
|
|
|
BYTE m_byteStartBorderIndex;//<2F><><EFBFBD><EFBFBD><EFBFBD>ٱ߽<D9B1><DFBD><EFBFBD>
|
|
|
|
|
|
int m_iSearchStartStep;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
double m_dStartValue;
|
|
|
|
|
|
double m_dStopValue;
|
|
|
|
|
|
double m_dStepInterval;
|
|
|
|
|
|
CArray<CONTOURSTEPVALUE,CONTOURSTEPVALUE> m_StepValueArray;
|
|
|
|
|
|
|
|
|
|
|
|
int m_iCurrentDataType;
|
|
|
|
|
|
|
|
|
|
|
|
CGDFLayer* m_pContourLineLayer;
|
|
|
|
|
|
CGDFLayer* m_pContourPolygonLayer;
|
|
|
|
|
|
|
|
|
|
|
|
CArray<CScatteredTriangle,CScatteredTriangle> m_TriangleArray;
|
|
|
|
|
|
|
|
|
|
|
|
BOOL m_bProcessBar;
|
|
|
|
|
|
|
|
|
|
|
|
//Operations
|
|
|
|
|
|
public:
|
|
|
|
|
|
void SetScatteredData(CScatteredTrace* pScatteredData);
|
|
|
|
|
|
CScatteredTrace* GetScatteredData();
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Clear();
|
|
|
|
|
|
|
|
|
|
|
|
void SetContourLineLayer(CGDFLayer* pLayer);
|
|
|
|
|
|
void SetContourPolygonLayer(CGDFLayer* pLayer);
|
|
|
|
|
|
|
|
|
|
|
|
CContourPolygonGroup* GetPolygonGroup(int index);
|
|
|
|
|
|
|
|
|
|
|
|
int GetCurrentDataType();
|
|
|
|
|
|
void SetCurrentDataType(int iType);
|
|
|
|
|
|
|
|
|
|
|
|
void AddOutBorder(FACIESPOINT* pPointArray,int count,BOOL bClose);
|
|
|
|
|
|
void AddInnerBorder(FACIESPOINT* pPointArray,int count,BOOL bClose);
|
|
|
|
|
|
|
|
|
|
|
|
int GetTriangleCount();
|
|
|
|
|
|
CScatteredTriangle* GetTriangleArray();
|
|
|
|
|
|
|
|
|
|
|
|
void GetStepValueArray(CArray<CONTOURSTEPVALUE,CONTOURSTEPVALUE>& ValueArray);
|
|
|
|
|
|
int SetStepValueArray(CArray<CONTOURSTEPVALUE,CONTOURSTEPVALUE>& ValueArray);
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>εĶ<CEB5><C4B6><EFBFBD>*/
|
|
|
|
|
|
void AddDataValueToTriangle();
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><><EFBFBD>µĹ<C2B5><C4B9><EFBFBD><EFBFBD>ӿڹ<D3BF><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
virtual void CreateTriangle(int iPrecision);//0--<2D>;<EFBFBD><CDBE><EFBFBD> 1--<2D>о<EFBFBD><D0BE><EFBFBD> 2--<2D>߾<EFBFBD><DFBE><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><>ǿ<EFBFBD><C7BF>ͨ<EFBFBD><CDA8>,<2C><><EFBFBD>ǽϳ<C7BD><CFB3><EFBFBD>ͨ<EFBFBD><CDA8>*/
|
|
|
|
|
|
void EnhanceConnection();
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><>ǿ<EFBFBD><C7BF>ͨ<EFBFBD><CDA8>,ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
void SimpleEnhanceConnection();
|
|
|
|
|
|
|
|
|
|
|
|
BOOL TryConnectTwoRegion(CArray<int,int>& PointIndexArray0,CArray<int,int>& PointIndexArray1);
|
|
|
|
|
|
BOOL TryConnectTwoRegion(int iPointIndex0,int iPointIndex1);
|
|
|
|
|
|
void EnhanceConnectionSplitTriangleA(int iTriangleIndex,BYTE byteBorderIndex);
|
|
|
|
|
|
void EnhanceConnectionSplitTriangleB(int iTriangleIndex,BYTE byteBorderIndexA,BYTE byteBorderIndexB);
|
|
|
|
|
|
void EnhanceConnectionSplitTriangleC(int iTriangleIndex,BYTE byteBorderIndex);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL GetProcessBar();
|
|
|
|
|
|
void SetProcessBar(BOOL bValue);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int GetCellCount(int iTriangleIndex);
|
|
|
|
|
|
CContourUnit* NewCell(int iTriangleIndex);
|
|
|
|
|
|
CContourUnit* GetCell(int iTriangleIndex,double dBorderPosition0,double dPosition0,double dBorderPosition1,double dPosition1);
|
|
|
|
|
|
CContourUnit* GetCell(int iTriangleIndex,double dBorderPosition,double dPosition0,double dPosition1);
|
|
|
|
|
|
|
|
|
|
|
|
void CheckLineCloseOrNot();
|
|
|
|
|
|
void BuildPolygon();
|
|
|
|
|
|
|
|
|
|
|
|
CContourPolygonGroup* GetPolygonGroupByValue(double dValue);
|
|
|
|
|
|
|
|
|
|
|
|
int CheckBorderPointArray(FACIESPOINT* pPointArray,int count,BOOL bClose,FACIESPOINT* pNewPointArray);
|
|
|
|
|
|
|
|
|
|
|
|
void ClearContour();
|
|
|
|
|
|
|
|
|
|
|
|
void AddCellNodeToPointArray();//<2F><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
int PointInRegion(double x,double y);//<2F><><EFBFBD>Ƿ<EFBFBD><C7B7>ڱ߽<DAB1><DFBD><EFBFBD>
|
|
|
|
|
|
BOOL PointCrossBorder(double x0,double y0,double x1,double y1);
|
|
|
|
|
|
|
|
|
|
|
|
void TraceNoneValueBoundary();
|
|
|
|
|
|
|
|
|
|
|
|
void ClearTriangleBorderFlag();
|
|
|
|
|
|
|
|
|
|
|
|
void CreateFill();
|
|
|
|
|
|
|
|
|
|
|
|
void BuildTriangleNeighbor();
|
|
|
|
|
|
void CheckTriangleNeighbor();
|
|
|
|
|
|
|
|
|
|
|
|
void CheckPointInRegion();
|
|
|
|
|
|
|
|
|
|
|
|
void CreateTriangleOfPolygon(CArray<CScatteredEdge,CScatteredEdge>& BorderArray);
|
|
|
|
|
|
|
|
|
|
|
|
double CalculateCellWidth();
|
|
|
|
|
|
|
|
|
|
|
|
void CalculateArea();
|
|
|
|
|
|
|
|
|
|
|
|
void CreateColorMark();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void BuildDistanceIndex(double x,double y,SCATTEREDDATAINDEX* pIndexArray,int iInterpolatePointCount);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α߽<CEB1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void BuildDistanceIndex(int iTriangleIndex,BYTE byteNodeIndex,SCATTEREDDATAINDEX* pIndexArray,int iInterpolatePointCount);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetTriangleValue(int iTriangleIndex,BYTE byteNodeIndex,double dValue);
|
|
|
|
|
|
|
|
|
|
|
|
void CreateBorderLine();
|
|
|
|
|
|
};
|