MSVehicle * MSLane::removeFirstVehicle() { MSVehicle *veh = *(myVehicles.end()-1); veh->leaveLaneAtMove(0); myVehicles.erase(myVehicles.end()-1); myVehicleLengthSum -= veh->getVehicleType().getLength(); return veh; }
//TODO: refactor out? only called by setCritical for getting the leader (last veh of lane) MSVehicle* MSLane::pop(SUMOTime) { assert(! myVehicles.empty()); MSVehicle* first = myVehicles.back(); first->leaveLaneAtMove(SPEED2DIST(first->getSpeed())/* - first->pos()*/); myVehicles.pop_back(); myVehicleLengthSum -= first->getVehicleType().getLength(); return first; }