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 /****************************************************************************/
15 // -------------------
16 /****************************************************************************/
17 #ifndef NIVissimTL_h
18 #define NIVissimTL_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 
27 #include <map>
28 #include <string>
29 #include <vector>
32 #include <utils/common/SUMOTime.h>
33 
34 
35 // ===========================================================================
36 // class declarations
37 // ===========================================================================
39 class NBLoadedTLDef;
40 class NBEdgeCont;
41 
42 
43 // ===========================================================================
44 // class definitions
45 // ===========================================================================
49 class NIVissimTL {
50 public:
51  NIVissimTL(int id, const std::string& type, const std::string& name,
52  SUMOTime absdur, SUMOTime offset);
53  ~NIVissimTL();
54 // void computeBounding();
55  std::string getType() const;
56  int getID() const;
57 
58 public:
59  static bool dictionary(int id, const std::string& type,
60  const std::string& name, SUMOTime absdur, SUMOTime offset);
61  static bool dictionary(int id, NIVissimTL* o);
62  static NIVissimTL* dictionary(int id);
63 // static std::vector<int> getWithin(const AbstractPoly &poly, double offset);
64  static void clearDict();
66  NBEdgeCont& ec);
67 
68 public:
69  class NIVissimTLSignal;
71  typedef std::map<int, NIVissimTLSignal*> SSignalDictType;
72  typedef std::map<int, NIVissimTLSignalGroup*> SGroupDictType;
73  typedef std::map<int, SSignalDictType> SignalDictType;
74  typedef std::map<int, SGroupDictType> GroupDictType;
75 
80  public:
81  NIVissimTLSignal(int id, const std::string& name,
82  const std::vector<int>& groupids, int edgeid, int laneno,
83  double position, const std::vector<int>& assignedVehicleTypes);
85  bool isWithin(const PositionVector& poly) const;
86  Position getPosition() const;
87  bool addTo(NBEdgeCont& ec, NBLoadedTLDef* node) const;
88 
89  public:
90  static bool dictionary(int lsaid, int id, NIVissimTLSignal* o);
91  static NIVissimTLSignal* dictionary(int lsaid, int id);
92  static void clearDict();
93  static SSignalDictType getSignalsFor(int tlid);
94 
95  protected:
96  int myID;
97  std::string myName;
98  std::vector<int> myGroupIDs;
99  int myEdgeID;
100  int myLane;
101  double myPosition;
102  std::vector<int> myVehicleTypes;
104  };
105 
107  public:
108  NIVissimTLSignalGroup(int id, const std::string& name,
109  bool isGreenBegin, const std::vector<double>& times,
110  SUMOTime tredyellow, SUMOTime tyellow);
112  bool addTo(NBLoadedTLDef* node) const;
113  public:
114  static bool dictionary(int lsaid, int id, NIVissimTLSignalGroup* o);
115  static NIVissimTLSignalGroup* dictionary(int lsaid, int id);
116  static void clearDict();
117  static SGroupDictType getGroupsFor(int tlid);
118 
119  private:
120  int myID;
121  std::string myName;
122  std::vector<double> myTimes;
126  };
127 
128 protected:
129  int myID;
130  std::string myName;
134  std::string myType;
135 private:
136  typedef std::map<int, NIVissimTL*> DictType;
137  static DictType myDict;
138 };
139 
140 
141 #endif
142 
143 /****************************************************************************/
144 
NIVissimTL::myOffset
SUMOTime myOffset
Definition: NIVissimTL.h:132
NIVissimTL::myName
std::string myName
Definition: NIVissimTL.h:130
NIVissimTL::myAbsDuration
SUMOTime myAbsDuration
Definition: NIVissimTL.h:131
NIVissimTL::NIVissimTLSignalGroup::NIVissimTLSignalGroup
NIVissimTLSignalGroup(int id, const std::string &name, bool isGreenBegin, const std::vector< double > &times, SUMOTime tredyellow, SUMOTime tyellow)
Definition: NIVissimTL.cpp:200
NIVissimTL::NIVissimTLSignal::getPosition
Position getPosition() const
Definition: NIVissimTL.cpp:74
NIVissimTL::myID
int myID
Definition: NIVissimTL.h:129
NIVissimTL::NIVissimTLSignalGroup::myFirstIsRed
bool myFirstIsRed
Definition: NIVissimTL.h:123
SUMOTime.h
NBEdgeCont
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:60
NIVissimTL::NIVissimTLSignalGroup::myTRedYellow
SUMOTime myTRedYellow
Definition: NIVissimTL.h:124
NIVissimTL::NIVissimTLSignal
Definition: NIVissimTL.h:79
NBTrafficLightLogicCont
A container for traffic light definitions and built programs.
Definition: NBTrafficLightLogicCont.h:57
NIVissimTL::NIVissimTL
NIVissimTL(int id, const std::string &type, const std::string &name, SUMOTime absdur, SUMOTime offset)
Definition: NIVissimTL.cpp:304
NIVissimTL::NIVissimTLSignal::~NIVissimTLSignal
~NIVissimTLSignal()
Definition: NIVissimTL.cpp:65
NIVissimTL::NIVissimTLSignalGroup
Definition: NIVissimTL.h:106
NIVissimTL::NIVissimTLSignalGroup::myName
std::string myName
Definition: NIVissimTL.h:121
NIVissimTL::NIVissimTLSignal::getSignalsFor
static SSignalDictType getSignalsFor(int tlid)
Definition: NIVissimTL.cpp:122
SUMOTime
long long int SUMOTime
Definition: SUMOTime.h:34
NIVissimTL::clearDict
static void clearDict()
Definition: NIVissimTL.cpp:353
NIVissimTL::NIVissimTLSignal::dictionary
static bool dictionary(int lsaid, int id, NIVissimTLSignal *o)
Definition: NIVissimTL.cpp:80
PositionVector
A list of positions.
Definition: PositionVector.h:45
NIVissimTL::dictionary
static bool dictionary(int id, const std::string &type, const std::string &name, SUMOTime absdur, SUMOTime offset)
Definition: NIVissimTL.cpp:320
NIVissimTL::dict_SetSignals
static bool dict_SetSignals(NBTrafficLightLogicCont &tlc, NBEdgeCont &ec)
Definition: NIVissimTL.cpp:365
NIVissimTL::myCurrentGroup
NIVissimTLSignalGroup * myCurrentGroup
Definition: NIVissimTL.h:133
NIVissimTL::NIVissimTLSignal::myName
std::string myName
Definition: NIVissimTL.h:97
NIVissimTL::getID
int getID() const
Definition: NIVissimTL.cpp:429
NIVissimTL::NIVissimTLSignal::myEdgeID
int myEdgeID
Definition: NIVissimTL.h:99
NIVissimTL::NIVissimTLSignalGroup::myID
int myID
Definition: NIVissimTL.h:120
NIVissimTL::NIVissimTLSignal::addTo
bool addTo(NBEdgeCont &ec, NBLoadedTLDef *node) const
Definition: NIVissimTL.cpp:132
NIVissimTL::NIVissimTLSignalGroup::myTYellow
SUMOTime myTYellow
Definition: NIVissimTL.h:124
AbstractPoly.h
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:38
NIVissimTL::~NIVissimTL
~NIVissimTL()
Definition: NIVissimTL.cpp:313
NIVissimTL::NIVissimTLSignal::myGroupIDs
std::vector< int > myGroupIDs
Definition: NIVissimTL.h:98
NIVissimTL::NIVissimTLSignalGroup::dictionary
static bool dictionary(int lsaid, int id, NIVissimTLSignalGroup *o)
Definition: NIVissimTL.cpp:214
NIVissimTL::NIVissimTLSignalGroup::myTimes
std::vector< double > myTimes
Definition: NIVissimTL.h:122
NIVissimTL::NIVissimTLSignal::myPosition
double myPosition
Definition: NIVissimTL.h:101
NIVissimTL::NIVissimTLSignalGroup::myDict
static GroupDictType myDict
Definition: NIVissimTL.h:125
NIVissimTL::NIVissimTLSignalGroup::addTo
bool addTo(NBLoadedTLDef *node) const
Definition: NIVissimTL.cpp:273
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:53
NIVissimTL::NIVissimTLSignal::myID
int myID
Definition: NIVissimTL.h:96
NIVissimTL
Definition: NIVissimTL.h:49
NIVissimTL::NIVissimTLSignal::clearDict
static void clearDict()
Definition: NIVissimTL.cpp:111
NIVissimTL::GroupDictType
std::map< int, SGroupDictType > GroupDictType
Definition: NIVissimTL.h:74
NIVissimTL::SignalDictType
std::map< int, SSignalDictType > SignalDictType
Definition: NIVissimTL.h:73
NIVissimTL::DictType
std::map< int, NIVissimTL * > DictType
Definition: NIVissimTL.h:136
NIVissimTL::NIVissimTLSignal::myDict
static SignalDictType myDict
Definition: NIVissimTL.h:103
NBLoadedTLDef
A loaded (complete) traffic light logic.
Definition: NBLoadedTLDef.h:41
NIVissimTL::SGroupDictType
std::map< int, NIVissimTLSignalGroup * > SGroupDictType
Definition: NIVissimTL.h:72
NIVissimTL::NIVissimTLSignalGroup::clearDict
static void clearDict()
Definition: NIVissimTL.cpp:252
NIVissimTL::getType
std::string getType() const
Definition: NIVissimTL.cpp:423
NIVissimTL::myDict
static DictType myDict
Definition: NIVissimTL.h:137
config.h
NIVissimTL::NIVissimTLSignal::isWithin
bool isWithin(const PositionVector &poly) const
Definition: NIVissimTL.cpp:68
NIVissimTL::SSignalDictType
std::map< int, NIVissimTLSignal * > SSignalDictType
Definition: NIVissimTL.h:70
NIVissimTL::NIVissimTLSignal::myVehicleTypes
std::vector< int > myVehicleTypes
Definition: NIVissimTL.h:102
NIVissimTL::NIVissimTLSignal::myLane
int myLane
Definition: NIVissimTL.h:100
NIVissimTL::NIVissimTLSignalGroup::getGroupsFor
static SGroupDictType getGroupsFor(int tlid)
Definition: NIVissimTL.cpp:263
PositionVector.h
NIVissimTL::myType
std::string myType
Definition: NIVissimTL.h:134
NIVissimTL::NIVissimTLSignalGroup::~NIVissimTLSignalGroup
~NIVissimTLSignalGroup()
Definition: NIVissimTL.cpp:210