QPointArray.h
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:2k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. // QPointArray.h: interface for the CQPointArray class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "QBaseObj.h"
  5. #include "afxtempl.h"
  6. #include "afxcoll.h"
  7. #include "Afxmt.h"
  8. #include "math.h"
  9. #if !defined(AFX_QPOINTARRAY_H__1DEDDCE5_34A5_485C_88F6_77E88E9E5CF6__INCLUDED_)
  10. #define AFX_QPOINTARRAY_H__1DEDDCE5_34A5_485C_88F6_77E88E9E5CF6__INCLUDED_
  11. #if _MSC_VER > 1000
  12. #pragma once
  13. #endif // _MSC_VER > 1000
  14. //////////////////////////////////////////
  15. ///***************CQGIS****************///
  16. ///类    名:CQPointArray
  17. ///基    型:CObject
  18. ///说    明:点阵类对象
  19. ///***************CQGIS****************///
  20. //////////////////////////////////////////
  21. class AFX_EXT_CLASS CQPointArray : public CObject 
  22. {
  23. public:
  24. CQPointArray(int nSize = 0);
  25. CQPointArray(CQPointArray & ptArray); //拷贝构造
  26. void Copy(CQPointArray & ptArray);
  27. virtual ~CQPointArray();
  28. public:
  29. //向点阵中加点
  30. void AddPoint(CQPoint * pPt);
  31. void AddPoint(double x,double y);
  32. void InsertAfter(int nIndex,double x,double y);
  33. void InsertAfter(int nIndex,CQPoint * pt);
  34. void InsertAt(int nIndex,double x,double y); //在nIndex位置插入一个点
  35. void InsertAt(int nIndex,CQPoint * pt);
  36. void Delete(int nIndex); //将nIndex位置的坐标点对象指针移出数组并销毁,其后的元素依次向前移动
  37. void DeleteAll();        //删除所有的点
  38. //将nIndex位置的坐标点对象指针移出数组,其后的元素依次向前移动
  39. //并返回从数组中移出的指针,指针指向的对象要用户自己销毁。
  40. CQPoint * RemoveAt(int nIndex);
  41. void RemoveAll(); //移除所有对象
  42. CQPointArray MakeArrayInverse();  // 数组元素顺序倒置
  43. void ArrayInverseCopy(CQPointArray & ptArray);
  44. int FindPtIndex(CQPoint & pt);    // 查找指定点的索引 
  45. CQPoint * GetPoint(int nIndex);   // 查找点
  46. CQPoint * operator[](int nIndex); // 运算符重载
  47. int GetSize();                    // 获得点阵的大小
  48. void GetBoundRect(CBoundaryRect * pRect); // 获得点阵的边界矩形
  49. virtual void Serialize(CArchive& ar); //串行化
  50. virtual void WritetoFile(CFile * pFile);
  51. virtual void ReadFromFile(CFile * pFile);
  52. BOOL ExchangePoint(int i,int j);  // 改变点的位置
  53. CQPoint * GetCenterPoint();         // 获取中点
  54. void XSort(int nSortType);        // 按照X坐标进行排序
  55. void YSort(int nSortType);        // 按照Y坐标进行排序
  56. protected:
  57. CTypedPtrArray<CObArray,CQPoint *>m_PtArray;
  58. };
  59. #endif // !defined(AFX_QPOINTARRAY_H__1DEDDCE5_34A5_485C_88F6_77E88E9E5CF6__INCLUDED_)