#pragma once #include "FPoints.h" #include "FNet.h" class AFX_EXT_CLASS CFNetGenerator { public: CFNetGenerator(void); ~CFNetGenerator(void); /** @brief 由数据线和逆断层读取散点数据,通过CDividedDfd由逆断层对散点区分盘号,存入m_points*/ int ReadPoints(CPtrList& scrline_list, CPtrList& scrflt_list); /** @brief 读取文件中散点数据到 m_points */ int ReadPoints(CString strxyz); /** @brief 读取内存中中散点数据到m_points,double指针为5个属性 x,y,z坐标,平滑度,盘号 */ int ReadPoints(vector& data5_vec); /** @brief 由CFunction2D网格和设定的SGridParamEx参数重新生成新的网格*/ int Create(CFunction2D& scrFun, SGridParamEx& gp, CPtrList& flt_list, CPtrList* pOutline_list = NULL); // 直接根据指定的参数生成网格 int Create(SGridParamEx& gp, CPtrList& outline_list, CPtrList& flt_list); // 根据已经指定的参数生成网格 int Create(CPtrList& outline_list, CPtrList& flt_list); // 根据当前网格数据及参数加密一次网格, 返回加密后的网格 CFNet* Double(CPtrList& outline_list, CPtrList* pFltList, int IsReadPoint); //继续加密网格 void Continue(CPtrList& outline_list, CPtrList* pFltList, int IsReadPoint); CFPoints& GetPoints() { return m_points; } void SetDC(CDC* pDC) { m_pDC = pDC; } CFNet* GetNet() { return m_pNet; } void SetNet(CFNet* pNet); SGridParamEx& GridParam() { return m_gridParam; } private: /** @brief 将两个网格合并,得到的新网格存入 m_pNet*/ int CombineNet(CFunction2D& fun1, CFunction2D& fun2, SGridParamEx& gp,CPtrList& outline_list, CPtrList& flt_list, FUN_INTER_MODE* pMd = NULL); /** @brief 读取网格中结点数据,记录到vector中*/ int ReadNetPoints(CFunction2D& fun, vector& dvec); public: // 必须初始化的参数 CFPoints m_points; ///< 散点数据 SGridParamEx m_gridParam; ///< 网格初始化参数 CDC* m_pDC; //需要单独指定 int m_loopmax; ///< 最大循环次数 int m_loopmin; ///< 最小循环次数 int IsCreateOther; protected: CFNet* m_pNet; ///< 结果网格 };