MapPolygon.h
上传用户:bjslfz
上传日期:2022-07-25
资源大小:4430k
文件大小:1k
源码类别:

文件操作

开发平台:

C/C++

  1. /************************************************************
  2.   文件名: MapPolygon.h
  3.   
  4.   作者:   谢婧       Version : 1.0          Date: 2008/05/26
  5.   
  6.   类描述: 对多边形对象的管理
  7.   
  8.   邮件地址:xiejing0707@163.com
  9. ***********************************************************/
  10. #ifndef _MAP_POLYGON_H_
  11. #define _MAP_POLYGON_H_
  12. #include "MapParts.h"
  13. class CMapPolygon:public CObject {
  14. DECLARE_DYNAMIC(CMapPolygon)
  15. public:
  16. CMapPolygon();
  17. CMapPolygon(CMapPolygon& mappolygon );
  18. ~CMapPolygon();
  19. //Attributes
  20. public:
  21.    long GetCount();
  22.  //  CMapRectangle GetExtent();
  23.    void SetExtent(CMapRectangle& exent);
  24.    CMapParts* GetParts(long lIndex);
  25.    double GetArea();
  26. //operation
  27. public:
  28. void Add(CMapParts* pParts);
  29. void Set(long lIndex , CMapParts* pParts);
  30. void SetIndex(unsigned int uiIndex ) { m_uiIndex = uiIndex ; }; 
  31. unsigned int GetIndex() { return m_uiIndex; }; 
  32. void Remove(long lIndex);
  33. void Insert(long lndex , CMapParts* pParts);
  34.     void Clear();
  35. BOOL IsPointIn(CMapPoint& pt );
  36. CArray<CMapParts*,CMapParts*> m_Polygon; //存储点集合对象
  37. CMapRectangle m_Extent;
  38. protected:
  39. BOOL isIntersect(CMapPoint& p1 , CMapPoint& p2 , CMapPoint& p3 , CMapPoint& p4 );
  40. private:
  41. unsigned int m_uiIndex;  //索引值
  42. };
  43. #endif //_MAP_POLYGON_H_