#pragma once #include "FGrid\FNetGenerator.h" class CFUISheet; class AFX_EXT_CLASS CFGridUI { public: CFGridUI(); ~CFGridUI(); /** @brief 生成属性sheet,选择属性页模式*/ BOOL Play(BOOL page_Input=TRUE , BOOL page_Grid=TRUE , BOOL page_Precision =TRUE, BOOL page_Smooth =TRUE, BOOL page_Output=TRUE); /** @brief 设置数据输入路径 */ bool SetDataPath(CString strInput); /** @brief 设置断层路径 */ bool SetFltPath(CString strFlt); /** @brief 设置边界路径 */ bool SetOutline(CString strBorder); /** @brief 查看结果*/ void ViewResult(); /** @brief 返回网格矩形框*/ bool GetRangeXY(CRect8& rect); /** @brief 返回Z值极大极小值*/ bool GetRangeZ(double& zmin, double& zmax); CFPoints& GetPoints() { return m_net.m_points; } CFNet* GetFNet() { return m_net.GetNet(); } /** @brief 由网格参数生成网格,必须提前设置好各项参数*/ bool CreateGrid(); /** @breif 得到断层链表*/ CPtrList* GetFltList(); /** @brief 得到断层路径*/ CString GetFltPath(); /** @brief 得到边界链表*/ CPtrList* GetOutlineList(); /** @brief 得到边界文件路径*/ CString GetOutlinePath(); private: /** @brief 从属性sheet中的到网格化参数*/ bool GetGridParameters(CFUISheet* psheet); void ClearCurvePtrList(CPtrList& list); /** @brief 是否显示结果*/ BOOL IsDisplay(CFUISheet* psheet); public: double m_xmin; double m_ymin; double m_zmin; double m_xmax; double m_ymax; double m_zmax; int m_numx; ///< 初始网格数目 int m_numy; int m_times; ///< 网格化加密次数 int m_timeflt; ///< 第几次考虑断层 int m_smooth; ///< 平滑度 double m_precision;///< 最大误差 BOOL m_bDisplay; CFNetGenerator m_net; //members private: CPtrList m_flt_list,m_outline_list; CString m_strDataInput; ///< 散点输入路径 CString m_strFlt; ///< 断层输入路径 CString m_strOutline; ///< 边界输入路径 CString m_strGridOutput;///< 网格输出路径 };