|
|
#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<double* >& 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<double* >& dvec);
|
|
|
|
|
|
public:
|
|
|
// 必须初始化的参数
|
|
|
CFPoints m_points; ///< 散点数据
|
|
|
SGridParamEx m_gridParam; ///< 网格初始化参数
|
|
|
CDC* m_pDC;
|
|
|
|
|
|
//需要单独指定
|
|
|
int m_loopmax; ///< 最大循环次数
|
|
|
int m_loopmin; ///< 最小循环次数
|
|
|
int IsCreateOther;
|
|
|
|
|
|
protected:
|
|
|
CFNet* m_pNet; ///< 结果网格
|
|
|
};
|
|
|
|