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.sourceforge.net/
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>
39 #include "MSCFModel.h"
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  }
210 
211 
212 
215 
219  SUMOReal getWidth() const {
220  return myParameter.width;
221  }
222 
226  SUMOReal getHeight() const {
227  return myParameter.height;
228  }
229 
235  return myParameter.shape;
236  }
237 
241  std::string getOSGFile() const {
242  return myParameter.osgFile;
243  }
244 
245 
249  std::string getImgFile() const {
250  return myParameter.imgFile;
251  }
252 
254 
255 
258 
266  void setLength(const SUMOReal& length);
267 
268 
276  void setMinGap(const SUMOReal& minGap);
277 
278 
286  void setMaxSpeed(const SUMOReal& maxSpeed);
287 
288 
292  void setVClass(SUMOVehicleClass vclass);
293 
294 
302  void setDefaultProbability(const SUMOReal& prob);
303 
304 
312  void setSpeedFactor(const SUMOReal& factor);
313 
314 
322  void setSpeedDeviation(const SUMOReal& dev);
323 
324 
328  void setEmissionClass(SUMOEmissionClass eclass);
329 
330 
334  void setColor(const RGBColor& color);
335 
336 
344  void setWidth(const SUMOReal& width);
345 
346 
350  void setShape(SUMOVehicleShape shape);
352 
353 
354 
357 
363  static MSVehicleType* build(SUMOVTypeParameter& from);
364 
365 
371  static MSVehicleType* build(const std::string& id, const MSVehicleType* from);
373 
374 
378  bool amVehicleSpecific() const {
379  return myOriginalType != 0;
380  }
381 
382 
383 private:
386 
389 
392 
393 
394 private:
397 
400 
401 };
402 
403 
404 #endif
405 
406 /****************************************************************************/
407