69 lines
1.2 KiB
C++
69 lines
1.2 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
// = FileName : TGNode.cpp
|
|
// = Version : ver2.0
|
|
// = Author : xlc
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: 类的定义
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#include "StdAfx.h"
|
|
#include "TGNode.h"
|
|
|
|
TGNode::TGNode()
|
|
{
|
|
|
|
}
|
|
|
|
TGNode::TGNode(const TGPoint&pt)
|
|
: TGPoint2D(pt)
|
|
{
|
|
|
|
}
|
|
|
|
TGNode::~TGNode()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
bool TGNode::operator ==(const TGPoint&pt)const
|
|
{
|
|
return TGPoint2D::operator==(pt);
|
|
}
|
|
|
|
bool TGNode::operator > (const TGNode&)const
|
|
{
|
|
return false;
|
|
}
|
|
|
|
bool TGNode::operator < (const TGNode&)const
|
|
{
|
|
return false;
|
|
}
|
|
|
|
bool TGNode::FindNode(TGNode*pNodeTo,TPGeEdgePath&path)
|
|
{
|
|
AddFlag(LOCKED);
|
|
for(MoveToFirst();!IsOut();MoveToNext())
|
|
{
|
|
TPGeEdge*pEdge=GetCurData();
|
|
if(pEdge->IsNot(LOCKED))
|
|
{
|
|
pEdge->AddFlag(LOCKED);
|
|
path.AddTail(pEdge);
|
|
|
|
TGNode*pNode=pEdge->EndNode();
|
|
if(pNode==pNodeTo || (pNode!=NULL&&pNode->IsNot(LOCKED)&&pNode->FindNode(pNodeTo,path)))
|
|
{
|
|
break;
|
|
}
|
|
|
|
path.DelTail();
|
|
pEdge->RemoveFlag(LOCKED);
|
|
}
|
|
}
|
|
RemoveFlag(LOCKED);
|
|
return !IsOut();
|
|
} |