SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SUMOVehicleParameter.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // Structure representing possible vehicle 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 SUMOVehicleParameter_h
24 #define SUMOVehicleParameter_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 <string>
37 #include "SUMOVehicleClass.h"
38 #include "RGBColor.h"
39 #include "SUMOTime.h"
41 
42 
43 // ===========================================================================
44 // class declarations
45 // ===========================================================================
46 class OutputDevice;
47 class OptionsCont;
48 
49 
50 // ===========================================================================
51 // value definitions
52 // ===========================================================================
53 const int VEHPARS_COLOR_SET = 1;
54 const int VEHPARS_VTYPE_SET = 2;
55 const int VEHPARS_DEPARTLANE_SET = 2 << 1;
56 const int VEHPARS_DEPARTPOS_SET = 2 << 2;
57 const int VEHPARS_DEPARTSPEED_SET = 2 << 3;
58 const int VEHPARS_PERIODNUM_SET = 2 << 4;
59 const int VEHPARS_PERIODFREQ_SET = 2 << 5;
60 const int VEHPARS_ROUTE_SET = 2 << 6;
61 const int VEHPARS_ARRIVALLANE_SET = 2 << 7;
62 const int VEHPARS_ARRIVALPOS_SET = 2 << 8;
63 const int VEHPARS_ARRIVALSPEED_SET = 2 << 9;
64 const int VEHPARS_LINE_SET = 2 << 10;
65 const int VEHPARS_TAZ_SET = 2 << 11;
66 const int VEHPARS_FORCE_REROUTE = 2 << 12;
67 const int VEHPARS_PERSON_CAPACITY_SET = 2 << 13;
68 const int VEHPARS_PERSON_NUMBER_SET = 2 << 14;
69 
70 const int STOP_INDEX_END = -1;
71 const int STOP_INDEX_FIT = -2;
72 
73 const int STOP_END_SET = 1;
74 const int STOP_START_SET = 2;
75 const int STOP_TRIGGER_SET = 2 << 1;
76 const int STOP_PARKING_SET = 2 << 2;
77 const int STOP_EXPECTED_SET = 2 << 3;
78 
79 
80 // ===========================================================================
81 // enum definitions
82 // ===========================================================================
96 };
97 
98 
118 };
119 
120 
146 };
147 
148 
164 };
165 
166 
180 };
181 
182 
198 };
199 
200 
214 };
215 
216 
217 // ===========================================================================
218 // struct definitions
219 // ===========================================================================
231 public:
237 
238 
243  bool wasSet(int what) const {
244  return (setParameter & what) != 0;
245  }
246 
247 
254  void write(OutputDevice& dev, const OptionsCont& oc) const;
255 
256 
262  void writeStops(OutputDevice& dev) const;
263 
269  bool defaultOptionOverrides(const OptionsCont& oc, const std::string& optionName) const;
270 
271 
272 
275 
285  static bool parseDepart(const std::string& val, const std::string& element, const std::string& id,
286  SUMOTime& depart, DepartDefinition& dd, std::string& error);
287 
288 
298  static bool parseDepartLane(const std::string& val, const std::string& element, const std::string& id,
299  int& lane, DepartLaneDefinition& dld, std::string& error);
300 
301 
311  static bool parseDepartPos(const std::string& val, const std::string& element, const std::string& id,
312  SUMOReal& pos, DepartPosDefinition& dpd, std::string& error);
313 
314 
324  static bool parseDepartSpeed(const std::string& val, const std::string& element, const std::string& id,
325  SUMOReal& speed, DepartSpeedDefinition& dsd, std::string& error);
326 
327 
337  static bool parseArrivalLane(const std::string& val, const std::string& element, const std::string& id,
338  int& lane, ArrivalLaneDefinition& ald, std::string& error);
339 
340 
350  static bool parseArrivalPos(const std::string& val, const std::string& element, const std::string& id,
351  SUMOReal& pos, ArrivalPosDefinition& apd, std::string& error);
352 
353 
363  static bool parseArrivalSpeed(const std::string& val, const std::string& element, const std::string& id,
364  SUMOReal& speed, ArrivalSpeedDefinition& asd, std::string& error);
366 
367 
375  static SUMOReal interpretEdgePos(SUMOReal pos, SUMOReal maximumValue, SumoXMLAttr attr, const std::string& id);
376 
378  std::string id;
379 
381  std::string routeid;
383  std::string vtypeid;
385  mutable RGBColor color;
386 
387 
390 
408 
409 
412 
426 
427 
430 
436 #ifdef HAVE_SUBSECOND_TIMESTEPS
438 #else
440 #endif
441 
444 
445 
447  std::string line;
448 
450  std::string fromTaz;
451 
453  std::string toTaz;
454 
458  struct Stop {
460  std::string lane;
462  std::string busstop;
472  bool triggered;
474  bool parking;
476  std::set<std::string> awaitedPersons;
478  int index;
481  };
482 
484  std::vector<Stop> stops;
485 
487  unsigned int personCapacity;
488 
490  unsigned int personNumber;
491 
493  mutable int setParameter;
494 
495 
496 };
497 
498 #endif
499 
500 /****************************************************************************/
501