47 std::map<const ROEdge*, int> lastOccurence;
48 for (
int ii = 0; ii < (int)edges.size(); ++ii) {
49 std::map<const ROEdge*, int>::iterator it_pre = lastOccurence.find(edges[ii]);
50 if (it_pre != lastOccurence.end()) {
51 edges.erase(edges.begin() + it_pre->second, edges.begin() + ii);
54 lastOccurence[edges[ii]] = ii;
60 const RONode* start = edges[0]->getFromJunction();
62 for (
int i = 1; i < (int)edges.size(); i++) {
63 if (edges[i]->getFromJunction() == start) {
68 edges.erase(edges.begin(), edges.begin() + lastStart - 1);
72 const RONode* end = edges.back()->getToJunction();
73 int firstEnd = (int)edges.size() - 1;
74 for (
int i = 0; i < firstEnd; i++) {
75 if (edges[i]->getToJunction() == end) {
79 if (firstEnd < (
int)edges.size() - 1) {
80 edges.erase(edges.begin() + firstEnd + 2, edges.end());
void recheckForLoops(ConstROEdgeVector &edges)
Checks whether the given edge list contains loops and removes them.
std::vector< const ROEdge * > ConstROEdgeVector
Some helping methods for router.
Base class for nodes used by the router.