22 #ifndef __PNS_TOPOLOGY_H
23 #define __PNS_TOPOLOGY_H
28 #include "pns_itemset.h"
42 typedef std::set<JOINT*> JOINT_SET;
44 TOPOLOGY( NODE* aNode ):
49 bool SimplifyLine( LINE *aLine );
50 ITEM* NearestUnconnectedItem( JOINT* aStart,
int* aAnchor = NULL,
int aKindMask = ITEM::ANY_T );
53 const JOINT_SET ConnectedJoints( JOINT* aStart );
54 const ITEM_SET ConnectedItems( JOINT* aStart,
int aKindMask = ITEM::ANY_T );
55 const ITEM_SET ConnectedItems( ITEM* aStart,
int aKindMask = ITEM::ANY_T );
56 int64_t ShortestConnectionLength( ITEM* aFrom, ITEM* aTo );
58 const ITEM_SET AssembleTrivialPath( ITEM* aStart );
59 const DIFF_PAIR AssembleDiffPair( SEGMENT* aStart );
61 int DpCoupledNet(
int aNet );
62 int DpNetPolarity(
int aNet );
63 const LINE DpCoupledLine( LINE* aLine );
64 bool AssembleDiffPair( ITEM* aStart, DIFF_PAIR& aPair );
66 const std::set<ITEM*> AssembleCluster( ITEM* aStart,
int aLayer );
69 bool followTrivialPath( LINE* aLine,
bool aLeft, ITEM_SET& aSet, std::set<ITEM*>& aVisited );