51 #ifdef CHECK_MEMORY_LEAKS
53 #endif // CHECK_MEMORY_LEAKS
67 const std::string& name,
72 : myID(id), myNode(-1), myName(name), myEdge(edge), myDisturbance(by),
73 myTimeGap(timegap), myWayGap(waygap), myVMax(vmax) {}
82 const std::string& name,
99 DictType::iterator i =
myDict.find(
id);
110 DictType::iterator i =
myDict.find(
id);
119 std::vector<int> ret;
120 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
121 if ((*i).second->crosses(poly)) {
122 ret.push_back((*i).second->myID);
153 if (pc == 0 && bc == 0) {
160 WRITE_WARNING(
"Ugly split to prohibit '" + toString<int>(e1->
getID()) +
"' by '" + toString<int>(e2->getID()) +
"'.");
162 std::string id1 = toString<int>(e1->
getID()) +
"x" + toString<int>(e2->getID());
163 std::string id2 = toString<int>(e2->getID()) +
"x" + toString<int>(e1->
getID());
167 assert(node1 == 0 || node2 == 0);
168 if (node1 == 0 && node2 == 0) {
177 node = node1 == 0 ? node2 : node1;
185 NBEdge* mustStopFrom = ec.
retrieve(toString<int>(e2->getID()) +
"[0]");
186 NBEdge* mustStopTo = ec.
retrieve(toString<int>(e2->getID()) +
"[1]");
187 if (mayDriveFrom != 0 && mayDriveTo != 0 && mustStopFrom != 0 && mustStopTo != 0) {
197 }
else if (pc != 0 && bc == 0) {
217 std::string id_pcie = toString<int>(pc->
getToEdgeID());
226 for (EdgeVector::const_iterator i = connected.begin(); i != connected.end(); i++) {
232 WRITE_WARNING(
"Would have to split edge '" + e->
getID() +
"' to build a prohibition");
251 }
else if (bc != 0 && pc == 0) {
262 std::string nid1 = e->
getID() +
"[0]";
263 std::string nid2 = e->
getID() +
"[1]";
271 std::string id_bcoe = toString<int>(bc->getFromEdgeID());
272 std::string id_bcie = toString<int>(bc->getToEdgeID());
281 for (EdgeVector::const_iterator i = connected.begin(); i != connected.end(); i++) {
287 WRITE_WARNING(
"Would have to split edge '" + e->
getID() +
"' to build a prohibition");
309 if (!conn1.
check(ec) || !conn2.check(ec)) {
341 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
350 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {