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

文件操作

开发平台:

C/C++

  1. #include "stdafx.h"
  2. #include "MapPoints.h"
  3. IMPLEMENT_DYNAMIC(CMapPoints,CObject)
  4. CMapPoints::CMapPoints()
  5. {
  6. }
  7. CMapPoints::CMapPoints(CMapPoints& points)
  8. {
  9.    int i,iCount;
  10.    CMapPoint *pPoint;
  11.    
  12.    iCount = points.GetCount() - 1;
  13.    for ( i = 0 ; i <= iCount ; i++ )
  14.    { 
  15.   pPoint = new CMapPoint(*points.Get(i));
  16.   Add(pPoint); 
  17.    }
  18.      
  19. }
  20. CMapPoints::~CMapPoints()
  21. {
  22.    Clear();
  23. }
  24. long CMapPoints::GetCount()
  25. {
  26.    return m_Points.GetSize();  
  27. }
  28. CMapRectangle CMapPoints::GetExtent()
  29. {
  30. return m_Rectangle;
  31. }
  32. void CMapPoints::SetExtent(CMapRectangle& exent)
  33. {
  34. m_Rectangle.SetLeft( exent.GetLeft());
  35. m_Rectangle.SetRight( exent.GetRight());
  36. m_Rectangle.SetTop(exent.GetTop());
  37.     m_Rectangle.SetBottom(exent.GetBottom());
  38.     
  39. }
  40. CMapPoint* CMapPoints::Get(long lIndex)
  41. {
  42. int iCount;
  43. CMapPoint  *pPt = NULL;
  44. iCount = m_Points.GetSize()-1;
  45. if ( lIndex < 0 || lIndex > iCount )
  46. return pPt;
  47.     pPt = m_Points.GetAt(lIndex);
  48. return pPt;
  49. }
  50. void CMapPoints::Add(CMapPoint* pPoint)
  51. {
  52. if ( pPoint == NULL )
  53. return;
  54. m_Points.Add( pPoint );
  55. }
  56. void CMapPoints::Set(long lIndex , CMapPoint* pPoint)
  57. {
  58. int iCount;
  59. CMapPoint *pPt;
  60. if ( pPoint == NULL )
  61. return;
  62. iCount = m_Points.GetSize()-1;
  63. if ( lIndex < 0 || lIndex > iCount )
  64. return ;
  65.     pPt = m_Points.GetAt( lIndex );
  66.     m_Points.SetAt(lIndex,pPoint);
  67.     delete pPt; 
  68. }
  69. void CMapPoints::Remove(long lIndex)
  70. {
  71. int iCount;
  72. CMapPoint *pPt;
  73. iCount = m_Points.GetSize()-1;
  74. if ( lIndex < 0 || lIndex > iCount )
  75. return ;
  76. pPt = m_Points.GetAt( lIndex );  
  77.     m_Points.RemoveAt(lIndex,1);   
  78. delete pPt; 
  79. }
  80. void CMapPoints::Insert(long lIndex , CMapPoint* pPoint)
  81. {
  82. int iCount;
  83. iCount = m_Points.GetSize()-1;
  84. if ( lIndex < 0 || lIndex > iCount )
  85. return ;
  86. m_Points.InsertAt(lIndex,pPoint);
  87. }
  88. void CMapPoints::Clear()
  89. {
  90.    int i,iCount;
  91.    CMapPoint *pPoint;
  92.    
  93.    iCount = m_Points.GetSize() - 1;
  94.    for ( i = iCount ; i >= 0   ; i-- )
  95.    {
  96. pPoint = m_Points.GetAt(i);
  97. delete pPoint;
  98.    } 
  99.    m_Points.RemoveAll(); 
  100. }