X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Flibavoid%2Fgraph.cpp;h=1970212df4e31214beb8b398c528588d8c6046f0;hb=7f0b207c4980514d56644cfbcd95b854f6d58bb6;hp=5e41f79f548ba5702a079423681f059e69a105fc;hpb=e8325ddfe05ac8dd00fbf1e25a583ee33887c031;p=inkscape.git diff --git a/src/libavoid/graph.cpp b/src/libavoid/graph.cpp index 5e41f79f5..1970212df 100644 --- a/src/libavoid/graph.cpp +++ b/src/libavoid/graph.cpp @@ -31,12 +31,15 @@ #include +using std::pair; + namespace Avoid { EdgeInf::EdgeInf(VertInf *v1, VertInf *v2) : lstPrev(NULL) , lstNext(NULL) + , _blocker(0) , _router(NULL) , _added(false) , _visible(false) @@ -51,7 +54,6 @@ EdgeInf::EdgeInf(VertInf *v1, VertInf *v2) assert(_v1->_router == _v2->_router); _router = _v1->_router; - _blockers.clear(); _conns.clear(); } @@ -109,18 +111,12 @@ void EdgeInf::makeInactive(void) _v2->invisList.erase(_pos2); _v2->invisListSize--; } - _blockers.clear(); + _blocker = 0; _conns.clear(); _added = false; } -double EdgeInf::getDist(void) -{ - return _dist; -} - - void EdgeInf::setDist(double dist) { //assert(dist != 0); @@ -135,13 +131,14 @@ void EdgeInf::setDist(double dist) makeActive(); } _dist = dist; - _blockers.clear(); + _blocker = 0; } void EdgeInf::alertConns(void) { - for (FlagList::iterator i = _conns.begin(); i != _conns.end(); ++i) + FlagList::iterator finish = _conns.end(); + for (FlagList::iterator i = _conns.begin(); i != finish; ++i) { *(*i) = true; } @@ -176,29 +173,7 @@ void EdgeInf::addBlocker(int b) makeActive(); } _dist = 0; - _blockers.clear(); - _blockers.push_back(b); -} - - -bool EdgeInf::hasBlocker(int b) -{ - assert(_router->InvisibilityGrph); - - ShapeList::iterator finish = _blockers.end(); - for (ShapeList::iterator it = _blockers.begin(); it != finish; ++it) - { - if ((*it) == -1) - { - alertConns(); - return true; - } - else if ((*it) == b) - { - return true; - } - } - return false; + _blocker = b; }