#pragma once class CScatteredTrace; struct SCATTEREDDATAINDEX; //插值器 class CInterpolator { public: CInterpolator(); ~CInterpolator(); //Attributes private: CScatteredTrace* m_pScatteredData; int m_iCalculateMethod; // 差值类型 //0--枚举插值 //1--距离平方反比加权平均 //2--距离反比加权平均 //3--二次曲面 int m_iInterpolatePointCount; /*用于插值的若干个点(考虑了距离及其它因素)*/ SCATTEREDDATAINDEX* m_pInterpolateDataIndex; //Operations public: void SetScatteredData(CScatteredTrace* pScatteredData); void SetCalculateMethod(int iMethod); int GetInterpolatePoint(); void SetInterpolatePoint(int iValue); SCATTEREDDATAINDEX* GetInterpolateDataIndexArray(); double Interpolate(double x,double y,int iType,double* pDataArray=NULL); private: double Interpolate0(double x,double y,int iType,double* pDataArray); };