Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
RONet.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2002-2026 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
21// The router's network representation
22/****************************************************************************/
23#pragma once
24#include <config.h>
25
26#include <vector>
32#include "ROLane.h"
33#include "RORoutable.h"
34#include "RORouteDef.h"
35
36#ifdef HAVE_FOX
38#endif
39
40
41// ===========================================================================
42// class declarations
43// ===========================================================================
44class ROEdge;
45class RONode;
46class ROPerson;
47class ROVehicle;
49class OptionsCont;
50class OutputDevice;
51
53
54// ===========================================================================
55// class definitions
56// ===========================================================================
63class RONet {
64public:
65
66 typedef std::map<const SUMOTime, std::vector<RORoutable*> > RoutablesMap;
67 typedef std::map<const ROEdge*, RouterProhibition> Prohibitions;
68 typedef std::map<const ROLane*, RouterProhibition> LaneProhibitions;
69
71 RONet();
72
73
77 static RONet* getInstance();
78
79
81 virtual ~RONet();
82
83
89 void addSpeedRestriction(const std::string& id, const SUMOVehicleClass svc, const double speed);
90
91
97 const std::map<SUMOVehicleClass, double>* getRestrictions(const std::string& id) const;
98
99 bool hasSpeedRestrictions() const {
100 return !mySpeedRestrictions.empty();
101 }
102
103 bool hasParamRestrictions() const {
105 }
106
110
112 double getPreference(const std::string& routingType, const SUMOVTypeParameter& pars) const;
113
115 void addPreference(const std::string& routingType, SUMOVehicleClass svc, double prio);
117 void addPreference(const std::string& routingType, std::string vType, double prio);
118
120
121
122 /* @brief Adds a read edge to the network
123 *
124 * If the edge is already known (another one with the same id exists),
125 * an error is generated and given to msg-error-handler. The edge
126 * is deleted in this case and false is returned.
127 *
128 * @param[in] edge The edge to add
129 * @return Whether the edge was added (if not, it was deleted, too)
130 */
131 virtual bool addEdge(ROEdge* edge);
132
133
134 /* @brief Adds a district and connecting edges to the network
135 *
136 * If the district is already known (another one with the same id exists),
137 * an error is generated and given to msg-error-handler. The edges
138 * are deleted in this case and false is returned.
139 *
140 * @param[in] id The district to add
141 * @return Whether the district was added
142 */
143 bool addDistrict(const std::string id, ROEdge* source, ROEdge* sink);
144
145
146 /* @brief Adds a district and connecting edges to the network
147 *
148 * If the district is already known (another one with the same id exists),
149 * an error is generated and given to msg-error-handler. The edges
150 * are deleted in this case and false is returned.
151 *
152 * @param[in] id The district to add
153 * @return Whether the district was added
154 */
155 bool addDistrictEdge(const std::string tazID, const std::string edgeID, const bool isSource);
156
159
161 void setBidiEdges(const std::map<ROEdge*, std::string>& bidiMap);
162
167 const std::map<std::string, std::pair<std::vector<std::string>, std::vector<std::string> > >& getDistricts() const {
168 return myDistricts;
169 }
170
179 ROEdge* getEdge(const std::string& name) const {
180 return myEdges.get(name);
181 }
182
183
189 ROEdge* getEdgeForLaneID(const std::string& laneID) const;
190
196 ROLane* getLane(const std::string& laneID) const;
197
198 /* @brief Adds a read node to the network
199 *
200 * If the node is already known (another one with the same id exists),
201 * an error is generated and given to msg-error-handler. The node
202 * is deleted in this case
203 *
204 * @param[in] node The node to add
205 */
206 void addNode(RONode* node);
207
208
215 RONode* getNode(const std::string& id) const {
216 return myNodes.get(id);
217 }
218
219
220 /* @brief Adds a read stopping place (bus, train, container, parking) to the network
221 *
222 * If the place is already known (another one with the same id and category exists),
223 * an error is generated and given to msg-error-handler. The stop
224 * is deleted in this case
225 *
226 * @param[in] id The name of the stop to add
227 * @param[in] category The type of stop
228 * @param[in] stop The detailed stop description
229 */
230 void addStoppingPlace(const std::string& id, const SumoXMLTag category, SUMOVehicleParameter::Stop* stop);
231
238 const SUMOVehicleParameter::Stop* getStoppingPlace(const std::string& id, const SumoXMLTag category) const {
239 if (myStoppingPlaces.count(category) > 0) {
240 return myStoppingPlaces.find(category)->second.get(id);
241 }
242 return 0;
243 }
244
246 const std::string getStoppingPlaceName(const std::string& id) const;
247
249 const std::string getStoppingPlaceElement(const std::string& id) const;
251
252
253
255
256
263 bool checkVType(const std::string& id);
264
265
275 virtual bool addVehicleType(SUMOVTypeParameter* type);
276
277
291 bool addVTypeDistribution(const std::string& id, RandomDistributor<SUMOVTypeParameter*>* vehTypeDistribution);
292
293
303 const auto it = myVTypeDistDict.find(id);
304 return it != myVTypeDistDict.end() ? it ->second : nullptr;
305 }
306
307
317 SUMOVTypeParameter* getVehicleTypeSecure(const std::string& id);
318
319
320 /* @brief Adds a route definition to the network
321 *
322 * If the route definition is already known (another one with
323 * the same id exists), false is returned, but the route definition
324 * is not deleted.
325 *
326 * @param[in] def The route definition to add
327 * @return Whether the route definition could be added
328 * @todo Rename myRoutes to myRouteDefinitions
329 */
330 bool addRouteDef(RORouteDef* def);
331
332
340 RORouteDef* getRouteDef(const std::string& name) const {
341 return myRoutes.get(name);
342 }
343
344
345 /* @brief Adds a vehicle to the network
346 *
347 * If the vehicle is already known (another one with the same id
348 * exists), false is returned, but the vehicle is not deleted.
349 *
350 * Otherwise, the number of loaded routes ("myReadRouteNo") is increased.
351 *
352 * @param[in] id The id of the vehicle to add
353 * @param[in] veh The vehicle to add
354 * @return Whether the vehicle could be added
355 */
356 virtual bool addVehicle(const std::string& id, ROVehicle* veh);
357
359 bool knowsVehicle(const std::string& id) const;
360
362 bool knowsVType(const std::string& id) const;
363
365 SUMOTime getDeparture(const std::string& vehID) const;
366
367 /* @brief Adds a flow of vehicles to the network
368 *
369 * If the flow is already known (another one with the same id
370 * exists), false is returned, but the vehicle parameter are not deleted.
371 *
372 * Otherwise, the number of loaded routes ("myReadRouteNo") is increased.
373 *
374 * @param[in] flow The parameter of the flow to add
375 * @return Whether the flow could be added
376 */
377 bool addFlow(SUMOVehicleParameter* flow, const bool randomize);
378
379
380 /* @brief Adds a person to the network
381 *
382 * @param[in] person The person to add
383 */
384 bool addPerson(ROPerson* person);
385
386
387 /* @brief Adds a container to the network
388 *
389 * @param[in] depart The departure time of the container
390 * @param[in] desc The xml description of the container
391 */
392 void addContainer(const SUMOTime depart, const std::string desc);
393 // @}
394
395
397
398
411 const RORouterProvider& provider, SUMOTime time);
412
413
415 bool furtherStored();
416
419 myHaveSkippedRoutes = true;
420 }
421
422 bool haveSkippedRoutes() const {
423 return myHaveSkippedRoutes;
424 }
425
426 bool haveProcessedRoutes() const {
428 }
430
431
438 void openOutput(const OptionsCont& options);
439
440
447 void writeIntermodal(const OptionsCont& options, ROIntermodalRouter& router) const;
448
449
451 void cleanup();
452
453
455 int getEdgeNumber() const;
456
458 int getInternalEdgeNumber() const;
459
461 return myEdges;
462 }
463
464 static void adaptIntermodalRouter(ROIntermodalRouter& router);
465
466 bool hasPermissions() const;
467
468 void setPermissionsFound();
469
471 bool hasBidiEdges() const {
472 return myHasBidiEdges;
473 }
474
476 bool hasLoadedEffort() const;
477
478 double getMaxTraveltime() const {
479 return myMaxTraveltime;
480 }
481
482 bool hasProhibitions() const {
483 return !myProhibitions.empty() || !myLaneProhibitions.empty();
484 }
485
487 return myProhibitions;
488 }
489
491
492 void addProhibition(const ROEdge* edge, const RouterProhibition& prohibition);
493 void addLaneProhibition(const ROLane* lane, const RouterProhibition& prohibition);
494
495 OutputDevice* getRouteOutput(const bool alternative = false) {
496 if (alternative) {
498 }
499 return myRoutesOutput;
500 }
501
502#ifdef HAVE_FOX
503 MFXWorkerThread::Pool& getThreadPool() {
504 return myThreadPool;
505 }
506
507 class WorkerThread : public MFXWorkerThread, public RORouterProvider {
508 public:
509 WorkerThread(MFXWorkerThread::Pool& pool,
510 const RORouterProvider& original)
511 : MFXWorkerThread(pool), RORouterProvider(original) {}
512 virtual ~WorkerThread() {
513 stop();
514 }
515 };
516
517 class BulkmodeTask : public MFXWorkerThread::Task {
518 public:
519 BulkmodeTask(const bool value) : myValue(value) {}
520 void run(MFXWorkerThread* context) {
521 static_cast<WorkerThread*>(context)->setBulkMode(myValue);
522 }
523 private:
524 const bool myValue;
525 private:
527 BulkmodeTask& operator=(const BulkmodeTask&);
528 };
529#endif
530
531
532private:
533 void checkFlows(SUMOTime time, MsgHandler* errorHandler);
534
535 void createBulkRouteRequests(const RORouterProvider& provider, const SUMOTime time, const bool removeLoops);
536
537private:
540
542 std::map<std::string, SUMOTime> myVehIDs;
543
545 std::set<std::string> myPersonIDs;
546
549
552
554 std::map<SumoXMLTag, NamedObjectCont<SUMOVehicleParameter::Stop*> > myStoppingPlaces;
555
558
560 typedef std::map< std::string, RandomDistributor<SUMOVTypeParameter*>* > VTypeDistDictType;
563
566
569
572
575
578
581
584
587
590
592 typedef std::multimap<const SUMOTime, const std::string> ContainerMap;
594
596 std::vector<const RORoutable*> myPTVehicles;
597
599 std::map<std::string, std::vector<SUMOTime> > myDepartures;
600
602 std::map<std::string, std::pair<std::vector<std::string>, std::vector<std::string> > > myDistricts;
603
606
609
612
615
618
621
625
628
630 std::map<std::string, std::map<SUMOVehicleClass, double> > mySpeedRestrictions;
631
634
636 std::map<SUMOVehicleClass, std::map<std::string, double> > myVClassPreferences;
637 std::map<std::string, std::map<std::string, double> > myVTypePreferences;
638
641
644
646 const bool myKeepVTypeDist;
647
649 const bool myDoPTRouting;
650
652 const bool myKeepFlows;
653
656
658 const double myMaxTraveltime;
659
664 std::map<double, std::set<const ROLane*> > myLaneProhibitionTimes;
665
666#ifdef HAVE_FOX
667private:
668 class RoutingTask : public MFXWorkerThread::Task {
669 public:
670 RoutingTask(RORoutable* v, const bool removeLoops, MsgHandler* errorHandler)
671 : myRoutable(v), myRemoveLoops(removeLoops), myErrorHandler(errorHandler) {}
672 void run(MFXWorkerThread* context);
673 private:
674 RORoutable* const myRoutable;
675 const bool myRemoveLoops;
676 MsgHandler* const myErrorHandler;
677 private:
679 RoutingTask& operator=(const RoutingTask&);
680 };
681
682
683private:
685 MFXWorkerThread::Pool myThreadPool;
686#endif
687
688private:
690 RONet(const RONet& src);
691
693 RONet& operator=(const RONet& src);
694
695};
long long int SUMOTime
Definition GUI.h:36
MapMatcher< ROEdge, ROLane, RONode > ROMapMatcher
Definition RONet.h:52
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
SumoXMLTag
Numbers representing SUMO-XML - element names.
A pool of worker threads which distributes the tasks and collects the results.
Abstract superclass of a task to be run with an index to keep track of pending tasks.
A thread repeatingly calculating incoming tasks.
Provides utility functions for matching locations to edges (during route parsing)
Definition MapMatcher.h:45
A map of named object pointers.
T get(const std::string &id) const
Retrieves an item.
A storage for options typed value containers)
Definition OptionsCont.h:89
Static storage of an output device and its base (abstract) implementation.
Interface for building instances of router-edges.
A basic edge for routing applications.
Definition ROEdge.h:73
A single lane the router may use.
Definition ROLane.h:48
The router's network representation.
Definition RONet.h:63
bool knowsVType(const std::string &id) const
returns whether a vehicle type or distribution with the given id was already loaded
Definition RONet.cpp:540
void createBulkRouteRequests(const RORouterProvider &provider, const SUMOTime time, const bool removeLoops)
Definition RONet.cpp:706
SUMOVTypeParameter * getVehicleTypeSecure(const std::string &id)
Retrieves the named vehicle type.
Definition RONet.cpp:410
bool haveSkippedRoutes() const
Definition RONet.h:422
static RONet * getInstance()
Returns the pointer to the unique instance of RONet (singleton).
Definition RONet.cpp:56
bool myHaveProcessedRoutes
Definition RONet.h:624
std::map< const ROLane *, RouterProhibition > LaneProhibitions
Definition RONet.h:68
int myNumInternalEdges
The number of internal edges in the dictionary.
Definition RONet.h:640
bool myDefaultPedTypeMayBeDeleted
Whether the default pedestrian type was already used or can still be replaced.
Definition RONet.h:568
bool hasBidiEdges() const
return whether the network contains bidirectional rail edges
Definition RONet.h:471
void setPermissionsFound()
Definition RONet.cpp:957
void updateLaneProhibitions(SUMOTime begin)
Definition RONet.cpp:1019
bool myDefaultRailTypeMayBeDeleted
Whether the default rail type was already used or can still be replaced.
Definition RONet.h:577
std::map< const ROEdge *, RouterProhibition > Prohibitions
Definition RONet.h:67
bool myHaveSkippedRoutes
Whether traffic was excluded by the begin time or processed for output.
Definition RONet.h:623
std::map< std::string, std::map< SUMOVehicleClass, double > > mySpeedRestrictions
The vehicle class specific speed restrictions.
Definition RONet.h:630
std::map< const SUMOTime, std::vector< RORoutable * > > RoutablesMap
Definition RONet.h:66
bool myDefaultVTypeMayBeDeleted
Whether the default vehicle type was already used or can still be replaced.
Definition RONet.h:565
bool hasProhibitions() const
Definition RONet.h:482
void checkFlows(SUMOTime time, MsgHandler *errorHandler)
Definition RONet.cpp:597
std::map< SUMOVehicleClass, std::map< std::string, double > > myVClassPreferences
Preferences for routing.
Definition RONet.h:636
std::map< double, std::set< const ROLane * > > myLaneProhibitionTimes
Definition RONet.h:664
RONode * getNode(const std::string &id) const
Retrieves an node from the network.
Definition RONet.h:215
const std::map< SUMOVehicleClass, double > * getRestrictions(const std::string &id) const
Returns the restrictions for an edge type If no restrictions are present, 0 is returned.
Definition RONet.cpp:199
std::map< std::string, RandomDistributor< SUMOVTypeParameter * > * > VTypeDistDictType
Vehicle type distribution dictionary type.
Definition RONet.h:560
const RandomDistributor< SUMOVTypeParameter * > * getVTypeDistribution(const std::string &id)
Retrieves the named vehicle type distribution.
Definition RONet.h:302
double getPreference(const std::string &routingType, const SUMOVTypeParameter &pars) const
retriefe edge type specific routing preference
Definition RONet.cpp:154
ContainerMap myContainers
Definition RONet.h:593
std::set< std::string > myPersonIDs
Known person ids.
Definition RONet.h:545
std::map< std::string, std::pair< std::vector< std::string >, std::vector< std::string > > > myDistricts
traffic assignment zones with sources and sinks
Definition RONet.h:602
bool addRouteDef(RORouteDef *def)
Definition RONet.cpp:335
int myReadRouteNo
The number of read routes.
Definition RONet.h:614
void addStoppingPlace(const std::string &id, const SumoXMLTag category, SUMOVehicleParameter::Stop *stop)
Definition RONet.cpp:326
bool knowsVehicle(const std::string &id) const
returns whether a vehicle with the given id was already loaded
Definition RONet.cpp:534
void cleanup()
closes the file output for computed routes and deletes associated threads if necessary
Definition RONet.cpp:386
bool myHaveActiveFlows
whether any flows are still active
Definition RONet.h:589
RONet(const RONet &src)
Invalidated copy constructor.
std::map< std::string, SUMOTime > myVehIDs
Known vehicle ids and their departure.
Definition RONet.h:542
void openOutput(const OptionsCont &options)
Opens the output for computed routes.
Definition RONet.cpp:341
NamedObjectCont< SUMOVehicleParameter * > myFlows
Known flows.
Definition RONet.h:586
double getMaxTraveltime() const
Definition RONet.h:478
OutputDevice * myRouteAlternativesOutput
The file to write the computed route alternatives into.
Definition RONet.h:608
bool myDefaultBikeTypeMayBeDeleted
Whether the default bicycle type was already used or can still be replaced.
Definition RONet.h:571
RoutablesMap myRoutables
Known routables.
Definition RONet.h:583
int getInternalEdgeNumber() const
Returns the number of internal edges the network contains.
Definition RONet.cpp:887
virtual bool addVehicle(const std::string &id, ROVehicle *veh)
Definition RONet.cpp:512
SUMOTime getDeparture(const std::string &vehID) const
returns departure time for the given vehicle id
Definition RONet.cpp:546
OutputDevice * getRouteOutput(const bool alternative=false)
Definition RONet.h:495
bool myHasBidiEdges
whether the network contains bidirectional railway edges
Definition RONet.h:655
bool addDistrictEdge(const std::string tazID, const std::string edgeID, const bool isSource)
Definition RONet.cpp:246
void addSpeedRestriction(const std::string &id, const SUMOVehicleClass svc, const double speed)
Adds a restriction for an edge type.
Definition RONet.cpp:148
MsgHandler * myErrorHandler
handler for ignorable error messages
Definition RONet.h:643
void writeIntermodal(const OptionsCont &options, ROIntermodalRouter &router) const
Writes the intermodal network and weights if requested.
Definition RONet.cpp:367
RONet()
Constructor.
Definition RONet.cpp:64
NamedObjectCont< RONode * > myNodes
Known nodes.
Definition RONet.h:548
const std::string getStoppingPlaceElement(const std::string &id) const
return the element name for the given stopping place id
Definition RONet.cpp:984
const SUMOVehicleParameter::Stop * getStoppingPlace(const std::string &id, const SumoXMLTag category) const
Retrieves a stopping place from the network.
Definition RONet.h:238
void addContainer(const SUMOTime depart, const std::string desc)
Definition RONet.cpp:591
bool hasParamRestrictions() const
Definition RONet.h:103
void addProhibition(const ROEdge *edge, const RouterProhibition &prohibition)
Definition RONet.cpp:997
static void adaptIntermodalRouter(ROIntermodalRouter &router)
Definition RONet.cpp:906
ROEdge * getEdge(const std::string &name) const
Retrieves an edge from the network.
Definition RONet.h:179
NamedObjectCont< RORouteDef * > myRoutes
Known routes.
Definition RONet.h:580
bool hasSpeedRestrictions() const
Definition RONet.h:99
bool furtherStored()
Returns the information whether further vehicles, persons or containers are stored.
Definition RONet.cpp:875
bool checkVType(const std::string &id)
Checks whether the vehicle type (distribution) may be added.
Definition RONet.cpp:442
OutputDevice * myRoutesOutput
The file to write the computed routes into.
Definition RONet.h:605
bool addPerson(ROPerson *person)
Definition RONet.cpp:579
int myWrittenRouteNo
The number of written routes.
Definition RONet.h:620
static RONet * myInstance
Unique instance of RONet.
Definition RONet.h:539
RORouteDef * getRouteDef(const std::string &name) const
Returns the named route definition.
Definition RONet.h:340
void setParamRestrictions()
Definition RONet.h:107
SUMOTime saveAndRemoveRoutesUntil(OptionsCont &options, const RORouterProvider &provider, SUMOTime time)
Computes routes described by their definitions and saves them.
Definition RONet.cpp:761
void addLaneProhibition(const ROLane *lane, const RouterProhibition &prohibition)
Definition RONet.cpp:1007
virtual bool addEdge(ROEdge *edge)
Definition RONet.cpp:209
bool myDefaultTaxiTypeMayBeDeleted
Whether the default taxi type was already used or can still be replaced.
Definition RONet.h:574
std::map< SumoXMLTag, NamedObjectCont< SUMOVehicleParameter::Stop * > > myStoppingPlaces
Known bus / train / container stops and parking areas.
Definition RONet.h:554
virtual bool addVehicleType(SUMOVTypeParameter *type)
Adds a read vehicle type definition to the network.
Definition RONet.cpp:488
bool myHaveParamRestrictions
whether parameter-based access restrictions are configured
Definition RONet.h:633
bool myHavePermissions
Whether the network contains edges which not all vehicles may pass.
Definition RONet.h:627
bool hasPermissions() const
Definition RONet.cpp:951
void setBidiEdges(const std::map< ROEdge *, std::string > &bidiMap)
add a taz for every junction unless a taz with the same id already exists
Definition RONet.cpp:304
ROLane * getLane(const std::string &laneID) const
Retrieves a lane rom the network given its id.
Definition RONet.cpp:899
std::multimap< const SUMOTime, const std::string > ContainerMap
Known containers.
Definition RONet.h:592
int myDiscardedRouteNo
The number of discarded routes.
Definition RONet.h:617
const std::map< std::string, std::pair< std::vector< std::string >, std::vector< std::string > > > & getDistricts() const
Retrieves all TAZ (districts) from the network.
Definition RONet.h:167
VTypeDistDictType myVTypeDistDict
A distribution of vehicle types (probability->vehicle type)
Definition RONet.h:562
std::vector< const RORoutable * > myPTVehicles
vehicles to keep for public transport routing
Definition RONet.h:596
NamedObjectCont< ROEdge * > myEdges
Known edges.
Definition RONet.h:551
LaneProhibitions myLaneProhibitions
temporary lane closing (rerouters)
Definition RONet.h:663
void addNode(RONode *node)
Definition RONet.cpp:317
bool addVTypeDistribution(const std::string &id, RandomDistributor< SUMOVTypeParameter * > *vehTypeDistribution)
Adds a vehicle type distribution.
Definition RONet.cpp:501
void addJunctionTaz(ROAbstractEdgeBuilder &eb)
add a taz for every junction unless a taz with the same id already exists
Definition RONet.cpp:268
bool haveProcessedRoutes() const
Definition RONet.h:426
OutputDevice * myTypesOutput
The file to write the vehicle types into.
Definition RONet.h:611
const Prohibitions & getProhibitions() const
Definition RONet.h:486
const bool myKeepFlows
whether to preserve flows
Definition RONet.h:652
const bool myDoPTRouting
whether to calculate routes for public transport
Definition RONet.h:649
Prohibitions myProhibitions
temporary edge closing (rerouters)
Definition RONet.h:661
const bool myKeepVTypeDist
whether to keep the vtype distribution in output
Definition RONet.h:646
virtual ~RONet()
Destructor.
Definition RONet.cpp:117
const std::string getStoppingPlaceName(const std::string &id) const
return the name for the given stopping place id
Definition RONet.cpp:972
std::map< std::string, std::vector< SUMOTime > > myDepartures
Departure times for randomized flows.
Definition RONet.h:599
RONet & operator=(const RONet &src)
Invalidated assignment operator.
int getEdgeNumber() const
Returns the total number of edges the network contains including internal edges.
Definition RONet.cpp:881
void routeSkipped()
Record routes excluded by the begin time.
Definition RONet.h:418
const NamedObjectCont< ROEdge * > & getEdgeMap() const
Definition RONet.h:460
ROEdge * getEdgeForLaneID(const std::string &laneID) const
Retrieves an edge from the network when the lane id is given.
Definition RONet.cpp:893
std::map< std::string, std::map< std::string, double > > myVTypePreferences
Definition RONet.h:637
bool addFlow(SUMOVehicleParameter *flow, const bool randomize)
Definition RONet.cpp:557
bool hasLoadedEffort() const
whether efforts were loaded from file
Definition RONet.cpp:962
const double myMaxTraveltime
the maximum traveltime beyond which routing is considered a failure
Definition RONet.h:658
void addPreference(const std::string &routingType, SUMOVehicleClass svc, double prio)
add edge type specific routing preference
Definition RONet.cpp:184
NamedObjectCont< SUMOVTypeParameter * > myVehicleTypes
Known vehicle types.
Definition RONet.h:557
bool addDistrict(const std::string id, ROEdge *source, ROEdge *sink)
Definition RONet.cpp:223
Base class for nodes used by the router.
Definition RONode.h:46
A person as used by router.
Definition ROPerson.h:50
A routable thing such as a vehicle or person.
Definition RORoutable.h:53
Base class for a vehicle's route definition.
Definition RORouteDef.h:54
A vehicle as used by router.
Definition ROVehicle.h:51
Represents a generic random distribution.
Structure representing possible vehicle parameter.
Definition of vehicle stop (position and duration)
Structure representing possible vehicle parameter.
unsigned node
@ value
the parser finished reading a JSON value
Prohibitions and their estimated end time.