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 
151  return myParameter.maxSpeed;
152  }
153 
154 
159 
160 
166  }
167 
168 
174  return myParameter.vehicleClass;
175  }
176 
177 
183  return myParameter.emissionClass;
184  }
185 
186 
190  const RGBColor& getColor() const {
191  return myParameter.color;
192  }
193 
194 
199  return myParameter.speedFactor;
200  }
201 
202 
207  return myParameter.speedDev;
208  }
209 
210 
215  return myParameter.impatience;
216  }
218 
219 
220 
223 
227  SUMOReal getWidth() const {
228  return myParameter.width;
229  }
230 
234  SUMOReal getHeight() const {
235  return myParameter.height;
236  }
237 
243  return myParameter.shape;
244  }
245 
249  std::string getOSGFile() const {
250  return myParameter.osgFile;
251  }
252 
253 
257  std::string getImgFile() const {
258  return myParameter.imgFile;
259  }
260 
262 
263 
266 
274  void setLength(const SUMOReal& length);
275 
276 
284  void setMinGap(const SUMOReal& minGap);
285 
286 
294  void setMaxSpeed(const SUMOReal& maxSpeed);
295 
296 
300  void setVClass(SUMOVehicleClass vclass);
301 
302 
310  void setDefaultProbability(const SUMOReal& prob);
311 
312 
320  void setSpeedFactor(const SUMOReal& factor);
321 
322 
330  void setSpeedDeviation(const SUMOReal& dev);
331 
332 
336  void setEmissionClass(SUMOEmissionClass eclass);
337 
338 
342  void setColor(const RGBColor& color);
343 
344 
352  void setWidth(const SUMOReal& width);
353 
354 
358  void setShape(SUMOVehicleShape shape);
359 
360 
364  void setImpatience(const SUMOReal impatience);
366 
367 
368 
371 
377  static MSVehicleType* build(SUMOVTypeParameter& from);
378 
379 
385  static MSVehicleType* build(const std::string& id, const MSVehicleType* from);
387 
388 
392  bool amVehicleSpecific() const {
393  return myOriginalType != 0;
394  }
395 
396 
398  return myParameter;
399  }
400 
401 
402 private:
405 
408 
411 
412 
413 private:
416 
419 
420 };
421 
422 
423 #endif
424 
425 /****************************************************************************/
426 
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 computeChosenSpeedDeviation(MTRand &rng) const
Computes and returns the speed deviation.
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.
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.
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.
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:221
std::string getImgFile() const
Get this vehicle type&#39;s raster model file name.
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:73
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.