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-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 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 parseDepartLane(const std::string& val, const std::string& element, const std::string& id,
286  int& lane, DepartLaneDefinition& dld, std::string& error);
287 
288 
298  static bool parseDepartPos(const std::string& val, const std::string& element, const std::string& id,
299  SUMOReal& pos, DepartPosDefinition& dpd, std::string& error);
300 
301 
311  static bool parseDepartSpeed(const std::string& val, const std::string& element, const std::string& id,
312  SUMOReal& speed, DepartSpeedDefinition& dsd, std::string& error);
313 
314 
324  static bool parseArrivalLane(const std::string& val, const std::string& element, const std::string& id,
325  int& lane, ArrivalLaneDefinition& ald, std::string& error);
326 
327 
337  static bool parseArrivalPos(const std::string& val, const std::string& element, const std::string& id,
338  SUMOReal& pos, ArrivalPosDefinition& apd, std::string& error);
339 
340 
350  static bool parseArrivalSpeed(const std::string& val, const std::string& element, const std::string& id,
351  SUMOReal& speed, ArrivalSpeedDefinition& asd, std::string& error);
353 
354 
362  static SUMOReal interpretEdgePos(SUMOReal pos, SUMOReal maximumValue, SumoXMLAttr attr, const std::string& id);
363 
365  std::string id;
366 
368  std::string routeid;
370  std::string vtypeid;
372  mutable RGBColor color;
373 
374 
377 
395 
396 
399 
413 
414 
417 
423 #ifdef HAVE_SUBSECOND_TIMESTEPS
425 #else
427 #endif
428 
429 
430 
432  std::string line;
433 
435  std::string fromTaz;
436 
438  std::string toTaz;
439 
443  struct Stop {
445  std::string lane;
447  std::string busstop;
457  bool triggered;
459  bool parking;
461  std::set<std::string> awaitedPersons;
463  int index;
466  };
467 
469  std::vector<Stop> stops;
470 
472  unsigned int personCapacity;
473 
475  unsigned int personNumber;
476 
478  mutable int setParameter;
479 
480 
481 };
482 
483 #endif
484 
485 /****************************************************************************/
486