void ROPerson::computeRoute(const RORouterProvider& provider, const bool /* removeLoops */, MsgHandler* errorHandler) { myRoutingSuccess = true; for (std::vector<PlanItem*>::iterator it = myPlan.begin(); it != myPlan.end(); ++it) { if ((*it)->needsRouting()) { PersonTrip* trip = static_cast<PersonTrip*>(*it); ConstROEdgeVector edges; std::vector<ROVehicle*>& vehicles = trip->getVehicles(); if (vehicles.empty()) { computeIntermodal(provider, trip, 0, errorHandler); } else { for (std::vector<ROVehicle*>::iterator v = vehicles.begin(); v != vehicles.end();) { if (!computeIntermodal(provider, trip, *v, errorHandler)) { v = vehicles.erase(v); } else { ++v; } } } } } }
void ROPerson::computeRoute(const RORouterProvider& provider, const bool /* removeLoops */, MsgHandler* errorHandler) { myRoutingSuccess = true; SUMOTime time = getParameter().depart; for (std::vector<PlanItem*>::iterator it = myPlan.begin(); it != myPlan.end(); ++it) { if ((*it)->needsRouting()) { PersonTrip* trip = static_cast<PersonTrip*>(*it); std::vector<ROVehicle*>& vehicles = trip->getVehicles(); if (vehicles.empty()) { computeIntermodal(time, provider, trip, nullptr, errorHandler); } else { for (std::vector<ROVehicle*>::iterator v = vehicles.begin(); v != vehicles.end();) { if (!computeIntermodal(time, provider, trip, *v, errorHandler)) { v = vehicles.erase(v); } else { ++v; } } } } time += (*it)->getDuration(); } }