QPointArray.h
资源名称:QGIS.rar [点击查看]
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:2k
源码类别:
GDI/图象编程
开发平台:
Visual C++
- // QPointArray.h: interface for the CQPointArray class.
- //
- //////////////////////////////////////////////////////////////////////
- #include "QBaseObj.h"
- #include "afxtempl.h"
- #include "afxcoll.h"
- #include "Afxmt.h"
- #include "math.h"
- #if !defined(AFX_QPOINTARRAY_H__1DEDDCE5_34A5_485C_88F6_77E88E9E5CF6__INCLUDED_)
- #define AFX_QPOINTARRAY_H__1DEDDCE5_34A5_485C_88F6_77E88E9E5CF6__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- //////////////////////////////////////////
- ///***************CQGIS****************///
- ///类 名:CQPointArray
- ///基 型:CObject
- ///说 明:点阵类对象
- ///***************CQGIS****************///
- //////////////////////////////////////////
- class AFX_EXT_CLASS CQPointArray : public CObject
- {
- public:
- CQPointArray(int nSize = 0);
- CQPointArray(CQPointArray & ptArray); //拷贝构造
- void Copy(CQPointArray & ptArray);
- virtual ~CQPointArray();
- public:
- //向点阵中加点
- void AddPoint(CQPoint * pPt);
- void AddPoint(double x,double y);
- void InsertAfter(int nIndex,double x,double y);
- void InsertAfter(int nIndex,CQPoint * pt);
- void InsertAt(int nIndex,double x,double y); //在nIndex位置插入一个点
- void InsertAt(int nIndex,CQPoint * pt);
- void Delete(int nIndex); //将nIndex位置的坐标点对象指针移出数组并销毁,其后的元素依次向前移动
- void DeleteAll(); //删除所有的点
- //将nIndex位置的坐标点对象指针移出数组,其后的元素依次向前移动
- //并返回从数组中移出的指针,指针指向的对象要用户自己销毁。
- CQPoint * RemoveAt(int nIndex);
- void RemoveAll(); //移除所有对象
- CQPointArray MakeArrayInverse(); // 数组元素顺序倒置
- void ArrayInverseCopy(CQPointArray & ptArray);
- int FindPtIndex(CQPoint & pt); // 查找指定点的索引
- CQPoint * GetPoint(int nIndex); // 查找点
- CQPoint * operator[](int nIndex); // 运算符重载
- int GetSize(); // 获得点阵的大小
- void GetBoundRect(CBoundaryRect * pRect); // 获得点阵的边界矩形
- virtual void Serialize(CArchive& ar); //串行化
- virtual void WritetoFile(CFile * pFile);
- virtual void ReadFromFile(CFile * pFile);
- BOOL ExchangePoint(int i,int j); // 改变点的位置
- CQPoint * GetCenterPoint(); // 获取中点
- void XSort(int nSortType); // 按照X坐标进行排序
- void YSort(int nSortType); // 按照Y坐标进行排序
- protected:
- CTypedPtrArray<CObArray,CQPoint *>m_PtArray;
- };
- #endif // !defined(AFX_QPOINTARRAY_H__1DEDDCE5_34A5_485C_88F6_77E88E9E5CF6__INCLUDED_)