Eclipse SUMO - Simulation of Urban MObility
NIVissimDistrictConnection.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 // An edge imported from Vissim together for a container for
16 /****************************************************************************/
17 #ifndef NIVissimDistrictConnection_h
18 #define NIVissimDistrictConnection_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <map>
27 #include <string>
28 #include <utils/geom/Position.h>
29 
30 
31 class NBDistrictCont;
32 class NBEdgeCont;
33 
34 
35 // ===========================================================================
36 // class definitions
37 // ===========================================================================
39 public:
41  NIVissimDistrictConnection(int id, const std::string& name,
42  const std::vector<int>& districts, const std::vector<double>& percentages,
43  int edgeid, double position,
44  const std::vector<std::pair<int, int> >& assignedVehicles);
45 
46  // Destructor
48 
51  Position geomPosition() const;
52 
54  int getID() const {
55  return myID;
56  }
57 
59  double getPosition() const {
60  return myPosition;
61  }
62 
63  double getMeanSpeed() const;
64 
65 public:
67  static bool dictionary(int id, const std::string& name,
68  const std::vector<int>& districts, const std::vector<double>& percentages,
69  int edgeid, double position,
70  const std::vector<std::pair<int, int> >& assignedVehicles);
71 
73  static bool dictionary(int id, NIVissimDistrictConnection* o);
74 
76  static NIVissimDistrictConnection* dictionary(int id);
77 
80  NBNodeCont& nc);
81 
83  static void dict_BuildDistricts(NBDistrictCont& dc,
84  NBEdgeCont& ec, NBNodeCont& nc);
85 
88  static NIVissimDistrictConnection* dict_findForEdge(int edgeid);
89 
91  static void clearDict();
92 
93  static void dict_BuildDistrictConnections();
94 
95  static void dict_CheckEdgeEnds();
96 
97 
98 private:
99  void checkEdgeEnd();
100  double getRealSpeed(int distNo) const;
101 
102 private:
104  int myID;
105 
107  std::string myName;
108 
110  std::vector<int> myDistricts;
111 
113  typedef std::map<int, double> DistrictPercentages;
114 
117 
119  int myEdgeID;
120 
122  double myPosition;
123 
125  std::vector<std::pair<int, int> > myAssignedVehicles;
126 
127 private:
129  typedef std::map<int, NIVissimDistrictConnection*> DictType;
130 
132  static DictType myDict;
133 
135  static std::map<int, std::vector<int> > myDistrictsConnections;
136 
137 };
138 
139 
140 #endif
141 
142 /****************************************************************************/
143 
NIVissimDistrictConnection::getPosition
double getPosition() const
Returns the position of the connection at the edge.
Definition: NIVissimDistrictConnection.h:59
NIVissimDistrictConnection::myAssignedVehicles
std::vector< std::pair< int, int > > myAssignedVehicles
The vehicles using this connection.
Definition: NIVissimDistrictConnection.h:125
NIVissimDistrictConnection::dict_BuildDistrictNodes
static void dict_BuildDistrictNodes(NBDistrictCont &dc, NBNodeCont &nc)
Builds the nodes that belong to a district.
Definition: NIVissimDistrictConnection.cpp:151
NBEdgeCont
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:60
NIVissimDistrictConnection::getRealSpeed
double getRealSpeed(int distNo) const
Definition: NIVissimDistrictConnection.cpp:374
NIVissimDistrictConnection::myID
int myID
The id of the connections.
Definition: NIVissimDistrictConnection.h:104
NIVissimDistrictConnection::myDict
static DictType myDict
District connection dictionary.
Definition: NIVissimDistrictConnection.h:132
NIVissimDistrictConnection::dict_BuildDistrictConnections
static void dict_BuildDistrictConnections()
Definition: NIVissimDistrictConnection.cpp:117
NIVissimDistrictConnection::dictionary
static bool dictionary(int id, const std::string &name, const std::vector< int > &districts, const std::vector< double > &percentages, int edgeid, double position, const std::vector< std::pair< int, int > > &assignedVehicles)
Inserts the connection into the dictionary after building it.
Definition: NIVissimDistrictConnection.cpp:81
NIVissimDistrictConnection::DistrictPercentages
std::map< int, double > DistrictPercentages
Definition of a map of how many vehicles should leave to a certain district.
Definition: NIVissimDistrictConnection.h:113
NIVissimDistrictConnection::dict_BuildDistricts
static void dict_BuildDistricts(NBDistrictCont &dc, NBEdgeCont &ec, NBNodeCont &nc)
Builds the districts.
Definition: NIVissimDistrictConnection.cpp:182
NIVissimDistrictConnection::myName
std::string myName
The name of the connections.
Definition: NIVissimDistrictConnection.h:107
NIVissimDistrictConnection::myDistrictsConnections
static std::map< int, std::vector< int > > myDistrictsConnections
Map from ditricts to connections.
Definition: NIVissimDistrictConnection.h:135
NBDistrictCont
A container for districts.
Definition: NBDistrictCont.h:52
NBNodeCont
Container for nodes during the netbuilding process.
Definition: NBNodeCont.h:59
NIVissimDistrictConnection::getID
int getID() const
Returns the id of the connection.
Definition: NIVissimDistrictConnection.h:54
NIVissimDistrictConnection::myEdgeID
int myEdgeID
The id of the connected edge.
Definition: NIVissimDistrictConnection.h:119
NIVissimDistrictConnection::clearDict
static void clearDict()
Clears the dictionary.
Definition: NIVissimDistrictConnection.cpp:349
NIVissimDistrictConnection::DictType
std::map< int, NIVissimDistrictConnection * > DictType
Definition of a dictionary of district connections.
Definition: NIVissimDistrictConnection.h:129
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:38
NIVissimDistrictConnection::dict_findForEdge
static NIVissimDistrictConnection * dict_findForEdge(int edgeid)
Returns the connection to a district placed at the given node Yep, there onyl should be one,...
Definition: NIVissimDistrictConnection.cpp:338
NIVissimDistrictConnection::dict_CheckEdgeEnds
static void dict_CheckEdgeEnds()
Definition: NIVissimDistrictConnection.cpp:131
NIVissimDistrictConnection::NIVissimDistrictConnection
NIVissimDistrictConnection(int id, const std::string &name, const std::vector< int > &districts, const std::vector< double > &percentages, int edgeid, double position, const std::vector< std::pair< int, int > > &assignedVehicles)
Contructor.
Definition: NIVissimDistrictConnection.cpp:58
NIVissimDistrictConnection::geomPosition
Position geomPosition() const
Returns the position The position yields from the edge geometry and the place the connection is plaed...
Definition: NIVissimDistrictConnection.cpp:331
Position.h
NIVissimDistrictConnection
Definition: NIVissimDistrictConnection.h:38
NIVissimDistrictConnection::myDistricts
std::vector< int > myDistricts
The connected districts.
Definition: NIVissimDistrictConnection.h:110
NIVissimDistrictConnection::myPercentages
DistrictPercentages myPercentages
A map how many vehicles (key, amount) should leave to a district (key)
Definition: NIVissimDistrictConnection.h:116
config.h
NIVissimDistrictConnection::getMeanSpeed
double getMeanSpeed() const
Definition: NIVissimDistrictConnection.cpp:358
NIVissimDistrictConnection::checkEdgeEnd
void checkEdgeEnd()
Definition: NIVissimDistrictConnection.cpp:143
NIVissimDistrictConnection::myPosition
double myPosition
The position on the edge.
Definition: NIVissimDistrictConnection.h:122
NIVissimDistrictConnection::~NIVissimDistrictConnection
~NIVissimDistrictConnection()
Definition: NIVissimDistrictConnection.cpp:76