KPolygon.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 1999-2000 by Kingsoft
  3. //
  4. // File: KPolygon.h
  5. // Date: 2002.01.10
  6. // Code: Spe
  7. // Desc: Header File
  8. //---------------------------------------------------------------------------
  9. #ifndef KPolygon_H
  10. #define KPolygon_H
  11. #define defMaxVertex 8
  12. typedef struct
  13. {
  14. int nVertex;
  15. POINT Pos[defMaxVertex];
  16. }
  17. TPolygon, *LPPolygon;
  18. class ENGINE_API KPolygon  
  19. {
  20. private:
  21. TPolygon m_Polygon;
  22. public:
  23. KPolygon();
  24. BOOL IsPointInPolygon(POINT pos); // 检查当前点是否在多边形内
  25. BOOL IsPointInPolygon(int x, int y); // 检查当前点是否在多边形内
  26. BOOL AddPointToVertex(POINT pos); // 增加顶点
  27. BOOL AddPointToVertex(int x, int y); // 增加顶点
  28. int GetNearVertex(POINT pos); // 取得与当前点最近的顶点索引
  29. int GetVertexNumber() {return m_Polygon.nVertex;}; // 取得多边形的顶点数目
  30. BOOL GetIndexVertex(int i, POINT* vertex); // 取得多边形的第I个顶点座标
  31. BOOL RemoveIndexVertex(int i); // 从多边形中去除掉一个顶点
  32. void LoopVertex(int i); // 把多边形顶点顺序进行I次循环变化
  33. void Clear(); // 清空多边形信息
  34. void GetCenterPos(POINT* pos); // 取得重心位置
  35. LPPolygon GetPolygonPtr() {return &m_Polygon;}; // 取得多边形指针
  36. BOOL ShiftVertex(int nDir, int nDistance); // 把任意顶点向什么方向移动
  37. int GetLeftVertex(); // 取得最左顶点的索引
  38. int GetRightVertex(); // 取得最右顶点的索引
  39. };
  40. #endif