102 std::shared_ptr<StopPathNode>
prev =
nullptr;
104 std::shared_ptr<StopPathNode>
getSuccessor(
const std::vector<StopEdgeInfo>& stops,
double minSkipped);
125 const std::shared_ptr<StopPathNode>& b)
const {
126 if (a->skippedPrio == b->skippedPrio) {
127 if (a->stopIndex == b->stopIndex) {
130 return a->stopIndex < b->stopIndex;
132 return a->skippedPrio > b->skippedPrio;
137 const MSEdge* to,
double toPos,
std::vector< const MSEdge * > ConstMSEdgeVector
MSBaseVehicle::StopEdgeInfo StopEdgeInfo
The base class for microscopic and mesoscopic vehicles.
A road/street connecting two junctions.
Finds a sequence of skips and stop alternatives to maximize priority of reached stops.
MSStopOptimizer(MSBaseVehicle *veh, SUMOAbstractRouter< MSEdge, SUMOVehicle > &router, SUMOTime t, SUMOTime maxDelay)
Constructor.
SUMOAbstractRouter< MSEdge, SUMOVehicle > & myRouter
ConstMSEdgeVector optimizeSkipped(const MSEdge *source, double sourcePos, std::vector< StopEdgeInfo > &stops, ConstMSEdgeVector edges) const
bool reachableInTime(const MSEdge *from, double fromPos, const MSEdge *to, double toPos, SUMOTime arrival, ConstMSEdgeVector &into, double &cost) const
virtual ~MSStopOptimizer()
Destructor.
MSBaseVehicle * myVehicle
std::pair< std::string, SumoXMLTag > nameTag
optional info about stopping place
int routeIndex
values set during routing and used during optimization
information used during skip/alternative optimization
const MSStopOptimizer & so
std::shared_ptr< StopPathNode > prev
std::shared_ptr< StopPathNode > getSuccessor(const std::vector< StopEdgeInfo > &stops, double minSkipped)
bool operator<(const StopPathNode &b) const
StopPathNode(const MSStopOptimizer &_so, const StopEdgeInfo &o)
bool operator()(const std::shared_ptr< StopPathNode > &a, const std::shared_ptr< StopPathNode > &b) const