Eclipse SUMO - Simulation of Urban MObility
NIVissimTL.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
16 // -------------------
17 /****************************************************************************/
18 #ifndef NIVissimTL_h
19 #define NIVissimTL_h
20 
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
27 
28 #include <map>
29 #include <string>
30 #include <vector>
33 #include <utils/common/SUMOTime.h>
34 
35 
36 // ===========================================================================
37 // class declarations
38 // ===========================================================================
40 class NBLoadedTLDef;
41 class NBEdgeCont;
42 
43 
44 // ===========================================================================
45 // class definitions
46 // ===========================================================================
50 class NIVissimTL {
51 public:
52  NIVissimTL(int id, const std::string& type, const std::string& name,
53  SUMOTime absdur, SUMOTime offset);
54  ~NIVissimTL();
55 // void computeBounding();
56  std::string getType() const;
57  int getID() const;
58 
59 public:
60  static bool dictionary(int id, const std::string& type,
61  const std::string& name, SUMOTime absdur, SUMOTime offset);
62  static bool dictionary(int id, NIVissimTL* o);
63  static NIVissimTL* dictionary(int id);
64 // static std::vector<int> getWithin(const AbstractPoly &poly, double offset);
65  static void clearDict();
67  NBEdgeCont& ec);
68 
69 public:
70  class NIVissimTLSignal;
72  typedef std::map<int, NIVissimTLSignal*> SSignalDictType;
73  typedef std::map<int, NIVissimTLSignalGroup*> SGroupDictType;
74  typedef std::map<int, SSignalDictType> SignalDictType;
75  typedef std::map<int, SGroupDictType> GroupDictType;
76 
81  public:
82  NIVissimTLSignal(int id, const std::string& name,
83  const std::vector<int>& groupids, int edgeid, int laneno,
84  double position, const std::vector<int>& assignedVehicleTypes);
86  bool isWithin(const PositionVector& poly) const;
87  Position getPosition() const;
88  bool addTo(NBEdgeCont& ec, NBLoadedTLDef* node) const;
89 
90  public:
91  static bool dictionary(int lsaid, int id, NIVissimTLSignal* o);
92  static NIVissimTLSignal* dictionary(int lsaid, int id);
93  static void clearDict();
94  static SSignalDictType getSignalsFor(int tlid);
95 
96  protected:
97  int myID;
98  std::string myName;
99  std::vector<int> myGroupIDs;
100  int myEdgeID;
101  int myLane;
102  double myPosition;
103  std::vector<int> myVehicleTypes;
105  };
106 
108  public:
109  NIVissimTLSignalGroup(int id, const std::string& name,
110  bool isGreenBegin, const std::vector<double>& times,
111  SUMOTime tredyellow, SUMOTime tyellow);
113  bool addTo(NBLoadedTLDef* node) const;
114  public:
115  static bool dictionary(int lsaid, int id, NIVissimTLSignalGroup* o);
116  static NIVissimTLSignalGroup* dictionary(int lsaid, int id);
117  static void clearDict();
118  static SGroupDictType getGroupsFor(int tlid);
119 
120  private:
121  int myID;
122  std::string myName;
123  std::vector<double> myTimes;
127  };
128 
129 protected:
130  int myID;
131  std::string myName;
135  std::string myType;
136 private:
137  typedef std::map<int, NIVissimTL*> DictType;
138  static DictType myDict;
139 };
140 
141 
142 #endif
143 
144 /****************************************************************************/
145 
NIVissimTL::myOffset
SUMOTime myOffset
Definition: NIVissimTL.h:133
NIVissimTL::myName
std::string myName
Definition: NIVissimTL.h:131
NIVissimTL::myAbsDuration
SUMOTime myAbsDuration
Definition: NIVissimTL.h:132
NIVissimTL::NIVissimTLSignalGroup::NIVissimTLSignalGroup
NIVissimTLSignalGroup(int id, const std::string &name, bool isGreenBegin, const std::vector< double > &times, SUMOTime tredyellow, SUMOTime tyellow)
Definition: NIVissimTL.cpp:201
NIVissimTL::NIVissimTLSignal::getPosition
Position getPosition() const
Definition: NIVissimTL.cpp:75
NIVissimTL::myID
int myID
Definition: NIVissimTL.h:130
NIVissimTL::NIVissimTLSignalGroup::myFirstIsRed
bool myFirstIsRed
Definition: NIVissimTL.h:124
SUMOTime.h
NBEdgeCont
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:61
NIVissimTL::NIVissimTLSignalGroup::myTRedYellow
SUMOTime myTRedYellow
Definition: NIVissimTL.h:125
NIVissimTL::NIVissimTLSignal
Definition: NIVissimTL.h:80
NBTrafficLightLogicCont
A container for traffic light definitions and built programs.
Definition: NBTrafficLightLogicCont.h:58
NIVissimTL::NIVissimTL
NIVissimTL(int id, const std::string &type, const std::string &name, SUMOTime absdur, SUMOTime offset)
Definition: NIVissimTL.cpp:305
NIVissimTL::NIVissimTLSignal::~NIVissimTLSignal
~NIVissimTLSignal()
Definition: NIVissimTL.cpp:66
NIVissimTL::NIVissimTLSignalGroup
Definition: NIVissimTL.h:107
NIVissimTL::NIVissimTLSignalGroup::myName
std::string myName
Definition: NIVissimTL.h:122
NIVissimTL::NIVissimTLSignal::getSignalsFor
static SSignalDictType getSignalsFor(int tlid)
Definition: NIVissimTL.cpp:123
SUMOTime
long long int SUMOTime
Definition: SUMOTime.h:35
NIVissimTL::clearDict
static void clearDict()
Definition: NIVissimTL.cpp:354
NIVissimTL::NIVissimTLSignal::dictionary
static bool dictionary(int lsaid, int id, NIVissimTLSignal *o)
Definition: NIVissimTL.cpp:81
PositionVector
A list of positions.
Definition: PositionVector.h:46
NIVissimTL::dictionary
static bool dictionary(int id, const std::string &type, const std::string &name, SUMOTime absdur, SUMOTime offset)
Definition: NIVissimTL.cpp:321
NIVissimTL::dict_SetSignals
static bool dict_SetSignals(NBTrafficLightLogicCont &tlc, NBEdgeCont &ec)
Definition: NIVissimTL.cpp:366
NIVissimTL::myCurrentGroup
NIVissimTLSignalGroup * myCurrentGroup
Definition: NIVissimTL.h:134
NIVissimTL::NIVissimTLSignal::myName
std::string myName
Definition: NIVissimTL.h:98
NIVissimTL::getID
int getID() const
Definition: NIVissimTL.cpp:430
NIVissimTL::NIVissimTLSignal::myEdgeID
int myEdgeID
Definition: NIVissimTL.h:100
NIVissimTL::NIVissimTLSignalGroup::myID
int myID
Definition: NIVissimTL.h:121
NIVissimTL::NIVissimTLSignal::addTo
bool addTo(NBEdgeCont &ec, NBLoadedTLDef *node) const
Definition: NIVissimTL.cpp:133
NIVissimTL::NIVissimTLSignalGroup::myTYellow
SUMOTime myTYellow
Definition: NIVissimTL.h:125
AbstractPoly.h
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
NIVissimTL::~NIVissimTL
~NIVissimTL()
Definition: NIVissimTL.cpp:314
NIVissimTL::NIVissimTLSignal::myGroupIDs
std::vector< int > myGroupIDs
Definition: NIVissimTL.h:99
NIVissimTL::NIVissimTLSignalGroup::dictionary
static bool dictionary(int lsaid, int id, NIVissimTLSignalGroup *o)
Definition: NIVissimTL.cpp:215
NIVissimTL::NIVissimTLSignalGroup::myTimes
std::vector< double > myTimes
Definition: NIVissimTL.h:123
NIVissimTL::NIVissimTLSignal::myPosition
double myPosition
Definition: NIVissimTL.h:102
NIVissimTL::NIVissimTLSignalGroup::myDict
static GroupDictType myDict
Definition: NIVissimTL.h:126
NIVissimTL::NIVissimTLSignalGroup::addTo
bool addTo(NBLoadedTLDef *node) const
Definition: NIVissimTL.cpp:274
NIVissimTL::NIVissimTLSignal::NIVissimTLSignal
NIVissimTLSignal(int id, const std::string &name, const std::vector< int > &groupids, int edgeid, int laneno, double position, const std::vector< int > &assignedVehicleTypes)
Definition: NIVissimTL.cpp:54
NIVissimTL::NIVissimTLSignal::myID
int myID
Definition: NIVissimTL.h:97
NIVissimTL
Definition: NIVissimTL.h:50
NIVissimTL::NIVissimTLSignal::clearDict
static void clearDict()
Definition: NIVissimTL.cpp:112
NIVissimTL::GroupDictType
std::map< int, SGroupDictType > GroupDictType
Definition: NIVissimTL.h:75
NIVissimTL::SignalDictType
std::map< int, SSignalDictType > SignalDictType
Definition: NIVissimTL.h:74
NIVissimTL::DictType
std::map< int, NIVissimTL * > DictType
Definition: NIVissimTL.h:137
NIVissimTL::NIVissimTLSignal::myDict
static SignalDictType myDict
Definition: NIVissimTL.h:104
NBLoadedTLDef
A loaded (complete) traffic light logic.
Definition: NBLoadedTLDef.h:42
NIVissimTL::SGroupDictType
std::map< int, NIVissimTLSignalGroup * > SGroupDictType
Definition: NIVissimTL.h:73
NIVissimTL::NIVissimTLSignalGroup::clearDict
static void clearDict()
Definition: NIVissimTL.cpp:253
NIVissimTL::getType
std::string getType() const
Definition: NIVissimTL.cpp:424
NIVissimTL::myDict
static DictType myDict
Definition: NIVissimTL.h:138
config.h
NIVissimTL::NIVissimTLSignal::isWithin
bool isWithin(const PositionVector &poly) const
Definition: NIVissimTL.cpp:69
NIVissimTL::SSignalDictType
std::map< int, NIVissimTLSignal * > SSignalDictType
Definition: NIVissimTL.h:71
NIVissimTL::NIVissimTLSignal::myVehicleTypes
std::vector< int > myVehicleTypes
Definition: NIVissimTL.h:103
NIVissimTL::NIVissimTLSignal::myLane
int myLane
Definition: NIVissimTL.h:101
NIVissimTL::NIVissimTLSignalGroup::getGroupsFor
static SGroupDictType getGroupsFor(int tlid)
Definition: NIVissimTL.cpp:264
PositionVector.h
NIVissimTL::myType
std::string myType
Definition: NIVissimTL.h:135
NIVissimTL::NIVissimTLSignalGroup::~NIVissimTLSignalGroup
~NIVissimTLSignalGroup()
Definition: NIVissimTL.cpp:211