Triangulate.h
资源名称:08.zip [点击查看]
上传用户:ynjin1970
上传日期:2014-10-13
资源大小:6438k
文件大小:2k
源码类别:
中间件编程
开发平台:
Visual C++
- // GenerateTri1.h: interface for the CTriangulate class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_GENERATETRI1_H__5340E0E4_E726_451E_B76E_54D485C9F63D__INCLUDED_)
- #define AFX_GENERATETRI1_H__5340E0E4_E726_451E_B76E_54D485C9F63D__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "GlobalFunctions.h"
- class CTriangulate
- {
- public:
- struct IEDGE { //定义边
- int p1,p2;
- } ;
- private:
- char szFileName_[256]; //文件名
- int nv_; //点的个数
- int ntri_; // 三角形的个数
- XYZ *pv_; //点指针
- TRIANGLE *ptri_; //三角形指针
- public:
- XYZ GetRBvertex();
- XYZ GetLTvertex();
- TRIANGLE * GetTriangle() { return ptri_; }; //获得指向三角形的指针
- XYZ * GetVertex() { return pv_; }; // 获得指向散点的指针
- int GetTriangleCount() { return ntri_; }; // 三角形的个数
- int GetVertexCount() { return nv_; }; // 点的个数
- bool CreateTriangle(); //生成三角形
- bool Initial(char * szFileName); //用文件初始化散点数据
- CTriangulate();
- virtual ~CTriangulate();
- private:
- void SortAndRemoveRepeatPoints();
- void MeshedTris();
- XYZ LTvertex_; // 散点的最大值 ,即左上角,在Initial()函数中初始化
- XYZ RBvertex_; // 散点的最小值,右下角
- int Triangulate(int nv, XYZ *pxyz, int *ntri, TRIANGLE *v);
- int CircumCircle(double xp, double yp, double x1, double y1, double x2, double y2, double x3, double y3, double *xc, double *yc, double *r);
- void QSortVertexByX();
- };
- #endif // !defined(AFX_GENERATETRI1_H__5340E0E4_E726_451E_B76E_54D485C9F63D__INCLUDED_)