www.pudn.com > VoronoiDAC.rar > ConvexHull.h, change:2007-01-04,size:1450b


#ifndef _CONVEX_H 
#define _CONVEX_H 
 
//#include "iostream.h" 
//#include "stdio.h" 
//#include "conio.h" 
//#include "malloc.h" 
 
//enum site_type{left, right}; 
 
struct edge; 
struct site; 
struct vertex; 
struct face ; 
 
struct site  
{ 
	int id; 
	double x; 
	double y; 
//	site_type type; 
	face * pFace; 
};  
 
struct point_chain 
{ 
 
	struct site * pSite; 
	point_chain * next; 
	point_chain * previous; 
	 
}; 
 
class convex 
{ 
private :	 
	point_chain * m_pFirstPoint;//第一个点,指针形式的. 
	point_chain * m_pRightMostPoint;//最右边的点 
	point_chain * m_pLeftMostPoint;//最左边的点 
	int			  m_iCount;//所有 的点数 必包上的点的数目 
 
public : 
	 
	convex( int icount);//构造函数, 
	convex(); 
	convex(site * pFirstSite ,  site * pSecondSite ,  site * pThirdSite); 
	convex(site * pFirstSite ,  site * pSecondSite); 
	//~convex();//析构函数 
	int  GetCount();//返回总点数 
	void  GetFirstPoint( point_chain * * );//返回第一个点,指针形式的 
	void GetRightMostPoint(  point_chain * *);//返回最右边的点. 
	void GetLeftMostPoint( point_chain * *);//返回最左边的点 
	void convex::GetFourMergePoint(const convex * pRightConvex , point_chain * * ppLeftUpSite , point_chain * * ppLeftDownSite , point_chain * * ppRightUpSite , point_chain * * ppRightDownSite); 
	void convex::MergeWithRightConvex(convex * RightConvex ,convex * NewConvex); 
 
	void convex::SetFirstPoint(point_chain * pFirstPoint); 
 
	void PrintAllSites(); 
}; 
 
#endif