www.pudn.com > VoronoiDAC.rar > VoronoiDACDoc.h, change:2007-01-12,size:3360b


// VoronoiDACDoc.h : interface of the CVoronoiDACDoc class 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_VORONOIDACDOC_H__67689E26_4CD7_417B_BA17_8DCEC0DFF8E1__INCLUDED_) 
#define AFX_VORONOIDACDOC_H__67689E26_4CD7_417B_BA17_8DCEC0DFF8E1__INCLUDED_ 
 
#ifndef _H_VORONOI 
#include "Voronoi.h" 
#endif 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CVoronoiDACDoc : public CDocument 
{ 
protected: // create from serialization only 
	CVoronoiDACDoc(); 
	DECLARE_DYNCREATE(CVoronoiDACDoc) 
 
// Attributes 
public: 
	int *m_Index;  //整数数组 
 
// Operations 
public: 
//    CVoronoiDACView* GetActiveView(); 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CVoronoiDACDoc) 
	public: 
	virtual BOOL OnNewDocument(); 
	virtual void Serialize(CArchive& ar); 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	virtual ~CVoronoiDACDoc(); 
 
	CPt* AddPoint(float X, float Y, int ID, short ColorPen = 1, short ColorBrush = 0,  
		          short LineWide = 3, short LineType = 1);  //添加新点 
	CLine* AddLine(float X1, float Y1, float X2, float Y2,  int ID, short ColorPen = 1,  
		           short ColorBrush = 0, short LineWide = 1, short LineType = 1);  //添加新线 
    CDraw* GetGraph(short Lb, int Index);  //根据Lb得到不同图形 
	void DeleteGraph(short Lb, int Index);  //根据Lb删除不同图形 
	void DeleteAllGraph(short Lb);  //删除数组中所有元素 
    int GetGraphNumb(short Lb);  //得到不同图形数目 
	int GetGraphUpperBound(short Lb);  //得到对象数组上标 
	int GetGraphID(short Lb);  //得到要增加的图形元素的识别号 
	void DrawAll(CDC *pDC, int DrawModel, short BackColor);  //画出所有图形元素 
	void Draw(CDC *pDC, short Lb);  //根据Lb值画出相应图形元素 
	void DrawSpecialSite(CDC *pDc, int Low, int High);  //正在操作的站点特殊显示 
 
//	void QuickSort(CTypedPtrArray<CObArray, CPt *> SiteArray, int Low, int High); 
	void QuickSort(site *SiteArray, int Low, int High); 
    BOOL Prior(site Site1, site Site2) 
	{ 
		if ((Site1.x  Site2.x) || 
			((Site1.x == Site2.x) && (Site1.y > Site2.y))) 
		{ 
			return TRUE; 
		}  
		else 
		{ 
			return FALSE; 
		} 
	} 
     
	voronoi * CreateVoronoi(CDC *pDc, site *OrderedArray, int LowIndex, int HighIndex, BOOL IsStep = FALSE); 
 
	 
#ifdef _DEBUG 
	virtual void AssertValid() const; 
	virtual void Dump(CDumpContext& dc) const; 
#endif 
 
protected: 
 
public: 
	CTypedPtrArray<CObArray, CPt *> m_PointArray;  //点数组 
//	CLine *pFirst = new CLine(1,0,0,0,0); 
	CTypedPtrArray<CObArray, CLine *> m_LineArray;  //最终Voronoi图的边数组 
	CTypedPtrArray<CObArray, CLine *> m_LeftLine;  //每一步左边边的数组 
	CTypedPtrArray<CObArray, CLine *> m_RightLine;  //每一步右边的数组 
	CTypedPtrArray<CObArray, CLine *> m_Contour;  //中间轮廓 
	CTypedPtrArray<CObArray, CLine *> m_ArrayToBeCutLine;  //需要消隐的线 
//	m_LineArray.Add(pFirst); 
	site m_SiteArray[MAXSITENUM]; 
 
// Generated message map functions 
protected: 
	//{{AFX_MSG(CVoronoiDACDoc) 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
 
#endif // !defined(AFX_VORONOIDACDOC_H__67689E26_4CD7_417B_BA17_8DCEC0DFF8E1__INCLUDED_)