SUMO - Simulation of Urban MObility
MSVehicleType.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // The car-following model and parameter
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
13 // Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
14 /****************************************************************************/
15 //
16 // This file is part of SUMO.
17 // SUMO is free software: you can redistribute it and/or modify
18 // it under the terms of the GNU General Public License as published by
19 // the Free Software Foundation, either version 3 of the License, or
20 // (at your option) any later version.
21 //
22 /****************************************************************************/
23 #ifndef MSVehicleType_h
24 #define MSVehicleType_h
25 
26 
27 // ===========================================================================
28 // included modules
29 // ===========================================================================
30 #ifdef _MSC_VER
31 #include <windows_config.h>
32 #else
33 #include <config.h>
34 #endif
35 
36 #include <cassert>
37 #include <map>
38 #include <string>
40 #include <utils/common/SUMOTime.h>
41 #include <utils/common/StdDefs.h>
45 #include <utils/common/RGBColor.h>
47 
48 
49 // ===========================================================================
50 // class declarations
51 // ===========================================================================
52 class MSLane;
53 class BinaryInputDevice;
54 class MSCFModel;
55 class SUMOVTypeParameter;
56 
57 
58 // ===========================================================================
59 // class definitions
60 // ===========================================================================
75 public:
80  MSVehicleType(const SUMOVTypeParameter& parameter);
81 
82 
84  virtual ~MSVehicleType();
85 
86 
91  bool wasSet(int what) const {
92  return (myParameter.setParameter & what) != 0;
93  }
94 
95 
98 
102  const std::string& getID() const {
103  return myParameter.id;
104  }
105 
106 
110  int getNumericalID() const {
111  return myIndex;
112  }
113 
114 
118  SUMOReal getLength() const {
119  return myParameter.length;
120  }
121 
122 
128  }
129 
130 
134  SUMOReal getMinGap() const {
135  return myParameter.minGap;
136  }
137 
138 
142  inline const MSCFModel& getCarFollowModel() const {
143  return *myCarFollowModel;
144  }
145 
146 
151  return *myCarFollowModel;
152  }
153 
154 
156  return myParameter.lcModel;
157  }
158 
159 
164  return myParameter.maxSpeed;
165  }
166 
167 
171  SUMOReal computeChosenSpeedDeviation(MTRand* rng, const SUMOReal minDevFactor = 0.2) const;
172 
173 
179  }
180 
181 
187  return myParameter.vehicleClass;
188  }
189 
190 
196  return myParameter.emissionClass;
197  }
198 
199 
203  const RGBColor& getColor() const {
204  return myParameter.color;
205  }
206 
207 
212  return myParameter.speedFactor;
213  }
214 
215 
220  return myParameter.speedDev;
221  }
222 
223 
228  return myParameter.impatience;
229  }
231 
232 
233 
236 
240  SUMOReal getWidth() const {
241  return myParameter.width;
242  }
243 
247  SUMOReal getHeight() const {
248  return myParameter.height;
249  }
250 
256  return myParameter.shape;
257  }
258 
262  std::string getOSGFile() const {
263  return myParameter.osgFile;
264  }
265 
266 
270  std::string getImgFile() const {
271  return myParameter.imgFile;
272  }
273 
274 
278  unsigned int getPersonCapacity() const {
280  }
281 
282 
286  unsigned int getContainerCapacity() const {
288  }
289 
295  }
296 
302  }
303 
305 
306 
309 
317  void setLength(const SUMOReal& length);
318 
319 
327  void setMinGap(const SUMOReal& minGap);
328 
329 
337  void setMaxSpeed(const SUMOReal& maxSpeed);
338 
339 
343  void setVClass(SUMOVehicleClass vclass);
344 
345 
353  void setDefaultProbability(const SUMOReal& prob);
354 
355 
363  void setSpeedFactor(const SUMOReal& factor);
364 
365 
373  void setSpeedDeviation(const SUMOReal& dev);
374 
375 
379  void setEmissionClass(SUMOEmissionClass eclass);
380 
381 
385  void setColor(const RGBColor& color);
386 
387 
395  void setWidth(const SUMOReal& width);
396 
397 
401  void setShape(SUMOVehicleShape shape);
402 
403 
407  void setImpatience(const SUMOReal impatience);
409 
410 
411 
414 
420  static MSVehicleType* build(SUMOVTypeParameter& from);
421 
422 
428  static MSVehicleType* build(const std::string& id, const MSVehicleType* from);
430 
431 
435  bool amVehicleSpecific() const {
436  return myOriginalType != 0;
437  }
438 
439 
441  return myParameter;
442  }
443 
444 
445 private:
448 
450  const int myIndex;
451 
454 
457 
459  static int myNextIndex;
460 
461 
462 private:
465 
468 
469 };
470 
471 
472 #endif
473 
474 /****************************************************************************/
475 
SUMOTime getBoardingDuration() const
Get this vehicle type&#39;s boarding duration.
bool wasSet(int what) const
Returns whether the given parameter was set.
Definition: MSVehicleType.h:91
void setImpatience(const SUMOReal impatience)
Set a new value for this type&#39;s impatience.
SUMOReal getMaxSpeed() const
Get vehicle&#39;s maximum speed [m/s].
long long int SUMOTime
Definition: SUMOTime.h:43
bool amVehicleSpecific() const
Returns whether this type belongs to a single vehicle only (was modified)
SUMOVehicleClass getVehicleClass() const
Get this vehicle type&#39;s vehicle class.
MSCFModel & getCarFollowModel()
Returns the vehicle type&#39;s car following model definition (non-const version)
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
std::string getOSGFile() const
Get this vehicle type&#39;s 3D model file name.
SUMOTime getLoadingDuration() const
Get this vehicle type&#39;s loading duration.
SUMOReal getLengthWithGap() const
Get vehicle&#39;s length including the minimum gap [m].
void setShape(SUMOVehicleShape shape)
Set a new value for this type&#39;s shape.
SUMOVehicleShape shape
This class&#39; shape.
Structure representing possible vehicle parameter.
void setSpeedFactor(const SUMOReal &factor)
Set a new value for this type&#39;s speed factor.
SUMOReal speedDev
The standard deviation for speed variations.
The car-following model abstraction.
Definition: MSCFModel.h:59
void setLength(const SUMOReal &length)
Set a new value for this type&#39;s length.
SUMOReal length
The physical vehicle length.
SUMOReal getLength() const
Get vehicle&#39;s length [m].
SUMOReal getImpatience() const
Returns this type&#39;s impatience.
SUMOVehicleClass vehicleClass
The vehicle&#39;s class.
MSVehicleType & operator=(const MSVehicleType &)
Invalidated assignment operator.
SUMOReal computeChosenSpeedDeviation(MTRand *rng, const SUMOReal minDevFactor=0.2) const
Computes and returns the speed deviation.
const MSVehicleType * myOriginalType
The original type.
void setWidth(const SUMOReal &width)
Set a new value for this type&#39;s width.
SUMOReal width
This class&#39; width.
SUMOReal getHeight() const
Get the height which vehicles of this class shall have when being drawn.
static MSVehicleType * build(SUMOVTypeParameter &from)
Builds the microsim vehicle type described by the given parameter.
The car-following model and parameter.
Definition: MSVehicleType.h:74
const int myIndex
the running index
const MSCFModel & getCarFollowModel() const
Returns the vehicle type&#39;s car following model definition (const version)
LaneChangeModel
SUMOReal speedFactor
The factor by which the maximum speed may deviate from the allowed max speed on the street...
void setSpeedDeviation(const SUMOReal &dev)
Set a new value for this type&#39;s speed deviation.
SUMOReal getSpeedDeviation() const
Returns this type&#39;s speed deviation.
SUMOTime boardingDuration
The time a person needs to board the vehicle.
const SUMOVTypeParameter & getParameter() const
SUMOReal getMinGap() const
Get the free space in front of vehicles of this class.
std::string osgFile
3D model file for this class
int SUMOEmissionClass
std::string imgFile
Image file for this class.
virtual ~MSVehicleType()
Destructor.
unsigned int containerCapacity
The container capacity of the vehicle.
void setEmissionClass(SUMOEmissionClass eclass)
Set a new value for this type&#39;s emission class.
unsigned int getPersonCapacity() const
Get this vehicle type&#39;s person capacity.
void setMinGap(const SUMOReal &minGap)
Set a new value for this type&#39;s minimum gap.
SUMOVehicleShape getGuiShape() const
Get this vehicle type&#39;s shape.
int getNumericalID() const
Returns the running index of the vehicle type.
SUMOVTypeParameter myParameter
the parameter container
SUMOReal maxSpeed
The vehicle type&#39;s maximum speed [m/s].
SUMOReal getSpeedFactor() const
Returns this type&#39;s speed factor.
SUMOReal getWidth() const
Get the width which vehicles of this class shall have when being drawn.
MSCFModel * myCarFollowModel
ID of the car following model.
int setParameter
Information for the router which parameter were set.
LaneChangeModel getLaneChangeModel() const
SUMOReal impatience
The vehicle&#39;s impatience (willingness to obstruct others)
SUMOVehicleShape
Definition of vehicle classes to differ between different appearences.
unsigned int personCapacity
The person capacity of the vehicle.
SUMOReal defaultProbability
The probability when being added to a distribution without an explicit probability.
SUMOTime loadingDuration
The time a container needs to get loaded on the vehicle.
SUMOReal getDefaultProbability() const
Get the default probability of this vehicle type.
RGBColor color
The color.
static int myNextIndex
next value for the running index
const std::string & getID() const
Returns the name of the vehicle type.
std::string id
The vehicle type&#39;s id.
MSVehicleType(const SUMOVTypeParameter &parameter)
Constructor.
const RGBColor & getColor() const
Returns this type&#39;s color.
void setVClass(SUMOVehicleClass vclass)
Set a new value for this type&#39;s vehicle class.
void setDefaultProbability(const SUMOReal &prob)
Set a new value for this type&#39;s default probability.
void setMaxSpeed(const SUMOReal &maxSpeed)
Set a new value for this type&#39;s maximum speed.
void setColor(const RGBColor &color)
Set a new value for this type&#39;s color.
unsigned int getContainerCapacity() const
Get this vehicle type&#39;s container capacity.
#define SUMOReal
Definition: config.h:214
std::string getImgFile() const
Get this vehicle type&#39;s raster model file name.
LaneChangeModel lcModel
The lane-change model to use.
SUMOEmissionClass getEmissionClass() const
Get this vehicle type&#39;s emission class.
SUMOReal height
This class&#39; height.
Representation of a lane in the micro simulation.
Definition: MSLane.h:77
Encapsulates binary reading operations on a file.
SUMOEmissionClass emissionClass
The emission class of this vehicle.
SUMOReal minGap
This class&#39; free space in front of the vehicle itself.