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