Скачиваний:
17
Добавлен:
01.05.2014
Размер:
3.01 Кб
Скачать
// QTreeDoc.cpp : implementation of the CQTreeDoc class
//

#include "stdafx.h"
#include "QTree.h"

#include "QTreeDoc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//задание максимальных значений:
#define MAXM		10			//коэффициента заполняемости ячейки
#define MAXD		10			//и предельной глубины
								//задание начальных значений:
#define _M			3			//коэффициента заполняемости ячейки
#define _D			10			//и предельной глубины

#define	MAXSIZEGRID	2048		//максимальная размерность сетки
#define	MAXNUMCELLS	MAXSIZEGRID	//максимальное количество ячеек в строке
#define SIZEGRID	1024		//начальное значение размерности сетки
#define	NUMCELLS	32			//начальное значение количества ячеек в строке

/////////////////////////////////////////////////////////////////////////////
// CQTreeDoc

IMPLEMENT_DYNCREATE(CQTreeDoc, CDocument)

BEGIN_MESSAGE_MAP(CQTreeDoc, CDocument)
	//{{AFX_MSG_MAP(CQTreeDoc)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQTreeDoc construction/destruction

CQTreeDoc::CQTreeDoc()
{
}

CQTreeDoc::~CQTreeDoc()
{
}

BOOL CQTreeDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	//задание максимальных значений:
	m_maxM=MAXM;	//коэффициента заполняемости ячейки
	m_maxD=MAXD;	//предельной глубины

	//задание начальных значений:
	M=_M;			//коэффициента заполняемости ячейки
	D=_D;			//предельной глубины

	m_SizeGrid=SIZEGRID;		//начальное значение размерности сетки
	m_NumCells=NUMCELLS;		//начальное значение количества ячеек в строке

	m_maxSizeGrid=MAXSIZEGRID;	//максимальная размерность сетки
	m_maxNumCells=MAXNUMCELLS;	//максимальное количество ячеек в строке

	//создаем пустой список точек
	List tmp;
	listPoints=tmp;

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CQTreeDoc serialization

void CQTreeDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		//сохраняем данные в файле
		ar<<M;
		ar<<D;
		ar<<m_SizeGrid;
		ar<<m_NumCells;
		int N=listPoints.Lenght();
		ar<<N;
		listPoints.First();
		ELEMENT p;
		for(int i=1;i<=N;i++)
		{
			p=*listPoints.Val();
			ar<<p.x;
			ar<<p.y;
			listPoints.Next();
		}
	}
	else
	{
		//читаем данные из файла
		ar>>M;
		ar>>D;
		ar>>m_SizeGrid;
		ar>>m_NumCells;
		int N;
		ar>>N;
		ELEMENT p;
		List tmpList;
		for(int i=1;i<=N;i++)
		{
			ar>>p.x;
			ar>>p.y;
			tmpList.Append(ELEMENT(p));
		}
		listPoints=tmpList;
	}
}

/////////////////////////////////////////////////////////////////////////////
// CQTreeDoc diagnostics

#ifdef _DEBUG
void CQTreeDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CQTreeDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CQTreeDoc commands
Соседние файлы в папке src