#pragma once #include "atltypes.h" /** @brief 记录边界或者断层经过的网格点i,j序号,以及对应轮廓线号*/ class AFX_EXT_CLASS CFPointNo : public CPoint { public: CFPointNo(void); ~CFPointNo(void); int no; //轮廓线序号 }; /************************************************************************ 类 名: CPointNos 主要功能: 存储轮廓线包围的所有垂直网格线段起始点序号(i1,j1)(i2,j2),即 轮廓线包围的所有网格结点信息 Annotation: Nino Time: 2011-8-11 pValue[1].x,*.y________________pValue[2*i+1].x,*.y |___|_____|_____| |___|_____|_____| int |___|_____|_____| pValue[0].x,*.y pValue[2*i].x,*.y ************************************************************************/ class AFX_EXT_CLASS CFPointNos { public: CFPointNos(void); ~CFPointNos(void); /** @brief 垂直网格线首尾点总数目 条数x2 */ int nCount; /** @brief 存储垂直网格线段首尾结点序号,按从小到大排序 */ CFPointNo* pValue; int Create(int nCount); int Create(CCurve& cur,CGrid &grid); int Create(CPtrList& cur_list,CGrid &grid); int Create(double i1, double j1, double i2, double j2,int &k,int no); /** @brief 得到所有曲线包围的所有网格结点的数目*/ int GetTotal(void); int GetTotalY(void); private: /** @brief 若曲线上结点恰好落在垂直网格线上,则做x方向微量偏移*/ void MigrateCurveX(CCurve& cur,CGrid& grid); };