40 #ifdef CHECK_MEMORY_LEAKS
42 #endif // CHECK_MEMORY_LEAKS
50 myLanes(
MSLane::dictSize()),
51 myLastLaneChange(
MSEdge::dictSize()) {
53 for (std::vector< MSEdge* >::const_iterator i =
myEdges.begin(); i !=
myEdges.end(); ++i) {
54 const std::vector<MSLane*> &lanes = (*i)->getLanes();
55 if (lanes.size() == 1) {
56 size_t pos = (*lanes.begin())->getNumericalID();
57 myLanes[pos].lane = *(lanes.begin());
58 myLanes[pos].firstNeigh = lanes.end();
59 myLanes[pos].lastNeigh = lanes.end();
61 myLanes[pos].haveNeighbors =
false;
63 for (std::vector<MSLane*>::const_iterator j = lanes.begin(); j != lanes.end(); ++j) {
64 size_t pos = (*j)->getNumericalID();
66 myLanes[pos].firstNeigh = (j + 1);
67 myLanes[pos].lastNeigh = lanes.end();
69 myLanes[pos].haveNeighbors =
true;
72 size_t pos = (*i)->getNumericalID();
87 if (!lu.
amActive && (*i)->getVehicleNumber() > 0) {
103 if ((*i)->getVehicleNumber() == 0 || (*i)->moveCritical(t)) {
104 myLanes[(*i)->getNumericalID()].amActive =
false;
118 myLanes[(*i)->getNumericalID()].amActive =
false;
125 if ((*i)->integrateNewVehicle(t)) {
142 std::vector<MSLane*> toAdd;
146 MSEdge& edge = (*i)->getEdge();
150 const std::vector<MSLane*> &lanes = edge.
getLanes();
151 for (std::vector<MSLane*>::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
153 if ((*i)->getVehicleNumber() > 0 && !lu.
amActive) {
164 for (std::vector<MSLane*>::iterator i = toAdd.begin(); i != toAdd.end(); ++i) {
174 (*i)->detectCollisions(timestep);
179 std::vector<std::string>
181 std::vector<std::string> ret;
182 for (std::vector<MSEdge*>::const_iterator i =
myEdges.begin(); i !=
myEdges.end(); ++i) {
183 ret.push_back((*i)->getID());