www.gusucode.com > VC++开源的SHP格式GIS地图查看软件源程序源码程序 > VC++开源的SHP格式GIS地图查看软件源程序源码程序\code\MapParts.cpp

    //Download by http://www.NewXing.com
#include "stdafx.h"
#include "MapParts.h"

IMPLEMENT_DYNAMIC(CMapParts,CObject)
CMapParts::CMapParts()
{


}

CMapParts::CMapParts(CMapParts& Parts)
{
   int i,iCount;
   CMapPoints *pPoints;
   
   iCount = Parts.GetCount() - 1;
   for ( i = 0 ; i <= iCount ; i++ )
   { 
		pPoints = new CMapPoints(*Parts.Get(i));
		m_Parts.Add(pPoints); 	
		
   } 
}

CMapParts::~CMapParts()
{
	Clear();
}

long CMapParts::GetCount()
{

	return m_Parts.GetSize(); 
}

void CMapParts::Add(CMapPoints* pPoints)
{
	if ( pPoints == NULL )
		return;
	m_Parts.Add(pPoints); 

}

void CMapParts::Set(long lIndex, CMapPoints* pPoints)
{
	long lCount;
	CMapPoints* pOldPoints;

	if ( pPoints == NULL )
		return;
	
	lCount  = m_Parts.GetSize() - 1;
	if ( lIndex < 0 || lIndex > lCount )
		return;
	pOldPoints = m_Parts.GetAt(lIndex);
	m_Parts.SetAt(lIndex , pPoints);
	delete pOldPoints;
	

}

void CMapParts::Remove(long lIndex)
{
	long lCount;
	CMapPoints *pPoints;
	
	lCount  = m_Parts.GetSize() - 1;
	if ( lIndex < 0 || lIndex > lCount )
		return;
	pPoints = m_Parts.GetAt(lIndex);  
    m_Parts.RemoveAt(lIndex,1);   
	delete pPoints; 

}

void CMapParts::Insert(long lIndex, CMapPoints* pPoints)
{
	int iCount;
	
	iCount = m_Parts.GetSize()-1;
	if ( lIndex < 0 || lIndex > iCount )
		return ;
	m_Parts.InsertAt(lIndex,pPoints);

}

CMapPoints* CMapParts::Get(long lIndex)
{

	int iCount;
    CMapPoints  *pPts=NULL;

	iCount = m_Parts.GetSize()-1;
	if ( lIndex < 0 || lIndex > iCount )
		return pPts;
    pPts = m_Parts.GetAt(lIndex);
	return pPts;
}

void CMapParts::Clear()
{
	long i,lCount;
	CMapPoints* pPoints;

	lCount  = m_Parts.GetSize() - 1;
	for(i = lCount ; i >= 0 ; i-- )
	{
		pPoints = m_Parts.GetAt(i);
		delete pPoints;
    }  
	m_Parts.RemoveAll(); 

}