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_)