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-2013 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  SUMOReal getLength() const {
111  return myParameter.length;
112  }
113 
114 
120  }
121 
122 
126  SUMOReal getMinGap() const {
127  return myParameter.minGap;
128  }
129 
130 
134  inline const MSCFModel& getCarFollowModel() const {
135  return *myCarFollowModel;
136  }
137 
138 
143  return *myCarFollowModel;
144  }
145 
146 
148  return myParameter.lcModel;
149  }
150 
151 
156  return myParameter.maxSpeed;
157  }
158 
159 
163  SUMOReal computeChosenSpeedDeviation(MTRand& rng, const SUMOReal minDevFactor = 0.2) const;
164 
165 
171  }
172 
173 
179  return myParameter.vehicleClass;
180  }
181 
182 
188  return myParameter.emissionClass;
189  }
190 
191 
195  const RGBColor& getColor() const {
196  return myParameter.color;
197  }
198 
199 
204  return myParameter.speedFactor;
205  }
206 
207 
212  return myParameter.speedDev;
213  }
214 
215 
220  return myParameter.impatience;
221  }
223 
224 
225 
228 
232  SUMOReal getWidth() const {
233  return myParameter.width;
234  }
235 
239  SUMOReal getHeight() const {
240  return myParameter.height;
241  }
242 
248  return myParameter.shape;
249  }
250 
254  std::string getOSGFile() const {
255  return myParameter.osgFile;
256  }
257 
258 
262  std::string getImgFile() const {
263  return myParameter.imgFile;
264  }
265 
267 
268 
271 
279  void setLength(const SUMOReal& length);
280 
281 
289  void setMinGap(const SUMOReal& minGap);
290 
291 
299  void setMaxSpeed(const SUMOReal& maxSpeed);
300 
301 
305  void setVClass(SUMOVehicleClass vclass);
306 
307 
315  void setDefaultProbability(const SUMOReal& prob);
316 
317 
325  void setSpeedFactor(const SUMOReal& factor);
326 
327 
335  void setSpeedDeviation(const SUMOReal& dev);
336 
337 
341  void setEmissionClass(SUMOEmissionClass eclass);
342 
343 
347  void setColor(const RGBColor& color);
348 
349 
357  void setWidth(const SUMOReal& width);
358 
359 
363  void setShape(SUMOVehicleShape shape);
364 
365 
369  void setImpatience(const SUMOReal impatience);
371 
372 
373 
376 
382  static MSVehicleType* build(SUMOVTypeParameter& from);
383 
384 
390  static MSVehicleType* build(const std::string& id, const MSVehicleType* from);
392 
393 
397  bool amVehicleSpecific() const {
398  return myOriginalType != 0;
399  }
400 
401 
403  return myParameter;
404  }
405 
406 
407 private:
410 
413 
416 
417 
418 private:
421 
424 
425 };
426 
427 
428 #endif
429 
430 /****************************************************************************/
431 
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].
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.
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:58
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.
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 MSCFModel & getCarFollowModel() const
Returns the vehicle type&#39;s car following model definition (const version)
SUMOEmissionClass
Definition of vehicle emission classes.
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.
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
std::string imgFile
Image file for this class.
virtual ~MSVehicleType()
Destructor.
void setEmissionClass(SUMOEmissionClass eclass)
Set a new value for this type&#39;s emission class.
void setMinGap(const SUMOReal &minGap)
Set a new value for this type&#39;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&#39;s shape.
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.
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.
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.
#define SUMOReal
Definition: config.h:215
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.