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;
86 if (!lu.
amActive && (*i)->getVehicleNumber() > 0) {
102 if ((*i)->getVehicleNumber() == 0 || (*i)->planMovements(t)) {
103 myLanes[(*i)->getNumericalID()].amActive =
false;
117 myLanes[(*i)->getNumericalID()].amActive =
false;
124 if ((*i)->integrateNewVehicle(t)) {
141 std::vector<MSLane*> toAdd;
145 MSEdge& edge = (*i)->getEdge();
149 const std::vector<MSLane*>& lanes = edge.
getLanes();
150 for (std::vector<MSLane*>::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
152 if ((*i)->getVehicleNumber() > 0 && !lu.
amActive) {
163 for (std::vector<MSLane*>::iterator i = toAdd.begin(); i != toAdd.end(); ++i) {
173 (*i)->detectCollisions(timestep, stage);
178 std::vector<std::string>
180 std::vector<std::string> ret;
181 for (std::vector<MSEdge*>::const_iterator i =
myEdges.begin(); i !=
myEdges.end(); ++i) {
182 ret.push_back((*i)->getID());