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.
kev/Drawer/SSBase/FGrid-/FNetGenerator.h

58 lines
1.9 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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_pointsdouble指针为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; ///< 结果网格
};