48 std::map<const ROEdge*, int> lastOccurence;
49 for (
int ii = 0; ii < (int)edges.size(); ++ii) {
50 std::map<const ROEdge*, int>::iterator it_pre = lastOccurence.find(edges[ii]);
51 if (it_pre != lastOccurence.end()) {
52 edges.erase(edges.begin() + it_pre->second, edges.begin() + ii);
55 lastOccurence[edges[ii]] = ii;
61 const RONode* start = edges[0]->getFromJunction();
63 for (
int i = 1; i < (int)edges.size(); i++) {
64 if (edges[i]->getFromJunction() == start) {
69 edges.erase(edges.begin(), edges.begin() + lastStart - 1);
73 const RONode* end = edges.back()->getToJunction();
74 int firstEnd = (int)edges.size() - 1;
75 for (
int i = 0; i < firstEnd; i++) {
76 if (edges[i]->getToJunction() == end) {
80 if (firstEnd < (
int)edges.size() - 1) {
81 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.