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.
105 lines
2.7 KiB
C++
105 lines
2.7 KiB
C++
#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<CScatteredPoint,CScatteredPoint> m_PointArray;
|
|
CArray<double,double> m_DataArray;
|
|
CArray<int,int> m_FaciesArray;//保存各离散点的相类型
|
|
|
|
CArray<BOOL,BOOL> m_StringValueArray;//是否字串类型
|
|
CTypedPtrArray<CPtrArray,CStringArray*> m_StringDataArrayArray;
|
|
CArray<double,double> m_MinValueArray;
|
|
CArray<double,double> m_MaxValueArray;
|
|
CPointSearcher m_PointSearcher;
|
|
CInterpolator m_Interpolator;
|
|
CFaciesTracer m_FaciesTracer;
|
|
|
|
CObArray* m_pWellArray;
|
|
CFaciesTypeMgr* m_pFaciesTypeManager;
|
|
//CYAMapFile* m_pMapFile;
|
|
CGDFMap* m_pMap;
|
|
CArray<FACIESPOINT,FACIESPOINT> BorderPointArray;
|
|
};
|