44 #ifdef CHECK_MEMORY_LEAKS
46 #endif // CHECK_MEMORY_LEAKS
55 std::vector<MSLane*> incoming,
57 std::vector<MSLane*>
internal,
77 unsigned int requestPos = 0;
78 std::vector<MSLane*>::iterator i;
80 unsigned int maxNo = 0;
81 std::vector<std::pair<MSLane*, MSLink*> > sortedLinks;
85 for (MSLinkCont::const_iterator j = links.begin(); j != links.end(); j++) {
87 throw ProcessError(
"Found invalid logic position of a link (network error)");
89 sortedLinks.push_back(std::make_pair(*i, *j));
98 for (MSLinkCont::const_iterator j = links.begin(); j != links.end(); j++) {
100 throw ProcessError(
"Found invalid logic position of a link (network error)");
106 for (
unsigned int c = 0; c < maxNo; ++c) {
107 if (foeLinks.test(c)) {
111 std::vector<MSLink*> foes;
112 for (
unsigned int c = 0; c < maxNo; ++c) {
113 if (internalFoes.test(c)) {
114 MSLink* foe = sortedLinks[c].second;
116 #ifdef HAVE_INTERNAL_LANES
117 MSLane* l = foe->getViaLane();
122 for (MSLinkCont::const_iterator q = lc.begin(); q != lc.end(); ++q) {
123 if ((*q)->getViaLane() != 0) {
132 #ifdef HAVE_INTERNAL_LANES
135 for (
unsigned int c = 0; c < sortedLinks.size(); ++c) {
136 if (sortedLinks[c].second->getLane() == 0) {
139 if (internalFoes.test(c)) {
141 if(foeLinks.test(c)) {
142 const std::vector<MSLane::IncomingLaneInfo> &l = myInternalLanes[li]->getIncomingLanes();
153 for (std::vector<MSLink*>::const_iterator k = foes.begin(); k != foes.end(); ++k) {
154 (*j)->addBlockedLink(*k);
155 (*k)->addBlockedLink(*j);
160 #ifdef HAVE_INTERNAL_LANES
163 for (i = myInternalLanes.begin(); i != myInternalLanes.end(); ++i) {