Triangulate.h
上传用户:ynjin1970
上传日期:2014-10-13
资源大小:6438k
文件大小:2k
源码类别:

中间件编程

开发平台:

Visual C++

  1. // GenerateTri1.h: interface for the CTriangulate class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_GENERATETRI1_H__5340E0E4_E726_451E_B76E_54D485C9F63D__INCLUDED_)
  5. #define AFX_GENERATETRI1_H__5340E0E4_E726_451E_B76E_54D485C9F63D__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "GlobalFunctions.h"
  10. class CTriangulate  
  11. {
  12. public:
  13. struct IEDGE { //定义边
  14. int p1,p2;
  15. } ;
  16. private:
  17. char szFileName_[256]; //文件名
  18. int nv_; //点的个数
  19. int ntri_; // 三角形的个数
  20. XYZ *pv_; //点指针
  21. TRIANGLE *ptri_; //三角形指针
  22. public:
  23. XYZ GetRBvertex();
  24. XYZ GetLTvertex();
  25. TRIANGLE * GetTriangle() { return ptri_; }; //获得指向三角形的指针
  26. XYZ * GetVertex() { return pv_; }; // 获得指向散点的指针
  27. int GetTriangleCount() { return ntri_; }; // 三角形的个数
  28. int GetVertexCount() { return nv_; }; // 点的个数
  29. bool CreateTriangle(); //生成三角形
  30. bool Initial(char * szFileName);  //用文件初始化散点数据
  31. CTriangulate();
  32. virtual ~CTriangulate();
  33. private:
  34. void SortAndRemoveRepeatPoints();
  35. void MeshedTris();
  36. XYZ LTvertex_; // 散点的最大值 ,即左上角,在Initial()函数中初始化
  37. XYZ RBvertex_; // 散点的最小值,右下角
  38. int Triangulate(int nv, XYZ *pxyz, int *ntri, TRIANGLE *v);
  39. int CircumCircle(double xp, double yp, double x1, double y1, double x2, double y2, double x3, double y3, double *xc, double *yc, double *r);
  40. void QSortVertexByX();
  41. };
  42. #endif // !defined(AFX_GENERATETRI1_H__5340E0E4_E726_451E_B76E_54D485C9F63D__INCLUDED_)