Eclipse SUMO - Simulation of Urban MObility
MSStage.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2020 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 /****************************************************************************/
18 // The common superclass for modelling transportable objects like persons and containers
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
23 #include <set>
24 #include <cassert>
25 #include <utils/common/SUMOTime.h>
27 #include <utils/geom/Position.h>
29 #include <utils/geom/Boundary.h>
32 
33 
34 // ===========================================================================
35 // class declarations
36 // ===========================================================================
37 class MSEdge;
38 class MSLane;
39 class MSNet;
40 class MSStoppingPlace;
41 class MSVehicleType;
42 class OutputDevice;
44 class SUMOVehicle;
46 class MSTransportable;
48 
49 typedef std::vector<const MSEdge*> ConstMSEdgeVector;
50 
51 // ===========================================================================
52 // class definitions
53 // ===========================================================================
54 enum class MSStageType {
56  WAITING = 1,
57  WALKING = 2, // only for persons
58  DRIVING = 3,
59  ACCESS = 4,
60  TRIP = 5,
61  TRANSHIP = 6
62 };
63 
68 class MSStage {
69 public:
71  MSStage(const MSEdge* destination, MSStoppingPlace* toStop, const double arrivalPos, MSStageType type, const std::string& group = "");
72 
74  virtual ~MSStage();
75 
77  const MSEdge* getDestination() const;
78 
81  return myDestinationStop;
82  }
83 
85  virtual MSStoppingPlace* getOriginStop() const {
86  return nullptr;
87  }
88 
89  virtual double getArrivalPos() const {
90  return myArrivalPos;
91  }
92 
93  void setArrivalPos(double arrivalPos) {
94  myArrivalPos = arrivalPos;
95  }
96 
98  virtual const MSEdge* getEdge() const;
99  virtual const MSEdge* getFromEdge() const;
100  virtual double getEdgePos(SUMOTime now) const;
101 
103  virtual Position getPosition(SUMOTime now) const = 0;
104 
106  virtual double getAngle(SUMOTime now) const = 0;
107 
109  virtual const MSLane* getLane() const {
110  return nullptr;
111  }
112 
115  return myType;
116  }
117 
119  const std::string& getGroup() const {
120  return myGroup;
121  }
122 
124  virtual std::string getStageDescription(const bool isPerson) const = 0;
125 
127  virtual std::string getStageSummary(const bool isPerson) const = 0;
128 
130  virtual void proceed(MSNet* net, MSTransportable* transportable, SUMOTime now, MSStage* previous) = 0;
131 
133  virtual void abort(MSTransportable*) {};
134 
136  virtual void setSpeed(double) {};
137 
139  SUMOTime getDeparted() const;
140 
142  SUMOTime getArrived() const;
143 
145  void setDeparted(SUMOTime now);
146 
148  virtual const std::string setArrived(MSNet* net, MSTransportable* transportable, SUMOTime now, const bool vehicleArrived);
149 
151  virtual bool isWaitingFor(const SUMOVehicle* vehicle) const;
152 
154  virtual bool isWaiting4Vehicle() const {
155  return false;
156  }
157 
159  virtual SUMOVehicle* getVehicle() const {
160  return nullptr;
161  }
162 
164  virtual SUMOTime getWaitingTime(SUMOTime now) const;
165 
167  virtual double getSpeed() const;
168 
170  virtual ConstMSEdgeVector getEdges() const;
171 
173  Position getEdgePosition(const MSEdge* e, double at, double offset) const;
174 
176  Position getLanePosition(const MSLane* lane, double at, double offset) const;
177 
179  double getEdgeAngle(const MSEdge* e, double at) const;
180 
181  void setDestination(const MSEdge* newDestination, MSStoppingPlace* newDestStop);
182 
184  virtual double getDistance() const = 0;
185 
190  virtual void tripInfoOutput(OutputDevice& os, const MSTransportable* const transportable) const = 0;
191 
199  virtual void routeOutput(const bool isPerson, OutputDevice& os, const bool withRouteLength, const MSStage* const previous) const = 0;
200 
201  virtual MSStage* clone() const = 0;
202 
205  virtual void saveState(std::ostringstream& out) {
206  UNUSED_PARAMETER(out);
207  }
208 
211  virtual void loadState(MSTransportable* transportable, std::istringstream& state) {
212  UNUSED_PARAMETER(transportable);
213  UNUSED_PARAMETER(state);
214  }
215 
216 protected:
219 
222 
224  double myArrivalPos;
225 
228 
231 
234 
236  const std::string myGroup;
237 
239  static const double ROADSIDE_OFFSET;
240 
241 private:
243  MSStage(const MSStage&);
244 
246  MSStage& operator=(const MSStage&) = delete;
247 
248 };
249 
250 
254 class MSStageTrip : public MSStage {
255 public:
257  MSStageTrip(const MSEdge* origin, MSStoppingPlace* fromStop,
258  const MSEdge* destination, MSStoppingPlace* toStop,
259  const SUMOTime duration, const SVCPermissions modeSet,
260  const std::string& vTypes, const double speed, const double walkFactor,
261  const std::string& group,
262  const double departPosLat, const bool hasArrivalPos, const double arrivalPos);
263 
265  virtual ~MSStageTrip();
266 
267  MSStage* clone() const;
268 
269  const MSEdge* getEdge() const;
270 
272  return myOriginStop;
273  }
274 
275  double getEdgePos(SUMOTime now) const;
276 
277  Position getPosition(SUMOTime now) const;
278 
279  double getAngle(SUMOTime now) const;
280 
281  double getDistance() const {
282  // invalid
283  return -1;
284  }
285 
286  std::string getStageDescription(const bool isPerson) const {
287  UNUSED_PARAMETER(isPerson);
288  return "trip";
289  }
290 
291  std::string getStageSummary(const bool isPerson) const;
292 
294  const std::string setArrived(MSNet* net, MSTransportable* transportable, SUMOTime now, const bool vehicleArrived);
295 
297  void setOrigin(const MSEdge* origin) {
298  myOrigin = origin;
299  }
300 
302  void proceed(MSNet* net, MSTransportable* transportable, SUMOTime now, MSStage* previous);
303 
309  void tripInfoOutput(OutputDevice& os, const MSTransportable* const transportable) const {
310  UNUSED_PARAMETER(os);
311  UNUSED_PARAMETER(transportable);
312  }
313 
319  void routeOutput(const bool isPerson, OutputDevice& os, const bool withRouteLength, const MSStage* const previous) const {
320  UNUSED_PARAMETER(isPerson);
321  UNUSED_PARAMETER(os);
322  UNUSED_PARAMETER(withRouteLength);
323  UNUSED_PARAMETER(previous);
324  }
325 
326 private:
328  const MSEdge* myOrigin;
329 
332 
335 
338 
340  const std::string myVTypes;
341 
343  const double mySpeed;
344 
346  const double myWalkFactor;
347 
349  std::string myGroup;
350 
352  double myDepartPos;
353 
355  const double myDepartPosLat;
356 
358  const bool myHaveArrivalPos;
359 
360 private:
363 
366 
367 };
368 
369 
373 class MSStageWaiting : public MSStage {
374 public:
376  MSStageWaiting(const MSEdge* destination, MSStoppingPlace* toStop, SUMOTime duration, SUMOTime until,
377  double pos, const std::string& actType, const bool initial);
378 
380  virtual ~MSStageWaiting();
381 
382  MSStage* clone() const;
383 
385  void abort(MSTransportable*);
386 
387  SUMOTime getUntil() const;
388 
390  Position getPosition(SUMOTime now) const;
391 
392  double getAngle(SUMOTime now) const;
393 
395  double getDistance() const {
396  return 0;
397  }
398 
399  SUMOTime getWaitingTime(SUMOTime now) const;
400 
401  std::string getStageDescription(const bool isPerson) const {
402  UNUSED_PARAMETER(isPerson);
403  return "waiting (" + myActType + ")";
404  }
405 
406  std::string getStageSummary(const bool isPerson) const;
407 
409  void proceed(MSNet* net, MSTransportable* transportable, SUMOTime now, MSStage* previous);
410 
416  void tripInfoOutput(OutputDevice& os, const MSTransportable* const transportable) const;
417 
425  void routeOutput(const bool isPerson, OutputDevice& os, const bool withRouteLength, const MSStage* const previous) const;
426 
427 private:
430 
433 
435  std::string myActType;
436 
437 private:
440 
443 
444 };
445 
446 
450 class MSStageMoving : public MSStage {
451 public:
453  MSStageMoving(const std::vector<const MSEdge*>& route, MSStoppingPlace* toStop, const double speed,
454  const double departPos, const double arrivalPos, const double departPosLat, MSStageType type) :
455  MSStage(route.back(), toStop, arrivalPos, type),
456  myState(nullptr), myRoute(route), mySpeed(speed), myDepartPos(departPos), myDepartPosLat(departPosLat) {}
457 
459  virtual ~MSStageMoving();
460 
461  virtual const MSEdge* getNextRouteEdge() const = 0;
462 
464  return myState;
465  }
466 
468  const MSEdge* getEdge() const;
469 
471  const MSLane* getLane() const;
472 
474  const MSEdge* getFromEdge() const;
475 
477  ConstMSEdgeVector getEdges() const;
478 
480  double getEdgePos(SUMOTime now) const;
481 
483  Position getPosition(SUMOTime now) const;
484 
486  double getAngle(SUMOTime now) const;
487 
489  SUMOTime getWaitingTime(SUMOTime now) const;
490 
492  double getSpeed() const;
493 
495  virtual double getMaxSpeed(const MSTransportable* const transportable = nullptr) const = 0;
496 
498  virtual bool moveToNextEdge(MSTransportable* transportable, SUMOTime currentTime, MSEdge* nextInternal = 0) = 0;
499 
501  virtual void setRouteIndex(MSTransportable* const transportable, int routeOffset);
502 
503  virtual void replaceRoute(MSTransportable* const transportable, const ConstMSEdgeVector& edges, int routeOffset);
504 
505  inline const std::vector<const MSEdge*>& getRoute() const {
506  return myRoute;
507  }
508 
509  inline const std::vector<const MSEdge*>::iterator getRouteStep() const {
510  return myRouteStep;
511  }
512 
513  inline double getDepartPos() const {
514  return myDepartPos;
515  }
516 
517  inline double getDepartPosLat() const {
518  return myDepartPosLat;
519  }
520 
521 protected:
524 
526  std::vector<const MSEdge*> myRoute;
527 
529  std::vector<const MSEdge*>::iterator myRouteStep;
530 
533 
535  double mySpeed;
536 
538  double myDepartPos;
539 
542 };
std::vector< const MSEdge * > ConstMSEdgeVector
Definition: MSEdge.h:74
MSStageType
Definition: MSStage.h:54
std::vector< const MSEdge * > ConstMSEdgeVector
Definition: MSStage.h:47
long long int SUMOTime
Definition: SUMOTime.h:31
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
#define UNUSED_PARAMETER(x)
Definition: StdDefs.h:29
A road/street connecting two junctions.
Definition: MSEdge.h:77
Representation of a lane in the micro simulation.
Definition: MSLane.h:82
The simulated network and simulation perfomer.
Definition: MSNet.h:89
virtual MSStoppingPlace * getOriginStop() const
returns the origin stop (if any). only needed for MSStageTrip
Definition: MSStage.h:85
virtual ~MSStage()
destructor
Definition: MSStage.cpp:67
const MSEdge * getDestination() const
returns the destination edge
Definition: MSStage.cpp:70
MSStage(const MSStage &)
Invalidated copy constructor.
virtual ConstMSEdgeVector getEdges() const
the edges of the current stage
Definition: MSStage.cpp:106
virtual double getEdgePos(SUMOTime now) const
Definition: MSStage.cpp:88
virtual void tripInfoOutput(OutputDevice &os, const MSTransportable *const transportable) const =0
Called on writing tripinfo output.
virtual const MSEdge * getFromEdge() const
Definition: MSStage.cpp:82
MSStage(const MSEdge *destination, MSStoppingPlace *toStop, const double arrivalPos, MSStageType type, const std::string &group="")
constructor
Definition: MSStage.cpp:57
virtual double getArrivalPos() const
Definition: MSStage.h:89
virtual MSStage * clone() const =0
virtual void setSpeed(double)
sets the walking speed (ignored in other stages)
Definition: MSStage.h:136
virtual const MSLane * getLane() const
Returns the current lane (if applicable)
Definition: MSStage.h:109
virtual SUMOVehicle * getVehicle() const
Whether the transportable waits for a vehicle.
Definition: MSStage.h:159
virtual void saveState(std::ostringstream &out)
Saves the current state into the given stream, standard implementation does nothing.
Definition: MSStage.h:205
SUMOTime getDeparted() const
get departure time of stage
Definition: MSStage.cpp:121
void setDeparted(SUMOTime now)
logs end of the step
Definition: MSStage.cpp:114
virtual bool isWaitingFor(const SUMOVehicle *vehicle) const
Whether the transportable waits for the given vehicle.
Definition: MSStage.cpp:137
MSStoppingPlace * myDestinationStop
the stop to reach by getting transported (if any)
Definition: MSStage.h:221
virtual std::string getStageDescription(const bool isPerson) const =0
return (brief) string representation of the current stage
const std::string myGroup
The id of the group of transportables traveling together.
Definition: MSStage.h:236
virtual const std::string setArrived(MSNet *net, MSTransportable *transportable, SUMOTime now, const bool vehicleArrived)
logs end of the step
Definition: MSStage.cpp:131
MSStoppingPlace * getDestinationStop() const
returns the destination stop (if any)
Definition: MSStage.h:80
SUMOTime getArrived() const
get arrival time of stage
Definition: MSStage.cpp:126
virtual std::string getStageSummary(const bool isPerson) const =0
return string summary of the current stage
virtual void loadState(MSTransportable *transportable, std::istringstream &state)
Reconstructs the current state, standard implementation does nothing.
Definition: MSStage.h:211
virtual Position getPosition(SUMOTime now) const =0
returns the position of the transportable
MSStageType getStageType() const
Definition: MSStage.h:114
void setArrivalPos(double arrivalPos)
Definition: MSStage.h:93
virtual double getDistance() const =0
get travel distance in this stage
virtual void proceed(MSNet *net, MSTransportable *transportable, SUMOTime now, MSStage *previous)=0
proceeds to this stage
virtual void abort(MSTransportable *)
abort this stage (TraCI)
Definition: MSStage.h:133
virtual double getSpeed() const
the speed of the transportable
Definition: MSStage.cpp:100
virtual bool isWaiting4Vehicle() const
Whether the transportable waits for a vehicle.
Definition: MSStage.h:154
SUMOTime myArrived
the time at which this stage ended
Definition: MSStage.h:230
void setDestination(const MSEdge *newDestination, MSStoppingPlace *newDestStop)
Definition: MSStage.cpp:159
virtual void routeOutput(const bool isPerson, OutputDevice &os, const bool withRouteLength, const MSStage *const previous) const =0
Called on writing vehroute output.
Position getLanePosition(const MSLane *lane, double at, double offset) const
get position on lane at length at with orthogonal offset
Definition: MSStage.cpp:147
MSStageType myType
The type of this stage.
Definition: MSStage.h:233
double getEdgeAngle(const MSEdge *e, double at) const
get angle of the edge at a certain position
Definition: MSStage.cpp:153
virtual const MSEdge * getEdge() const
Returns the current edge.
Definition: MSStage.cpp:76
MSStage & operator=(const MSStage &)=delete
Invalidated assignment operator.
const std::string & getGroup() const
return the id of the group of transportables traveling together
Definition: MSStage.h:119
static const double ROADSIDE_OFFSET
the offset for computing positions when standing at an edge
Definition: MSStage.h:239
double myArrivalPos
the position at which we want to arrive
Definition: MSStage.h:224
virtual double getAngle(SUMOTime now) const =0
returns the angle of the transportable
Position getEdgePosition(const MSEdge *e, double at, double offset) const
get position on edge e at length at with orthogonal offset
Definition: MSStage.cpp:142
const MSEdge * myDestination
the next edge to reach by getting transported
Definition: MSStage.h:218
virtual SUMOTime getWaitingTime(SUMOTime now) const
the time this transportable spent waiting
Definition: MSStage.cpp:94
SUMOTime myDeparted
the time at which this stage started
Definition: MSStage.h:227
double getAngle(SUMOTime now) const
Returns the angle of the container.
Definition: MSStage.cpp:567
const MSLane * getLane() const
Returns the current lane.
Definition: MSStage.cpp:582
double getEdgePos(SUMOTime now) const
Returns the offset from the start of the current edge measured in its natural direction.
Definition: MSStage.cpp:557
MSTransportableStateAdapter * myState
state that is to be manipulated by MSPModel
Definition: MSStage.h:523
ConstMSEdgeVector getEdges() const
the edges of the current stage
Definition: MSStage.cpp:551
SUMOTime getWaitingTime(SUMOTime now) const
Returns the time the container spent waiting.
Definition: MSStage.cpp:572
double myDepartPosLat
the lateral depart position
Definition: MSStage.h:541
double getSpeed() const
Returns the speed of the container.
Definition: MSStage.cpp:577
const std::vector< const MSEdge * >::iterator getRouteStep() const
Definition: MSStage.h:509
virtual MSTransportableStateAdapter * getState() const
Definition: MSStage.h:463
double getDepartPosLat() const
Definition: MSStage.h:517
double mySpeed
the speed of the transportable
Definition: MSStage.h:535
MSEdge * myCurrentInternalEdge
The current internal edge this transportable is on or nullptr.
Definition: MSStage.h:532
Position getPosition(SUMOTime now) const
Returns the position of the container.
Definition: MSStage.cpp:562
const MSEdge * getEdge() const
Returns the current edge.
Definition: MSStage.cpp:537
virtual const MSEdge * getNextRouteEdge() const =0
virtual bool moveToNextEdge(MSTransportable *transportable, SUMOTime currentTime, MSEdge *nextInternal=0)=0
move forward and return whether the transportable arrived
const std::vector< const MSEdge * > & getRoute() const
Definition: MSStage.h:505
virtual void setRouteIndex(MSTransportable *const transportable, int routeOffset)
place transportable on a previously passed edge
Definition: MSStage.cpp:587
std::vector< const MSEdge * > myRoute
The route of the container.
Definition: MSStage.h:526
double getDepartPos() const
Definition: MSStage.h:513
MSStageMoving(const std::vector< const MSEdge * > &route, MSStoppingPlace *toStop, const double speed, const double departPos, const double arrivalPos, const double departPosLat, MSStageType type)
constructor
Definition: MSStage.h:453
double myDepartPos
the depart position
Definition: MSStage.h:538
const MSEdge * getFromEdge() const
Returns first edge of the containers route.
Definition: MSStage.cpp:546
virtual void replaceRoute(MSTransportable *const transportable, const ConstMSEdgeVector &edges, int routeOffset)
Definition: MSStage.cpp:596
virtual double getMaxSpeed(const MSTransportable *const transportable=nullptr) const =0
the maximum speed of the transportable
std::vector< const MSEdge * >::iterator myRouteStep
current step
Definition: MSStage.h:529
virtual ~MSStageMoving()
destructor
Definition: MSStage.cpp:532
MSStageTrip(const MSStageTrip &)
Invalidated copy constructor.
const bool myHaveArrivalPos
whether an arrivalPos was in the input
Definition: MSStage.h:358
double getAngle(SUMOTime now) const
returns the angle of the transportable
Definition: MSStage.cpp:210
MSStageTrip(const MSEdge *origin, MSStoppingPlace *fromStop, const MSEdge *destination, MSStoppingPlace *toStop, const SUMOTime duration, const SVCPermissions modeSet, const std::string &vTypes, const double speed, const double walkFactor, const std::string &group, const double departPosLat, const bool hasArrivalPos, const double arrivalPos)
constructor
Definition: MSStage.cpp:172
MSStageTrip & operator=(const MSStageTrip &)
Invalidated assignment operator.
void proceed(MSNet *net, MSTransportable *transportable, SUMOTime now, MSStage *previous)
proceeds to the next step
Definition: MSStage.cpp:392
const std::string setArrived(MSNet *net, MSTransportable *transportable, SUMOTime now, const bool vehicleArrived)
logs end of the step
Definition: MSStage.cpp:229
double getDistance() const
get travel distance in this stage
Definition: MSStage.h:281
std::string getStageDescription(const bool isPerson) const
return (brief) string representation of the current stage
Definition: MSStage.h:286
std::string getStageSummary(const bool isPerson) const
return string summary of the current stage
Definition: MSStage.cpp:399
const std::string myVTypes
The possible vehicles to use.
Definition: MSStage.h:340
double myDepartPos
The depart position.
Definition: MSStage.h:352
double getEdgePos(SUMOTime now) const
Definition: MSStage.cpp:223
MSStage * clone() const
Definition: MSStage.cpp:195
const MSEdge * getEdge() const
Returns the current edge.
Definition: MSStage.cpp:217
void routeOutput(const bool isPerson, OutputDevice &os, const bool withRouteLength, const MSStage *const previous) const
Called on writing vehroute output.
Definition: MSStage.h:319
const MSEdge * myOrigin
the origin edge
Definition: MSStage.h:328
void tripInfoOutput(OutputDevice &os, const MSTransportable *const transportable) const
Called on writing tripinfo output.
Definition: MSStage.h:309
const double mySpeed
The walking speed.
Definition: MSStage.h:343
MSStoppingPlace * myOriginStop
the origin edge
Definition: MSStage.h:331
SUMOTime myDuration
the time the trip should take (applies to only walking)
Definition: MSStage.h:334
const double myWalkFactor
The factor to apply to walking durations.
Definition: MSStage.h:346
const double myDepartPosLat
The lateral depart position.
Definition: MSStage.h:355
void setOrigin(const MSEdge *origin)
change origin for parking area rerouting
Definition: MSStage.h:297
MSStoppingPlace * getOriginStop() const
returns the origin stop (if any). only needed for MSStageTrip
Definition: MSStage.h:271
const SVCPermissions myModeSet
The allowed modes of transportation.
Definition: MSStage.h:337
Position getPosition(SUMOTime now) const
returns the position of the transportable
Definition: MSStage.cpp:203
virtual ~MSStageTrip()
destructor
Definition: MSStage.cpp:192
std::string myGroup
The group for this personTrip.
Definition: MSStage.h:349
MSStageWaiting(const MSStageWaiting &)
Invalidated copy constructor.
void routeOutput(const bool isPerson, OutputDevice &os, const bool withRouteLength, const MSStage *const previous) const
Called on writing vehroute output.
Definition: MSStage.cpp:476
MSStageWaiting & operator=(const MSStageWaiting &)=delete
Invalidated assignment operator.
SUMOTime getUntil() const
Definition: MSStage.cpp:427
double getDistance() const
get travel distance in this stage
Definition: MSStage.h:395
SUMOTime myWaitingDuration
the time the person is waiting
Definition: MSStage.h:429
SUMOTime myWaitingUntil
the time until the person is waiting
Definition: MSStage.h:432
SUMOTime getWaitingTime(SUMOTime now) const
the time this transportable spent waiting
Definition: MSStage.cpp:502
void proceed(MSNet *net, MSTransportable *transportable, SUMOTime now, MSStage *previous)
proceeds to the next step
Definition: MSStage.cpp:446
std::string getStageDescription(const bool isPerson) const
return (brief) string representation of the current stage
Definition: MSStage.h:401
double getAngle(SUMOTime now) const
returns the angle of the transportable
Definition: MSStage.cpp:440
MSStage * clone() const
Definition: MSStage.cpp:422
std::string myActType
The type of activity.
Definition: MSStage.h:435
virtual ~MSStageWaiting()
destructor
Definition: MSStage.cpp:419
void abort(MSTransportable *)
abort this stage (TraCI)
Definition: MSStage.cpp:508
std::string getStageSummary(const bool isPerson) const
return string summary of the current stage
Definition: MSStage.cpp:517
Position getPosition(SUMOTime now) const
returns the position of the transportable
Definition: MSStage.cpp:433
MSStageWaiting(const MSEdge *destination, MSStoppingPlace *toStop, SUMOTime duration, SUMOTime until, double pos, const std::string &actType, const bool initial)
constructor
Definition: MSStage.cpp:407
void tripInfoOutput(OutputDevice &os, const MSTransportable *const transportable) const
Called on writing tripinfo output.
Definition: MSStage.cpp:463
A lane area vehicles can halt at.
Abstract in-person device.
abstract base class for managing callbacks to retrieve various state information from the model
Definition: MSPModel.h:130
The car-following model and parameter.
Definition: MSVehicleType.h:62
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:60
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:36
Representation of a vehicle.
Definition: SUMOVehicle.h:58
Structure representing possible vehicle parameter.