Скачиваний:
18
Добавлен:
01.05.2014
Размер:
4.06 Кб
Скачать
// QTreeView.h : interface of the CQTreeView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_QTREEVIEW_H__088BD08D_3A46_11D5_9234_D6C649555803__INCLUDED_)
#define AFX_QTREEVIEW_H__088BD08D_3A46_11D5_9234_D6C649555803__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "MainStructures.h"
#include "QTreeDoc.h"

class CQTreeView : public CView
{
protected: // create from serialization only
	CQTreeView();
	DECLARE_DYNCREATE(CQTreeView)

// Attributes
protected:
	//кисти
	CBrush m_PointBrush,	//для отображения всех точек
		   m_qPointBrush,	//для отображения точек,
							//попавших в область поиска
		   m_pPointBrush,
		   m_QTreeByStepsBrush,
		   m_QTreeByStepsBrush_;
	//карандаши
	CPen   m_PointPen,		//для отображения всех точек
		   m_qPointPen,		//для отображения точек,
							//попавших в область поиска
		   m_pPointPen,
		   m_RectPen,		//для отображения области поиска
		   m_RectPenWhite,
		   m_GridPen,		//для отображения сетки
		   m_QTreePen,		//для отображения дерева
		   m_OrgPen;		//для отображения осей координат
	       	
	int	   m_sp;			//размер отображаемых точек

	int	   m_X,				//точка начала координат
		   m_Y;

	BOOL   m_DrawRect;		//признак отображения области поиска
	BOOL   m_DrawQTree;

public:
	int	   M,				//коэффициент заполняемости ячейки
		   D;				//предельная глубина
	int	   m_maxM,			//максимально возможные значения
		   m_maxD;			//этих параметров

	Grid   m_Grid;			//сетка
	QTree  m_QTree;			//квадрантное дерево
	
	//параметры сетки:
	int	   m_SizeGrid,		//размерность (число точек)
		   m_NumCells;		//размерность (число ячеек)
	int	   m_maxSizeGrid,	//максимально возможные значения
		   m_maxNumCells;	//этих параметров

	//область поиска
	CRect  Rectangle,		//в физических координатах
		   RectangleLog;	//в логических координатах
	
	List   listPoints,		//список всех точек
		   listPointsInRect,//список найденных точек
		   listBySteps,
		   listBySteps_;

	int	   maxIndexBuildBySteps,
		   maxIndexFindBySteps;

	BOOL   MaxFind,	
		   MaxBQTree;	

	int    m_numberRandomPoints;

	//флаги:
	BOOL   m_CheckAutoBuildQTree,	//автопостроение дерева
	       m_RunBuildQTree,			//построить дерево		
		   m_ShowQTree,				//отобразить дерево
	       m_RunFounding,			//произвести поиск по области
		   m_ChangeRange,	 		//произвести изменение области поиска
		   m_BuildQTreeBySteps,
		   m_FindBySteps;
public:
	CQTreeDoc* GetDocument();

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CQTreeView)
	public:
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	virtual void OnInitialUpdate();
	protected:
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CQTreeView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CQTreeView)
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
private:
	void UpdateGridSize(CDC *dc);
};

#ifndef _DEBUG  // debug version in QTreeView.cpp
inline CQTreeDoc* CQTreeView::GetDocument()
   { return (CQTreeDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_QTREEVIEW_H__088BD08D_3A46_11D5_9234_D6C649555803__INCLUDED_)
Соседние файлы в папке src