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 "MSVehicleControl.h"
48 #include "MSEventControl.h"
49 #include <utils/geom/Boundary.h>
50 #include <utils/geom/Position.h>
51 #include <utils/common/SUMOTime.h>
54 #include <microsim/MSParkingArea.h>
63 
64 
65 // ===========================================================================
66 // class declarations
67 // ===========================================================================
68 class MSEdge;
69 class MSJunction;
70 class MSEdgeControl;
71 class MSJunctionControl;
72 class MSInsertionControl;
75 class MSVehicle;
76 class MSRoute;
77 class MSLane;
78 class MSTLLogicControl;
79 class MSDetectorControl;
80 class ShapeContainer;
81 class BinaryInputDevice;
84 
85 typedef std::vector<MSEdge*> MSEdgeVector;
86 
87 // ===========================================================================
88 // class definitions
89 // ===========================================================================
94 class MSNet {
95 public:
114  };
115 
116  //typedef PedestrianRouterDijkstra<MSEdge, MSLane> MSPedestrianRouterDijkstra;
118 
119 
120 
121 public:
126  static MSNet* getInstance();
127 
128 
143  MSNet(MSVehicleControl* vc, MSEventControl* beginOfTimestepEvents,
144  MSEventControl* endOfTimestepEvents, MSEventControl* insertionEvents,
145  ShapeContainer* shapeCont = 0);
146 
147 
149  virtual ~MSNet();
150 
151 
167  void closeBuilding(const OptionsCont& oc, MSEdgeControl* edges, MSJunctionControl* junctions,
168  SUMORouteLoaderControl* routeLoaders, MSTLLogicControl* tlc,
169  std::vector<SUMOTime> stateDumpTimes, std::vector<std::string> stateDumpFiles,
170  bool hasInternalLinks, bool hasNeighs, bool lefthand,
171  double version);
172 
173 
177  bool hasPermissions() const {
178  return myHavePermissions;
179  }
180 
181 
184  myHavePermissions = true;
185  }
186 
187 
193  void addRestriction(const std::string& id, const SUMOVehicleClass svc, const double speed);
194 
195 
201  const std::map<SUMOVehicleClass, double>* getRestrictions(const std::string& id) const;
202 
203 
207  static void clearAll();
208 
209 
218 
219 
223  void simulationStep();
224 
225 
227  void loadRoutes();
228 
229 
237  void closeSimulation(SUMOTime start);
238 
239 
245  SimulationState simulationState(SUMOTime stopTime) const;
246 
247 
251  static std::string getStateMessage(SimulationState state);
252 
253 
257  inline SUMOTime getCurrentTimeStep() const {
258  return myStep;
259  }
260 
261 
265  inline void setCurrentTimeStep(const SUMOTime step) {
266  myStep = step;
267  }
268 
269 
273  void writeOutput();
274 
275 
279  bool logSimulationDuration() const;
280 
281 
282 
284 
285 
290  void preSimStepOutput() const;
291 
292 
297  void postSimStepOutput() const;
298  //}
299 
300 
301 
304 
311  return *myVehicleControl;
312  }
313 
314 
324 
327  bool hasPersons() const {
328  return myPersonControl != 0;
329  }
330 
340 
343  bool hasContainers() const {
344  return myContainerControl != 0;
345  }
346 
347 
354  return *myEdges;
355  }
356 
357 
364  return *myInserter;
365  }
366 
367 
374  return *myDetectorControl;
375  }
376 
377 
384  return *myLogics;
385  }
386 
387 
394  return *myJunctions;
395  }
396 
397 
405  }
406 
407 
414  return myEndOfTimestepEvents;
415  }
416 
417 
424  return myInsertionEvents;
425  }
426 
427 
434  return *myShapeContainer;
435  }
436 
444 
447 
459  bool addBusStop(MSStoppingPlace* busStop);
460 
461 
466  MSStoppingPlace* getBusStop(const std::string& id) const;
467 
468 
474  std::string getBusStopID(const MSLane* lane, const double pos) const;
476 
477 
480 
492  bool addContainerStop(MSStoppingPlace* containerStop);
493 
498  MSStoppingPlace* getContainerStop(const std::string& id) const;
499 
505  std::string getContainerStopID(const MSLane* lane, const double pos) const;
507 
510 
522  bool addParkingArea(MSParkingArea* parkingArea);
523 
528  MSParkingArea* getParkingArea(const std::string& id) const;
529 
535  std::string getParkingAreaID(const MSLane* lane, const double pos) const;
537 
540 
552  bool addChargingStation(MSChargingStation* chargingStation);
553 
558  MSChargingStation* getChargingStation(const std::string& id) const;
559 
565  std::string getChargingStationID(const MSLane* lane, const double pos) const;
566 
568  void writeChargingStationOutput() const;
570 
571 
574 
597  };
598 
599 
604  public:
607 
609  virtual ~VehicleStateListener() { }
610 
615  virtual void vehicleStateChanged(const SUMOVehicle* const vehicle, VehicleState to) = 0;
616 
617  };
618 
619 
624 
625 
630 
631 
637  void informVehicleStateListener(const SUMOVehicle* const vehicle, VehicleState to);
639 
640 
641 
649  static double getTravelTime(const MSEdge* const e, const SUMOVehicle* const v, double t);
650 
651 
659  static double getEffort(const MSEdge* const e, const SUMOVehicle* const v, double t);
660 
661 
662  /* @brief get the router, initialize on first use
663  * @param[in] prohibited The vector of forbidden edges (optional)
664  */
666  const MSEdgeVector& prohibited = MSEdgeVector()) const;
668  const MSEdgeVector& prohibited = MSEdgeVector()) const;
669  MSPedestrianRouterDijkstra& getPedestrianRouter(const MSEdgeVector& prohibited = MSEdgeVector()) const;
670 
671 
675  const NamedRTree& getLanesRTree() const;
676 
678  bool hasInternalLinks() const {
679  return myHasInternalLinks;
680  }
681 
683  bool hasNeighs() const {
684  return myHasNeighs;
685  }
686 
688  bool hasElevation() const {
689  return myHasElevation;
690  }
691 
693  bool lefthand() const {
694  return myLefthand;
695  }
696 
698  double version() const {
699  return myVersion;
700  }
701 
702 protected:
704  bool checkElevation();
705 
706 protected:
708  static MSNet* myInstance;
709 
712 
715 
718 
719 
720 
723 
751 
752 
753 
756 
759 
762 
765 
768 
770  long long int myVehiclesMoved;
771  //}
772 
773 
774 
777 
779  std::vector<SUMOTime> myStateDumpTimes;
781  std::vector<std::string> myStateDumpFiles;
785  std::string myStateDumpPrefix;
786  std::string myStateDumpSuffix;
788 
789 
790 
793 
795  std::map<std::string, std::map<SUMOVehicleClass, double> > myRestrictions;
796 
799 
802 
805 
808 
810  double myVersion;
811 
814 
817 
820 
823 
825  std::vector<VehicleStateListener*> myVehicleStateListeners;
826 
827 
828  /* @brief The router instance for routing by trigger and by traci
829  * @note MSDevice_Routing has its own instance since it uses a different weight function
830  * @note we provide one member for every switchable router type
831  * because the class structure makes it inconvenient to use a superclass*/
832  mutable bool myRouterTTInitialized;
836  mutable MSPedestrianRouterDijkstra* myPedestrianRouter;
837 
838 
840  mutable std::pair<bool, NamedRTree> myLanesRTree;
841 
842 
844  static const std::string STAGE_EVENTS;
845  static const std::string STAGE_MOVEMENTS;
846  static const std::string STAGE_LANECHANGE;
847  static const std::string STAGE_INSERTIONS;
848 
849 private:
851  MSNet(const MSNet&);
852 
854  MSNet& operator=(const MSNet&);
855 
856 
857 };
858 
859 
860 #endif
861 
862 /****************************************************************************/
863 
std::string myStateDumpSuffix
Definition: MSNet.h:786
The vehicle has departed (was inserted into the network)
Definition: MSNet.h:580
A lane area vehicles can halt at.
Definition: MSParkingArea.h:66
AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > > * myRouterTTAStar
Definition: MSNet.h:834
Computes the shortest path through a network using the Dijkstra algorithm.
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:83
Interface for objects listening to vehicle state changes.
Definition: MSNet.h:603
bool hasPersons() const
Returns whether persons are simulated.
Definition: MSNet.h:327
void removeVehicleStateListener(VehicleStateListener *listener)
Removes a vehicle states listener.
Definition: MSNet.cpp:802
MSEventControl * myEndOfTimestepEvents
Controls events executed at the end of a time step;.
Definition: MSNet.h:743
NamedObjectCont< MSParkingArea * > myParkingAreaDict
Dictionary of parking areas.
Definition: MSNet.h:819
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
A lane area vehicles can halt at.
bool hasPermissions() const
Returns whether the network has specific vehicle class permissions.
Definition: MSNet.h:177
const NamedRTree & getLanesRTree() const
Returns an RTree that contains lane IDs.
Definition: MSNet.cpp:973
std::string getParkingAreaID(const MSLane *lane, const double pos) const
Returns the parking area close to the given position.
Definition: MSNet.cpp:879
MSVehicleControl * myVehicleControl
Controls vehicle building and deletion;.
Definition: MSNet.h:725
std::vector< MSEdge * > MSEdgeVector
Definition: MSNet.h:83
std::vector< SUMOTime > myStateDumpTimes
Times at which a state shall be written.
Definition: MSNet.h:779
The base class for an intersection.
Definition: MSJunction.h:64
DijkstraRouterEffort< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > > * myRouterEffort
Definition: MSNet.h:835
SimulationState simulate(SUMOTime start, SUMOTime stop)
Simulates from timestep start to stop.
Definition: MSNet.cpp:304
bool logSimulationDuration() const
Returns whether duration shall be logged.
Definition: MSNet.cpp:724
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
Computes the shortest path through a network using the A* algorithm.
Definition: AStarRouter.h:74
bool addBusStop(MSStoppingPlace *busStop)
Adds a bus stop.
Definition: MSNet.cpp:821
bool hasNeighs() const
return whether the network contains explicit neighbor lanes
Definition: MSNet.h:683
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
Definition: MSNet.cpp:158
MSPedestrianRouterDijkstra & getPedestrianRouter(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:963
bool myHavePermissions
Whether the network contains edges which not all vehicles may pass.
Definition: MSNet.h:792
std::string getChargingStationID(const MSLane *lane, const double pos) const
Returns the charging station close to the given position.
Definition: MSNet.cpp:903
MSEdgeControl * myEdges
Controls edges, performs vehicle movement;.
Definition: MSNet.h:731
void setCurrentTimeStep(const SUMOTime step)
Sets the current simulation step (used by state loading)
Definition: MSNet.h:265
The final simulation step has been performed.
Definition: MSNet.h:105
double myVersion
the network version
Definition: MSNet.h:810
std::vector< std::string > myStateDumpFiles
The names for the state files.
Definition: MSNet.h:781
bool myLogExecutionTime
Information whether the simulation duration shall be logged.
Definition: MSNet.h:758
Storage for geometrical objects.
bool addParkingArea(MSParkingArea *parkingArea)
Adds a parking area.
Definition: MSNet.cpp:869
static const std::string STAGE_LANECHANGE
Definition: MSNet.h:846
std::string getContainerStopID(const MSLane *lane, const double pos) const
Returns the container stop close to the given position.
Definition: MSNet.cpp:856
NamedObjectCont< MSStoppingPlace * > myContainerStopDict
Dictionary of container stops.
Definition: MSNet.h:816
A map of named object pointers.
Detectors container; responsible for string and output generation.
bool myLefthand
Whether the network was built for left-hand traffic.
Definition: MSNet.h:807
A storage for edge travel times and efforts.
MSChargingStation * getChargingStation(const std::string &id) const
Returns the named charging station.
Definition: MSNet.cpp:897
void addVehicleStateListener(VehicleStateListener *listener)
Adds a vehicle states listener.
Definition: MSNet.cpp:794
SimulationState
Possible states of a simulation - running or stopped with different reasons.
Definition: MSNet.h:99
MSPedestrianRouterDijkstra * myPedestrianRouter
Definition: MSNet.h:836
The simulated network and simulation perfomer.
Definition: MSNet.h:94
Computes the shortest path through a network using the Dijkstra algorithm.
ShapeContainer * myShapeContainer
A container for geometrical shapes;.
Definition: MSNet.h:747
std::pair< bool, NamedRTree > myLanesRTree
An RTree structure holding lane IDs.
Definition: MSNet.h:840
Container for junctions; performs operations on all stored junctions.
std::string getBusStopID(const MSLane *lane, const double pos) const
Returns the bus stop close to the given position.
Definition: MSNet.cpp:833
DijkstraRouterTT< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > > * myRouterTTDijkstra
Definition: MSNet.h:833
virtual MSTransportableControl & getContainerControl()
Returns the container control.
Definition: MSNet.cpp:738
The vehicles starts to stop.
Definition: MSNet.h:594
void writeChargingStationOutput() const
write charging station output
Definition: MSNet.cpp:916
A class that stores and controls tls and switching of their programs.
A road/street connecting two junctions.
Definition: MSEdge.h:80
double version() const
return the network version
Definition: MSNet.h:698
long long int myVehiclesMoved
The overall number of vehicle movements.
Definition: MSNet.h:770
The simulation does not contain further vehicles.
Definition: MSNet.h:107
An error occured during the simulation step.
Definition: MSNet.h:111
void writeOutput()
Write netstate, summary and detector output.
Definition: MSNet.cpp:616
The vehicle got a new route.
Definition: MSNet.h:588
The vehicle arrived at his destination (is deleted)
Definition: MSNet.h:586
The vehicles starts to park.
Definition: MSNet.h:590
SimulationState simulationState(SUMOTime stopTime) const
Called after a simulation step, this method returns the current simulation state. ...
Definition: MSNet.cpp:534
MSInsertionControl * myInserter
Controls vehicle insertion;.
Definition: MSNet.h:737
Representation of a vehicle.
Definition: SUMOVehicle.h:67
bool myHasNeighs
Whether the network contains explicit neighbor lanes.
Definition: MSNet.h:801
SUMORouteLoaderControl * myRouteLoaders
Route loader for dynamic loading of routes.
Definition: MSNet.h:711
virtual MSTransportableControl & getPersonControl()
Returns the person control.
Definition: MSNet.cpp:730
static double getTravelTime(const MSEdge *const e, const SUMOVehicle *const v, double t)
Returns the travel time to pass an edge.
Definition: MSNet.cpp:141
ShapeContainer & getShapeContainer()
Returns the shapes container.
Definition: MSNet.h:433
void closeSimulation(SUMOTime start)
Closes the simulation (all files, connections, etc.)
Definition: MSNet.cpp:358
std::map< std::string, std::map< SUMOVehicleClass, double > > myRestrictions
The vehicle class specific speed restrictions.
Definition: MSNet.h:795
bool myLogStepNumber
Information whether the number of the simulation step shall be logged.
Definition: MSNet.h:761
MSTLLogicControl & getTLSControl()
Returns the tls logics control.
Definition: MSNet.h:383
MSVehicleControl & getVehicleControl()
Returns the vehicle control.
Definition: MSNet.h:310
MSEventControl * getBeginOfTimestepEvents()
Returns the event control for events executed at the begin of a time step.
Definition: MSNet.h:403
MSDetectorControl * myDetectorControl
Controls detectors;.
Definition: MSNet.h:739
void setPermissionsFound()
Labels the network to contain vehicle class permissions.
Definition: MSNet.h:183
void postSimStepOutput() const
Prints the statistics of the step at its end.
Definition: MSNet.cpp:762
bool hasContainers() const
Returns whether containers are simulated.
Definition: MSNet.h:343
Stores edges and lanes, performs moving of vehicle.
Definition: MSEdgeControl.h:74
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:294
MSTLLogicControl * myLogics
Controls tls logics, realizes waiting on tls rules;.
Definition: MSNet.h:735
The connection to a client was closed by the client.
Definition: MSNet.h:109
The simulation is running.
Definition: MSNet.h:103
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
Definition: MSNet.h:257
void addRestriction(const std::string &id, const SUMOVehicleClass svc, const double speed)
Adds a restriction for an edge type.
Definition: MSNet.cpp:288
MSNet & operator=(const MSNet &)
Invalidated assignment operator.
The vehicle started to teleport.
Definition: MSNet.h:582
bool hasInternalLinks() const
return whether the network contains internal links
Definition: MSNet.h:678
PedestrianRouterDijkstra< MSEdge, MSLane, MSJunction, MSVehicle > MSPedestrianRouterDijkstra
Definition: MSNet.h:117
The vehicle ends to park.
Definition: MSNet.h:592
MSDetectorControl & getDetectorControl()
Returns the detector control.
Definition: MSNet.h:373
bool hasElevation() const
return whether the network contains elevation data
Definition: MSNet.h:688
bool lefthand() const
return whether the network was built for lefthand traffic
Definition: MSNet.h:693
SUMOTime myStateDumpPeriod
The period for writing state.
Definition: MSNet.h:783
Inserts vehicles into the network when their departure time is reached.
long myTraCIStepDuration
The last simulation step duration.
Definition: MSNet.h:764
int myMaxTeleports
Maximum number of teleports.
Definition: MSNet.h:717
VehicleState
Definition of a vehicle state.
Definition: MSNet.h:576
MSEventControl * getEndOfTimestepEvents()
Returns the event control for events executed at the end of a time step.
Definition: MSNet.h:413
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:211
static const std::string STAGE_MOVEMENTS
Definition: MSNet.h:845
VehicleStateListener()
Constructor.
Definition: MSNet.h:606
The vehicle was built, but has not yet departed.
Definition: MSNet.h:578
std::vector< VehicleStateListener * > myVehicleStateListeners
Container for vehicle state listener.
Definition: MSNet.h:825
static MSNet * myInstance
Unique instance of MSNet.
Definition: MSNet.h:708
MSStoppingPlace * getContainerStop(const std::string &id) const
Returns the named container stop.
Definition: MSNet.cpp:851
static void clearAll()
Clears all dictionaries.
Definition: MSNet.cpp:593
The simulation is loading.
Definition: MSNet.h:101
bool myRouterTTInitialized
Definition: MSNet.h:832
bool addContainerStop(MSStoppingPlace *containerStop)
Adds a container stop.
Definition: MSNet.cpp:846
bool addChargingStation(MSChargingStation *chargingStation)
Adds a chargingg station.
Definition: MSNet.cpp:891
MSTransportableControl * myContainerControl
Controls container building and deletion;.
Definition: MSNet.h:729
MSJunctionControl * myJunctions
Controls junctions, realizes right-of-way rules;.
Definition: MSNet.h:733
MSInsertionControl & getInsertionControl()
Returns the insertion control.
Definition: MSNet.h:363
MSTransportableControl * myPersonControl
Controls person building and deletion;.
Definition: MSNet.h:727
bool checkElevation()
check all lanes for elevation data
Definition: MSNet.cpp:983
void preSimStepOutput() const
Prints the current step number.
Definition: MSNet.cpp:756
MSEventControl * myBeginOfTimestepEvents
Controls events executed at the begin of a time step;.
Definition: MSNet.h:741
A storage for options typed value containers)
Definition: OptionsCont.h:99
virtual ~VehicleStateListener()
Destructor.
Definition: MSNet.h:609
MSEdgeWeightsStorage * myEdgeWeights
The net&#39;s knowledge about edge efforts/travel times;.
Definition: MSNet.h:749
The simulation had too many teleports.
Definition: MSNet.h:113
MSNet(MSVehicleControl *vc, MSEventControl *beginOfTimestepEvents, MSEventControl *endOfTimestepEvents, MSEventControl *insertionEvents, ShapeContainer *shapeCont=0)
Constructor.
Definition: MSNet.cpp:166
The vehicle ends to stop.
Definition: MSNet.h:596
MSEventControl * getInsertionEvents()
Returns the event control for insertion events.
Definition: MSNet.h:423
void informVehicleStateListener(const SUMOVehicle *const vehicle, VehicleState to)
Informs all added listeners about a vehicle&#39;s state change.
Definition: MSNet.cpp:811
long mySimBeginMillis
The overall simulation duration.
Definition: MSNet.h:767
virtual ~MSNet()
Destructor.
Definition: MSNet.cpp:246
bool myHasElevation
Whether the network contains elevation data.
Definition: MSNet.h:804
std::string myStateDumpPrefix
name components for periodic state
Definition: MSNet.h:785
static std::string getStateMessage(SimulationState state)
Returns the message to show if a certain state occurs.
Definition: MSNet.cpp:572
MSEdgeControl & getEdgeControl()
Returns the edge control.
Definition: MSNet.h:353
NamedObjectCont< MSChargingStation * > myChargingStationDict
Dictionary of charging Stations.
Definition: MSNet.h:822
long long int SUMOTime
Definition: TraCIDefs.h:52
MSJunctionControl & getJunctionControl()
Returns the junctions control.
Definition: MSNet.h:393
SUMOTime myStep
Current time step.
Definition: MSNet.h:714
SUMOAbstractRouter< MSEdge, SUMOVehicle > & getRouterTT(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:925
The class responsible for building and deletion of vehicles.
std::vector< MSEdge * > MSEdgeVector
Definition: MSEdge.h:77
void simulationStep()
Performs a single simulation step.
Definition: MSNet.cpp:425
void loadRoutes()
loads routes for the next few steps
Definition: MSNet.cpp:352
static const std::string STAGE_INSERTIONS
Definition: MSNet.h:847
MSEventControl * myInsertionEvents
Controls insertion events;.
Definition: MSNet.h:745
Representation of a lane in the micro simulation.
Definition: MSLane.h:79
long mySimStepDuration
Definition: MSNet.h:764
NamedObjectCont< MSStoppingPlace * > myBusStopDict
Dictionary of bus stops.
Definition: MSNet.h:813
MSStoppingPlace * getBusStop(const std::string &id) const
Returns the named bus stop.
Definition: MSNet.cpp:827
Encapsulates binary reading operations on a file.
SUMOAbstractRouter< MSEdge, SUMOVehicle > & getRouterEffort(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:952
Stores time-dependant events and executes them at the proper time.
The vehicle ended being teleported.
Definition: MSNet.h:584
bool myHasInternalLinks
Whether the network contains internal links/lanes/edges.
Definition: MSNet.h:798
static double getEffort(const MSEdge *const e, const SUMOVehicle *const v, double t)
Returns the effort to pass an edge.
Definition: MSNet.cpp:127
MSEdgeWeightsStorage & getWeightsStorage()
Returns the net&#39;s internal edge travel times/efforts container.
Definition: MSNet.cpp:747
static const std::string STAGE_EVENTS
string constants for simstep stages
Definition: MSNet.h:844
MSParkingArea * getParkingArea(const std::string &id) const
Returns the named parking area.
Definition: MSNet.cpp:874