qvfield20.cpp

来自「Windows上的MUD客户端程序」· C++ 代码 · 共 76 行

CPP
76
字号
#include <QvFields.h>
#include <QvRoute.h>
#include <ChTypes.h>
#include <ChList.h>

// VRML 2.0 style routing
class QvRoute;

class QvRouteList : public ChPtrList<QvRoute>
{
	public:
		QvRouteList() : ChPtrList<QvRoute>() {} ;
		virtual ~QvRouteList() {};
};

QvBool
QvField::pumpData()
{
	if(m_pRoutes && !m_pRoutes->IsEmpty())
	{
		ChPosition pos = m_pRoutes->GetHeadPosition();
		while(pos)
		{
			QvRoute *pRoute = m_pRoutes->GetNext(pos);
			QvField *pTarget = pRoute->GetDestination();
			propagate(pTarget);
		}

	}
	return TRUE;
}

void QvField::propagate(QvField *dest)
{
	//*dest = *this; ??
}

void QvField::addRoute(QvRoute *pRoute)
{
	if(!m_pRoutes) m_pRoutes = new QvRouteList;
	if(m_pRoutes)
	{
		ChPosition pos = m_pRoutes->Find(pRoute);
		if(!pos)
		{
			m_pRoutes->AddTail(pRoute);
		}

	}
}

void QvField::removeRoutes()
{
	if(m_pRoutes)
	{
		while(!m_pRoutes->IsEmpty())
		{
			QvRoute *pRoute = m_pRoutes->RemoveHead();
			pRoute->SetSource(0);
		}
		delete m_pRoutes;
	}
}

void QvField::removeRoute(QvRoute *pRoute)
{
	if(m_pRoutes)
	{
		ChPosition pos = m_pRoutes->Find(pRoute);
		if(pos)
		{
			m_pRoutes->Remove(pos);
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?