SUMO - Simulation of Urban MObility
MSNet.h
Go to the documentation of this file.
1 /****************************************************************************/
13 // The simulated network and simulation perfomer
14 /****************************************************************************/
15 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
16 // Copyright (C) 2001-2017 DLR (http://www.dlr.de/) and contributors
17 /****************************************************************************/
18 //
19 // This file is part of SUMO.
20 // SUMO is free software: you can redistribute it and/or modify
21 // it under the terms of the GNU General Public License as published by
22 // the Free Software Foundation, either version 3 of the License, or
23 // (at your option) any later version.
24 //
25 /****************************************************************************/
26 #ifndef MSNet_h
27 #define MSNet_h
28 
29 
30 // ===========================================================================
31 // included modules
32 // ===========================================================================
33 #ifdef _MSC_VER
34 #include <windows_config.h>
35 #else
36 #include <config.h>
37 #endif
38 
39 #include <typeinfo>
40 #include <vector>
41 #include <map>
42 #include <string>
43 #include <fstream>
44 #include <iostream>
45 #include <cmath>
46 #include <iomanip>
47 #include <utils/common/SUMOTime.h>
54 #include "MSParkingArea.h"
55 #include "MSStoppingPlace.h"
56 
57 
58 // ===========================================================================
59 // class declarations
60 // ===========================================================================
61 class MSEdge;
62 class MSJunction;
63 class MSEdgeControl;
64 class MSEventControl;
65 class MSVehicleControl;
66 class MSJunctionControl;
67 class MSInsertionControl;
70 class MSVehicle;
71 class MSRoute;
72 class MSLane;
73 class MSTLLogicControl;
74 class MSDetectorControl;
75 class ShapeContainer;
76 class BinaryInputDevice;
79 
80 typedef std::vector<MSEdge*> MSEdgeVector;
81 
82 // ===========================================================================
83 // class definitions
84 // ===========================================================================
89 class MSNet {
90 public:
109  };
110 
111  //typedef PedestrianRouterDijkstra<MSEdge, MSLane> MSPedestrianRouterDijkstra;
113 
114 
115 
116 public:
121  static MSNet* getInstance();
122 
123 
138  MSNet(MSVehicleControl* vc, MSEventControl* beginOfTimestepEvents,
139  MSEventControl* endOfTimestepEvents, MSEventControl* insertionEvents,
140  ShapeContainer* shapeCont = 0);
141 
142 
144  virtual ~MSNet();
145 
146 
162  void closeBuilding(const OptionsCont& oc, MSEdgeControl* edges, MSJunctionControl* junctions,
163  SUMORouteLoaderControl* routeLoaders, MSTLLogicControl* tlc,
164  std::vector<SUMOTime> stateDumpTimes, std::vector<std::string> stateDumpFiles,
165  bool hasInternalLinks, bool hasNeighs, bool lefthand,
166  double version);
167 
168 
172  bool hasPermissions() const {
173  return myHavePermissions;
174  }
175 
176 
179  myHavePermissions = true;
180  }
181 
182 
188  void addRestriction(const std::string& id, const SUMOVehicleClass svc, const double speed);
189 
190 
196  const std::map<SUMOVehicleClass, double>* getRestrictions(const std::string& id) const;
197 
198 
202  static void clearAll();
203 
204 
213 
214 
218  void simulationStep();
219 
220 
222  void loadRoutes();
223 
224 
232  void closeSimulation(SUMOTime start);
233 
234 
240  SimulationState simulationState(SUMOTime stopTime) const;
241 
242 
246  static std::string getStateMessage(SimulationState state);
247 
248 
252  inline SUMOTime getCurrentTimeStep() const {
253  return myStep;
254  }
255 
256 
260  inline void setCurrentTimeStep(const SUMOTime step) {
261  myStep = step;
262  }
263 
264 
268  void writeOutput();
269 
270 
274  bool logSimulationDuration() const;
275 
276 
277 
279 
280 
285  void preSimStepOutput() const;
286 
287 
292  void postSimStepOutput() const;
293  //}
294 
295 
296 
299 
306  return *myVehicleControl;
307  }
308 
309 
319 
322  bool hasPersons() const {
323  return myPersonControl != 0;
324  }
325 
335 
338  bool hasContainers() const {
339  return myContainerControl != 0;
340  }
341 
342 
349  return *myEdges;
350  }
351 
352 
359  return *myInserter;
360  }
361 
362 
369  return *myDetectorControl;
370  }
371 
372 
379  return *myLogics;
380  }
381 
382 
389  return *myJunctions;
390  }
391 
392 
400  }
401 
402 
409  return myEndOfTimestepEvents;
410  }
411 
412 
419  return myInsertionEvents;
420  }
421 
422 
429  return *myShapeContainer;
430  }
431 
439 
442 
454  bool addBusStop(MSStoppingPlace* busStop);
455 
456 
461  MSStoppingPlace* getBusStop(const std::string& id) const;
462 
463 
469  std::string getBusStopID(const MSLane* lane, const double pos) const;
471 
472 
475 
487  bool addContainerStop(MSStoppingPlace* containerStop);
488 
493  MSStoppingPlace* getContainerStop(const std::string& id) const;
494 
500  std::string getContainerStopID(const MSLane* lane, const double pos) const;
502 
505 
517  bool addParkingArea(MSParkingArea* parkingArea);
518 
523  MSParkingArea* getParkingArea(const std::string& id) const;
524 
530  std::string getParkingAreaID(const MSLane* lane, const double pos) const;
532 
535 
547  bool addChargingStation(MSChargingStation* chargingStation);
548 
553  MSChargingStation* getChargingStation(const std::string& id) const;
554 
560  std::string getChargingStationID(const MSLane* lane, const double pos) const;
561 
563  void writeChargingStationOutput() const;
565 
566 
569 
592  };
593 
594 
599  public:
602 
604  virtual ~VehicleStateListener() { }
605 
610  virtual void vehicleStateChanged(const SUMOVehicle* const vehicle, VehicleState to) = 0;
611 
612  };
613 
614 
619 
620 
625 
626 
632  void informVehicleStateListener(const SUMOVehicle* const vehicle, VehicleState to);
634 
635 
636 
644  static double getTravelTime(const MSEdge* const e, const SUMOVehicle* const v, double t);
645 
646 
654  static double getEffort(const MSEdge* const e, const SUMOVehicle* const v, double t);
655 
656 
657  /* @brief get the router, initialize on first use
658  * @param[in] prohibited The vector of forbidden edges (optional)
659  */
661  const MSEdgeVector& prohibited = MSEdgeVector()) const;
663  const MSEdgeVector& prohibited = MSEdgeVector()) const;
664  MSPedestrianRouterDijkstra& getPedestrianRouter(const MSEdgeVector& prohibited = MSEdgeVector()) const;
665 
666 
670  const NamedRTree& getLanesRTree() const;
671 
673  bool hasInternalLinks() const {
674  return myHasInternalLinks;
675  }
676 
678  bool hasNeighs() const {
679  return myHasNeighs;
680  }
681 
683  bool hasElevation() const {
684  return myHasElevation;
685  }
686 
688  bool lefthand() const {
689  return myLefthand;
690  }
691 
693  double version() const {
694  return myVersion;
695  }
696 
697 protected:
699  bool checkElevation();
700 
702  int getHaltingVehicleNumber() const;
703 
705  std::pair<double, double> getVehicleMeanSpeeds() const;
706  double getVehicleMeanSpeed() const {
707  return getVehicleMeanSpeeds().first;
708  }
710  return getVehicleMeanSpeeds().second;
711  }
712 
713 protected:
715  static MSNet* myInstance;
716 
719 
722 
725 
726 
727 
730 
758 
759 
760 
763 
766 
769 
772 
775 
777  long long int myVehiclesMoved;
778  //}
779 
780 
781 
784 
786  std::vector<SUMOTime> myStateDumpTimes;
788  std::vector<std::string> myStateDumpFiles;
792  std::string myStateDumpPrefix;
793  std::string myStateDumpSuffix;
795 
796 
797 
800 
802  std::map<std::string, std::map<SUMOVehicleClass, double> > myRestrictions;
803 
806 
809 
812 
815 
817  double myVersion;
818 
821 
824 
827 
830 
832  std::vector<VehicleStateListener*> myVehicleStateListeners;
833 
834 
835  /* @brief The router instance for routing by trigger and by traci
836  * @note MSDevice_Routing has its own instance since it uses a different weight function
837  * @note we provide one member for every switchable router type
838  * because the class structure makes it inconvenient to use a superclass*/
841  mutable MSPedestrianRouterDijkstra* myPedestrianRouter;
842 
843 
845  mutable std::pair<bool, NamedRTree> myLanesRTree;
846 
847 
849  static const std::string STAGE_EVENTS;
850  static const std::string STAGE_MOVEMENTS;
851  static const std::string STAGE_LANECHANGE;
852  static const std::string STAGE_INSERTIONS;
853 
854 private:
856  MSNet(const MSNet&);
857 
859  MSNet& operator=(const MSNet&);
860 
861 
862 };
863 
864 
865 #endif
866 
867 /****************************************************************************/
868 
std::string myStateDumpSuffix
Definition: MSNet.h:793
The vehicle has departed (was inserted into the network)
Definition: MSNet.h:575
A lane area vehicles can halt at.
Definition: MSParkingArea.h:66
std::string getBusStopID(const MSLane *lane, const double pos) const
Returns the bus stop close to the given position.
Definition: MSNet.cpp:870
bool lefthand() const
return whether the network was built for lefthand traffic
Definition: MSNet.h:688
void postSimStepOutput() const
Prints the statistics of the step at its end.
Definition: MSNet.cpp:799
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:83
Interface for objects listening to vehicle state changes.
Definition: MSNet.h:598
void removeVehicleStateListener(VehicleStateListener *listener)
Removes a vehicle states listener.
Definition: MSNet.cpp:839
MSEventControl * myEndOfTimestepEvents
Controls events executed at the end of a time step;.
Definition: MSNet.h:750
NamedObjectCont< MSParkingArea * > myParkingAreaDict
Dictionary of parking areas.
Definition: MSNet.h:826
MSParkingArea * getParkingArea(const std::string &id) const
Returns the named parking area.
Definition: MSNet.cpp:911
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
A lane area vehicles can halt at.
std::string getParkingAreaID(const MSLane *lane, const double pos) const
Returns the parking area close to the given position.
Definition: MSNet.cpp:916
MSVehicleControl * myVehicleControl
Controls vehicle building and deletion;.
Definition: MSNet.h:732
std::vector< MSEdge * > MSEdgeVector
Definition: MSNet.h:78
bool hasPersons() const
Returns whether persons are simulated.
Definition: MSNet.h:322
std::vector< SUMOTime > myStateDumpTimes
Times at which a state shall be written.
Definition: MSNet.h:786
The base class for an intersection.
Definition: MSJunction.h:64
bool hasInternalLinks() const
return whether the network contains internal links
Definition: MSNet.h:673
SimulationState simulate(SUMOTime start, SUMOTime stop)
Simulates from timestep start to stop.
Definition: MSNet.cpp:312
SUMOAbstractRouter< MSEdge, SUMOVehicle > * myRouterEffort
Definition: MSNet.h:840
virtual void vehicleStateChanged(const SUMOVehicle *const vehicle, VehicleState to)=0
Called if a vehicle changes its state.
A RT-tree for efficient storing of SUMO&#39;s Named objects.
Definition: NamedRTree.h:72
MSPedestrianRouterDijkstra & getPedestrianRouter(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:993
std::pair< double, double > getVehicleMeanSpeeds() const
get current absolute and relative mean vehicle speed in the network
Definition: MSNet.cpp:1039
MSChargingStation * getChargingStation(const std::string &id) const
Returns the named charging station.
Definition: MSNet.cpp:934
bool addBusStop(MSStoppingPlace *busStop)
Adds a bus stop.
Definition: MSNet.cpp:858
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
Definition: MSNet.cpp:169
bool myHavePermissions
Whether the network contains edges which not all vehicles may pass.
Definition: MSNet.h:799
MSEdgeControl * myEdges
Controls edges, performs vehicle movement;.
Definition: MSNet.h:738
void setCurrentTimeStep(const SUMOTime step)
Sets the current simulation step (used by state loading)
Definition: MSNet.h:260
The final simulation step has been performed.
Definition: MSNet.h:100
double myVersion
the network version
Definition: MSNet.h:817
std::vector< std::string > myStateDumpFiles
The names for the state files.
Definition: MSNet.h:788
bool myLogExecutionTime
Information whether the simulation duration shall be logged.
Definition: MSNet.h:765
Storage for geometrical objects.
bool addParkingArea(MSParkingArea *parkingArea)
Adds a parking area.
Definition: MSNet.cpp:906
static const std::string STAGE_LANECHANGE
Definition: MSNet.h:851
NamedObjectCont< MSStoppingPlace * > myContainerStopDict
Dictionary of container stops.
Definition: MSNet.h:823
Detectors container; responsible for string and output generation.
bool myLefthand
Whether the network was built for left-hand traffic.
Definition: MSNet.h:814
A storage for edge travel times and efforts.
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
Definition: MSNet.h:252
void addVehicleStateListener(VehicleStateListener *listener)
Adds a vehicle states listener.
Definition: MSNet.cpp:831
SimulationState
Possible states of a simulation - running or stopped with different reasons.
Definition: MSNet.h:94
MSPedestrianRouterDijkstra * myPedestrianRouter
Definition: MSNet.h:841
The simulated network and simulation perfomer.
Definition: MSNet.h:89
ShapeContainer * myShapeContainer
A container for geometrical shapes;.
Definition: MSNet.h:754
std::pair< bool, NamedRTree > myLanesRTree
An RTree structure holding lane IDs.
Definition: MSNet.h:845
Container for junctions; performs operations on all stored junctions.
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: MSNet.cpp:302
virtual MSTransportableControl & getContainerControl()
Returns the container control.
Definition: MSNet.cpp:775
The vehicles starts to stop.
Definition: MSNet.h:589
double getVehicleMeanSpeedRelative() const
Definition: MSNet.h:709
A class that stores and controls tls and switching of their programs.
A road/street connecting two junctions.
Definition: MSEdge.h:81
long long int myVehiclesMoved
The overall number of vehicle movements.
Definition: MSNet.h:777
The simulation does not contain further vehicles.
Definition: MSNet.h:102
An error occured during the simulation step.
Definition: MSNet.h:106
void writeOutput()
Write netstate, summary and detector output.
Definition: MSNet.cpp:644
The vehicle got a new route.
Definition: MSNet.h:583
The vehicle arrived at his destination (is deleted)
Definition: MSNet.h:581
MSStoppingPlace * getBusStop(const std::string &id) const
Returns the named bus stop.
Definition: MSNet.cpp:864
The vehicles starts to park.
Definition: MSNet.h:585
MSInsertionControl * myInserter
Controls vehicle insertion;.
Definition: MSNet.h:744
Representation of a vehicle.
Definition: SUMOVehicle.h:67
bool myHasNeighs
Whether the network contains explicit neighbor lanes.
Definition: MSNet.h:808
SUMORouteLoaderControl * myRouteLoaders
Route loader for dynamic loading of routes.
Definition: MSNet.h:718
virtual MSTransportableControl & getPersonControl()
Returns the person control.
Definition: MSNet.cpp:767
static double getTravelTime(const MSEdge *const e, const SUMOVehicle *const v, double t)
Returns the travel time to pass an edge.
Definition: MSNet.cpp:152
ShapeContainer & getShapeContainer()
Returns the shapes container.
Definition: MSNet.h:428
void closeSimulation(SUMOTime start)
Closes the simulation (all files, connections, etc.)
Definition: MSNet.cpp:372
std::map< std::string, std::map< SUMOVehicleClass, double > > myRestrictions
The vehicle class specific speed restrictions.
Definition: MSNet.h:802
bool myLogStepNumber
Information whether the number of the simulation step shall be logged.
Definition: MSNet.h:768
MSTLLogicControl & getTLSControl()
Returns the tls logics control.
Definition: MSNet.h:378
double version() const
return the network version
Definition: MSNet.h:693
MSVehicleControl & getVehicleControl()
Returns the vehicle control.
Definition: MSNet.h:305
MSEventControl * getBeginOfTimestepEvents()
Returns the event control for events executed at the begin of a time step.
Definition: MSNet.h:398
MSDetectorControl * myDetectorControl
Controls detectors;.
Definition: MSNet.h:746
void setPermissionsFound()
Labels the network to contain vehicle class permissions.
Definition: MSNet.h:178
double getVehicleMeanSpeed() const
Definition: MSNet.h:706
Stores edges and lanes, performs moving of vehicle.
Definition: MSEdgeControl.h:74
MSTLLogicControl * myLogics
Controls tls logics, realizes waiting on tls rules;.
Definition: MSNet.h:742
The connection to a client was closed by the client.
Definition: MSNet.h:104
The simulation is running.
Definition: MSNet.h:98
bool hasNeighs() const
return whether the network contains explicit neighbor lanes
Definition: MSNet.h:678
std::string getChargingStationID(const MSLane *lane, const double pos) const
Returns the charging station close to the given position.
Definition: MSNet.cpp:940
std::string getContainerStopID(const MSLane *lane, const double pos) const
Returns the container stop close to the given position.
Definition: MSNet.cpp:893
void addRestriction(const std::string &id, const SUMOVehicleClass svc, const double speed)
Adds a restriction for an edge type.
Definition: MSNet.cpp:296
MSNet & operator=(const MSNet &)
Invalidated assignment operator.
The vehicle started to teleport.
Definition: MSNet.h:577
int getHaltingVehicleNumber() const
count number of standing vehicles in the network
Definition: MSNet.cpp:1027
void preSimStepOutput() const
Prints the current step number.
Definition: MSNet.cpp:793
bool hasContainers() const
Returns whether containers are simulated.
Definition: MSNet.h:338
PedestrianRouterDijkstra< MSEdge, MSLane, MSJunction, MSVehicle > MSPedestrianRouterDijkstra
Definition: MSNet.h:112
The vehicle ends to park.
Definition: MSNet.h:587
MSDetectorControl & getDetectorControl()
Returns the detector control.
Definition: MSNet.h:368
SUMOTime myStateDumpPeriod
The period for writing state.
Definition: MSNet.h:790
Inserts vehicles into the network when their departure time is reached.
long myTraCIStepDuration
The last simulation step duration.
Definition: MSNet.h:771
int myMaxTeleports
Maximum number of teleports.
Definition: MSNet.h:724
VehicleState
Definition of a vehicle state.
Definition: MSNet.h:571
SUMOAbstractRouter< MSEdge, SUMOVehicle > & getRouterTT(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:962
MSEventControl * getEndOfTimestepEvents()
Returns the event control for events executed at the end of a time step.
Definition: MSNet.h:408
void closeBuilding(const OptionsCont &oc, MSEdgeControl *edges, MSJunctionControl *junctions, SUMORouteLoaderControl *routeLoaders, MSTLLogicControl *tlc, std::vector< SUMOTime > stateDumpTimes, std::vector< std::string > stateDumpFiles, bool hasInternalLinks, bool hasNeighs, bool lefthand, double version)
Closes the network&#39;s building process.
Definition: MSNet.cpp:220
static const std::string STAGE_MOVEMENTS
Definition: MSNet.h:850
VehicleStateListener()
Constructor.
Definition: MSNet.h:601
The vehicle was built, but has not yet departed.
Definition: MSNet.h:573
std::vector< VehicleStateListener * > myVehicleStateListeners
Container for vehicle state listener.
Definition: MSNet.h:832
static MSNet * myInstance
Unique instance of MSNet.
Definition: MSNet.h:715
static void clearAll()
Clears all dictionaries.
Definition: MSNet.cpp:621
The simulation is loading.
Definition: MSNet.h:96
bool addContainerStop(MSStoppingPlace *containerStop)
Adds a container stop.
Definition: MSNet.cpp:883
bool addChargingStation(MSChargingStation *chargingStation)
Adds a chargingg station.
Definition: MSNet.cpp:928
SimulationState simulationState(SUMOTime stopTime) const
Called after a simulation step, this method returns the current simulation state. ...
Definition: MSNet.cpp:560
MSTransportableControl * myContainerControl
Controls container building and deletion;.
Definition: MSNet.h:736
MSJunctionControl * myJunctions
Controls junctions, realizes right-of-way rules;.
Definition: MSNet.h:740
MSInsertionControl & getInsertionControl()
Returns the insertion control.
Definition: MSNet.h:358
MSTransportableControl * myPersonControl
Controls person building and deletion;.
Definition: MSNet.h:734
bool checkElevation()
check all lanes for elevation data
Definition: MSNet.cpp:1013
MSEventControl * myBeginOfTimestepEvents
Controls events executed at the begin of a time step;.
Definition: MSNet.h:748
A storage for options typed value containers)
Definition: OptionsCont.h:99
virtual ~VehicleStateListener()
Destructor.
Definition: MSNet.h:604
MSEdgeWeightsStorage * myEdgeWeights
The net&#39;s knowledge about edge efforts/travel times;.
Definition: MSNet.h:756
MSStoppingPlace * getContainerStop(const std::string &id) const
Returns the named container stop.
Definition: MSNet.cpp:888
The simulation had too many teleports.
Definition: MSNet.h:108
MSNet(MSVehicleControl *vc, MSEventControl *beginOfTimestepEvents, MSEventControl *endOfTimestepEvents, MSEventControl *insertionEvents, ShapeContainer *shapeCont=0)
Constructor.
Definition: MSNet.cpp:177
The vehicle ends to stop.
Definition: MSNet.h:591
MSEventControl * getInsertionEvents()
Returns the event control for insertion events.
Definition: MSNet.h:418
void informVehicleStateListener(const SUMOVehicle *const vehicle, VehicleState to)
Informs all added listeners about a vehicle&#39;s state change.
Definition: MSNet.cpp:848
const NamedRTree & getLanesRTree() const
Returns an RTree that contains lane IDs.
Definition: MSNet.cpp:1003
long mySimBeginMillis
The overall simulation duration.
Definition: MSNet.h:774
virtual ~MSNet()
Destructor.
Definition: MSNet.cpp:255
bool myHasElevation
Whether the network contains elevation data.
Definition: MSNet.h:811
std::string myStateDumpPrefix
name components for periodic state
Definition: MSNet.h:792
static std::string getStateMessage(SimulationState state)
Returns the message to show if a certain state occurs.
Definition: MSNet.cpp:598
MSEdgeControl & getEdgeControl()
Returns the edge control.
Definition: MSNet.h:348
NamedObjectCont< MSChargingStation * > myChargingStationDict
Dictionary of charging Stations.
Definition: MSNet.h:829
long long int SUMOTime
Definition: TraCIDefs.h:52
bool logSimulationDuration() const
Returns whether duration shall be logged.
Definition: MSNet.cpp:761
void writeChargingStationOutput() const
write charging station output
Definition: MSNet.cpp:953
MSJunctionControl & getJunctionControl()
Returns the junctions control.
Definition: MSNet.h:388
SUMOTime myStep
Current time step.
Definition: MSNet.h:721
The class responsible for building and deletion of vehicles.
std::vector< MSEdge * > MSEdgeVector
Definition: MSEdge.h:78
void simulationStep()
Performs a single simulation step.
Definition: MSNet.cpp:439
bool hasPermissions() const
Returns whether the network has specific vehicle class permissions.
Definition: MSNet.h:172
void loadRoutes()
loads routes for the next few steps
Definition: MSNet.cpp:366
SUMOAbstractRouter< MSEdge, SUMOVehicle > & getRouterEffort(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:982
static const std::string STAGE_INSERTIONS
Definition: MSNet.h:852
MSEventControl * myInsertionEvents
Controls insertion events;.
Definition: MSNet.h:752
Representation of a lane in the micro simulation.
Definition: MSLane.h:79
long mySimStepDuration
Definition: MSNet.h:771
NamedObjectCont< MSStoppingPlace * > myBusStopDict
Dictionary of bus stops.
Definition: MSNet.h:820
Encapsulates binary reading operations on a file.
Stores time-dependant events and executes them at the proper time.
The vehicle ended being teleported.
Definition: MSNet.h:579
bool hasElevation() const
return whether the network contains elevation data
Definition: MSNet.h:683
bool myHasInternalLinks
Whether the network contains internal links/lanes/edges.
Definition: MSNet.h:805
SUMOAbstractRouter< MSEdge, SUMOVehicle > * myRouterTT
Definition: MSNet.h:839
static double getEffort(const MSEdge *const e, const SUMOVehicle *const v, double t)
Returns the effort to pass an edge.
Definition: MSNet.cpp:138
MSEdgeWeightsStorage & getWeightsStorage()
Returns the net&#39;s internal edge travel times/efforts container.
Definition: MSNet.cpp:784
static const std::string STAGE_EVENTS
string constants for simstep stages
Definition: MSNet.h:849