#pragma once struct SCATTEREDDATAINDEX//用于插值时检索数据 { short int index; double distance;//离散点到被插值点的距离 }; #include "PointSearcher.h" #include "Interpolator.h" #include "TriangleCreator.h" #include "ScatteredTracer.h" #include "FaciesTracer.h" class CGDFMap; class CScatteredPoint { public: CScatteredPoint(); ~CScatteredPoint(); public: double x; /*不可能存在处于边界上的插入点*/ double y; /*0x00--处于边界外未使用的离散点 0x01--离散点 0x02--处于边界上 0x04--新增网格点 0x08--虚拟井 //jxd 0x10--需要处理的空值*/ BYTE byteType; /*在构造三角形时用于保存该点是否已经使用*/ BYTE byteFlag; //Operations public: BOOL IsOriginPoint(); BOOL IsBorderPoint(); BOOL IsValidPoint(); BOOL IsAppendedPoint(); }; /// 沉积相追踪主要的类 class CScatteredTrace { public: CScatteredTrace(void); ~CScatteredTrace(void); public: void SetWellArray(CObArray* pWellArray); void SetFaciesTypeManager(CFaciesTypeMgr* pFaciesTypeManager); CString GetStringData(int index,int iType); double ConvertStringDataToData(int iType,LPCTSTR strValue); CString ConvertDataToStringData(int iType,double dValue); int GetStringDataEnumIndex(int iType,LPCTSTR pString); void SetStringDataTypeArray(int iType,CStringArray& strarray); CGDFMap* GetMap(); void SetMap(CGDFMap* pMap); BOOL TraceFacies(); void Initialize(int iDataCount,int iTypeCount); void SetData(int index,int iType,double dValue); double GetData(int index,int iType); void SetPoint(int index,double x,double y); void SetStringData(int index,int iType,LPCTSTR str); BOOL AddBorderToTracer(CFaciesRgnTracer* pTracer,BOOL &bUseBoundary,BOOL bUseFault); CFaciesTracer* GetFaciesTracer(); CPointSearcher* GetPointSearcher(); CInterpolator* GetInterpolator(); BOOL IsStringData(int iType); int AddCellNodePoint(double x,double y); int AddBorderPoint(double x,double y); int AddOriginPoint(double x,double y); double* GetDataBuf(); int GetTypeCount(); int GetStringDataEnumCount(int iType); void Clear(); void ClearPointFlag(); int GetDataCount(); CScatteredPoint* GetPointBuf(); void GetStringDataTypeArray(int iType,CStringArray& strarray); CArray m_PointArray; CArray m_DataArray; CArray m_FaciesArray;//保存各离散点的相类型 CArray m_StringValueArray;//是否字串类型 CTypedPtrArray m_StringDataArrayArray; CArray m_MinValueArray; CArray m_MaxValueArray; CPointSearcher m_PointSearcher; CInterpolator m_Interpolator; CFaciesTracer m_FaciesTracer; CObArray* m_pWellArray; CFaciesTypeMgr* m_pFaciesTypeManager; //CYAMapFile* m_pMapFile; CGDFMap* m_pMap; CArray BorderPointArray; };