//-----------------------------------------------------------------------------+ // 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(); }