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