SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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-sim.org/
13 // Copyright (C) 2001-2014 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 
275 
276 
279 
287  void setLength(const SUMOReal& length);
288 
289 
297  void setMinGap(const SUMOReal& minGap);
298 
299 
307  void setMaxSpeed(const SUMOReal& maxSpeed);
308 
309 
313  void setVClass(SUMOVehicleClass vclass);
314 
315 
323  void setDefaultProbability(const SUMOReal& prob);
324 
325 
333  void setSpeedFactor(const SUMOReal& factor);
334 
335 
343  void setSpeedDeviation(const SUMOReal& dev);
344 
345 
349  void setEmissionClass(SUMOEmissionClass eclass);
350 
351 
355  void setColor(const RGBColor& color);
356 
357 
365  void setWidth(const SUMOReal& width);
366 
367 
371  void setShape(SUMOVehicleShape shape);
372 
373 
377  void setImpatience(const SUMOReal impatience);
379 
380 
381 
384 
390  static MSVehicleType* build(SUMOVTypeParameter& from);
391 
392 
398  static MSVehicleType* build(const std::string& id, const MSVehicleType* from);
400 
401 
405  bool amVehicleSpecific() const {
406  return myOriginalType != 0;
407  }
408 
409 
411  return myParameter;
412  }
413 
414 
415 private:
418 
420  const int myIndex;
421 
424 
427 
429  static int myNextIndex;
430 
431 
432 private:
435 
438 
439 };
440 
441 
442 #endif
443 
444 /****************************************************************************/
445 
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's impatience.
SUMOReal getMaxSpeed() const
Get vehicle's maximum speed [m/s].
bool amVehicleSpecific() const
Returns whether this type belongs to a single vehicle only (was modified)
SUMOVehicleClass getVehicleClass() const
Get this vehicle type's vehicle class.
MSCFModel & getCarFollowModel()
Returns the vehicle type'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's 3D model file name.
SUMOReal getLengthWithGap() const
Get vehicle's length including the minimum gap [m].
void setShape(SUMOVehicleShape shape)
Set a new value for this type's shape.
SUMOVehicleShape shape
This class' shape.
Structure representing possible vehicle parameter.
void setSpeedFactor(const SUMOReal &factor)
Set a new value for this type's speed factor.
SUMOReal speedDev
The standard deviation for speed variations.
The car-following model abstraction.
Definition: MSCFModel.h:58
void setLength(const SUMOReal &length)
Set a new value for this type's length.
SUMOReal length
The physical vehicle length.
SUMOReal getLength() const
Get vehicle's length [m].
SUMOReal getImpatience() const
Returns this type's impatience.
SUMOVehicleClass vehicleClass
The vehicle's class.
MSVehicleType & operator=(const MSVehicleType &)
Invalidated assignment operator.
const MSVehicleType * myOriginalType
The original type.
void setWidth(const SUMOReal &width)
Set a new value for this type's width.
SUMOReal width
This class' 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'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's speed deviation.
SUMOReal getSpeedDeviation() const
Returns this type's speed deviation.
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.
void setEmissionClass(SUMOEmissionClass eclass)
Set a new value for this type's emission class.
void setMinGap(const SUMOReal &minGap)
Set a new value for this type's minimum gap.
SUMOReal computeChosenSpeedDeviation(MTRand &rng, const SUMOReal minDevFactor=0.2) const
Computes and returns the speed deviation.
SUMOVehicleShape getGuiShape() const
Get this vehicle type's shape.
int getNumericalID() const
Returns the running index of the vehicle type.
SUMOVTypeParameter myParameter
the parameter container
SUMOReal maxSpeed
The vehicle type's maximum speed [m/s].
SUMOReal getSpeedFactor() const
Returns this type'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's impatience (willingness to obstruct others)
SUMOVehicleShape
Definition of vehicle classes to differ between different appearences.
SUMOReal defaultProbability
The probability when being added to a distribution without an explicit probability.
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's id.
MSVehicleType(const SUMOVTypeParameter &parameter)
Constructor.
const RGBColor & getColor() const
Returns this type's color.
void setVClass(SUMOVehicleClass vclass)
Set a new value for this type's vehicle class.
void setDefaultProbability(const SUMOReal &prob)
Set a new value for this type's default probability.
void setMaxSpeed(const SUMOReal &maxSpeed)
Set a new value for this type's maximum speed.
void setColor(const RGBColor &color)
Set a new value for this type's color.
#define SUMOReal
Definition: config.h:215
std::string getImgFile() const
Get this vehicle type's raster model file name.
LaneChangeModel lcModel
The lane-change model to use.
SUMOEmissionClass getEmissionClass() const
Get this vehicle type's emission class.
SUMOReal height
This class' 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' free space in front of the vehicle itself.