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.
69 lines
1.8 KiB
C++
69 lines
1.8 KiB
C++
#pragma once
|
|
#include "scatteredtracer.h"
|
|
|
|
class CFaciesTracer : public CFaciesRgnTracer
|
|
{
|
|
public:
|
|
CFaciesTracer();
|
|
~CFaciesTracer();
|
|
//Attributes
|
|
public:
|
|
struct APPENDCONTROLPOINTSPLIT
|
|
{
|
|
int iTriangleIndex0[3];
|
|
int iTriangleIndex1[3];
|
|
};
|
|
private:
|
|
|
|
CArray<APPENDCONTROLPOINTSPLIT,APPENDCONTROLPOINTSPLIT> m_AppendControlPointSplitArray;//保存虚拟井加入时对三角形的分割情况
|
|
|
|
CArray<CPoint2D,CPoint2D> m_OldPointArray;//原始点,三角形的中点
|
|
CArray<CPoint2D,CPoint2D> m_NewPointArray;//对应的移动后的点
|
|
|
|
//Operations
|
|
public:
|
|
void TraceStringData(int iPrecision);//用字串数据追踪区域边界
|
|
|
|
// 追踪线
|
|
void TraceStringDataLine();
|
|
|
|
void TraceStringDataSearchStart(int& iTriangleIndex,BYTE& byteBorderIndex);
|
|
|
|
virtual void Clear();
|
|
|
|
double GetTriangleStringValueByPointStringValue(double dData0,double dData1,double dData2);
|
|
|
|
void InterpolateValue();
|
|
|
|
void EnhanceSmooth();
|
|
|
|
void EnhanceSmooth(CArray<int,int>& TriangleIndexArray,CArray<BYTE,BYTE>& BorderIndexArray,BOOL bClose);
|
|
|
|
void CalculateSmoothPoint(CPoint2D& p0,CPoint2D& p1,CPoint2D& p2,CPoint2D& p3,CPoint2D& p4,CPoint2D& pa,CPoint2D& pb,double dFactor0=1.0,double dFactor1=1.0);
|
|
|
|
double CalculateCutPosition(int iTriangleIndex,BYTE byteBorderIndex,BOOL bOutBorder,double& dLeftValue,double& dRightValue);
|
|
|
|
CPoint2D CalculateCutPoint(int iTriangleIndex,BYTE byteBorderInde);
|
|
|
|
void SavePointMoved();//保存编辑痕迹
|
|
|
|
BOOL AddSavedPointToTriangle();
|
|
|
|
CPoint2D GetSavedPointFromTriangle(int iTriangleIndex,BYTE byteBorderIndex);
|
|
|
|
double CalculateBorderPositionA(int iTriangleIndex,BYTE byteBorderIndex);
|
|
|
|
void SetFaciesTypeManager(CFaciesTypeMgr* pFaciesTypeManager);
|
|
|
|
CFaciesTypeMgr* GetFaciesTypeManager();
|
|
|
|
BOOL Prepare(int iPrecision);
|
|
|
|
|
|
private:
|
|
|
|
void AddAppendControlPointToTriangleGrid(int index);
|
|
|
|
void RemoveAppendControlPointFromTriangleGrid(int index);
|
|
};
|