Eclipse SUMO - Simulation of Urban MObility
NIVissimConnection.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 NIVissimConnection_h
18 #define NIVissimConnection_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <string>
27 #include <map>
29 #include <utils/geom/Position.h>
31 #include "NIVissimAbstractEdge.h"
34 
35 
36 // ===========================================================================
37 // class declarations
38 // ===========================================================================
39 class NBEdgeCont;
40 
41 
42 // ===========================================================================
43 // class definitions
44 // ===========================================================================
47  public NIVissimAbstractEdge {
48 public:
49  /* enum Direction {
50  NIVC_DIR_RIGHT,
51  NIVC_DIR_LEFT,
52  NIVC_DIR_ALL
53  }; */
54 
55  NIVissimConnection(int id, const std::string& name,
56  const NIVissimExtendedEdgePoint& from_def,
57  const NIVissimExtendedEdgePoint& to_def,
58  const PositionVector& geom,
59  const std::vector<int>& assignedVehicles,
60  const NIVissimClosedLanesVector& clv);
61  virtual ~NIVissimConnection();
62  void computeBounding();
63  int getFromEdgeID() const;
64  int getToEdgeID() const;
65  double getFromPosition() const;
66  double getToPosition() const;
69  void setNodeCluster(int nodeid);
70  const Boundary& getBoundingBox() const;
71 
73 
74  void buildGeom();
75 
76 
85  void recheckLanes(const NBEdge* const fromEdge, const NBEdge* const toEdge);
86 
87 public:
88  const std::vector<int>& getFromLanes() const;
89  const std::vector<int>& getToLanes() const;
90 
91 
92 
93  static bool dictionary(int id, NIVissimConnection* o);
94  static NIVissimConnection* dictionary(int id);
95  static std::vector<int> getWithin(const AbstractPoly& poly);
96  static void buildNodeClusters();
97  static std::vector<int> getForEdge(int edgeid, bool omitNodeAssigned = true);
98  static void dict_buildNBEdgeConnections(NBEdgeCont& ec);
99  static void dict_assignToEdges();
100  static int getMaxID();
101 
102 private:
103  std::string myName;
105  std::vector<int> myAssignedVehicles;
107 private:
108  typedef std::map<int, NIVissimConnection*> DictType;
109  static DictType myDict;
110  static int myMaxID;
111 };
112 
113 
114 #endif
115 
116 /****************************************************************************/
117 
NIVissimAbstractEdge
Definition: NIVissimAbstractEdge.h:36
AbstractPoly
Definition: AbstractPoly.h:35
NIVissimConnection::dict_assignToEdges
static void dict_assignToEdges()
Definition: NIVissimConnection.cpp:305
NIVissimClosedLanesVector
std::vector< NIVissimClosedLaneDef * > NIVissimClosedLanesVector
Definition: NIVissimClosedLanesVector.h:29
NIVissimConnection::buildEdgeConnections
int buildEdgeConnections(NBEdgeCont &ec)
Definition: NIVissimConnection.cpp:210
NIVissimConnection::setNodeCluster
void setNodeCluster(int nodeid)
Definition: NIVissimConnection.cpp:193
NBEdgeCont
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:60
NIVissimConnection::getBoundingBox
const Boundary & getBoundingBox() const
Definition: NIVissimConnection.cpp:298
NIVissimConnection::getToPosition
double getToPosition() const
Definition: NIVissimConnection.cpp:174
NIVissimConnection::recheckLanes
void recheckLanes(const NBEdge *const fromEdge, const NBEdge *const toEdge)
Resets lane numbers if all lanes shall be used.
Definition: NIVissimConnection.cpp:291
NIVissimConnection::getToGeomPosition
Position getToGeomPosition() const
Definition: NIVissimConnection.cpp:187
NIVissimConnection::buildGeom
void buildGeom()
Definition: NIVissimConnection.cpp:200
PositionVector
A list of positions.
Definition: PositionVector.h:45
NIVissimConnection::getToEdgeID
int getToEdgeID() const
Definition: NIVissimConnection.cpp:162
NIVissimConnection::getForEdge
static std::vector< int > getForEdge(int edgeid, bool omitNodeAssigned=true)
Definition: NIVissimConnection.cpp:139
NIVissimConnection::myToDef
NIVissimExtendedEdgePoint myToDef
Definition: NIVissimConnection.h:104
NBEdge
The representation of a single edge during network building.
Definition: NBEdge.h:91
NIVissimConnection::getFromGeomPosition
Position getFromGeomPosition() const
Definition: NIVissimConnection.cpp:180
NIVissimBoundedClusterObject
Definition: NIVissimBoundedClusterObject.h:40
NIVissimConnection::NIVissimConnection
NIVissimConnection(int id, const std::string &name, const NIVissimExtendedEdgePoint &from_def, const NIVissimExtendedEdgePoint &to_def, const PositionVector &geom, const std::vector< int > &assignedVehicles, const NIVissimClosedLanesVector &clv)
Definition: NIVissimConnection.cpp:58
NIVissimExtendedEdgePoint
Definition: NIVissimExtendedEdgePoint.h:42
AbstractPoly.h
Boundary
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:41
NIVissimConnection::myDict
static DictType myDict
Definition: NIVissimConnection.h:109
NIVissimConnection
Definition: NIVissimConnection.h:45
NIVissimConnection::~NIVissimConnection
virtual ~NIVissimConnection()
Definition: NIVissimConnection.cpp:68
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:38
NIVissimConnection::getFromPosition
double getFromPosition() const
Definition: NIVissimConnection.cpp:168
NIVissimConnection::myMaxID
static int myMaxID
Definition: NIVissimConnection.h:110
NIVissimConnection::myName
std::string myName
Definition: NIVissimConnection.h:103
NIVissimBoundedClusterObject.h
NIVissimConnection::computeBounding
void computeBounding()
Definition: NIVissimConnection.cpp:129
NIVissimConnection::dict_buildNBEdgeConnections
static void dict_buildNBEdgeConnections(NBEdgeCont &ec)
Definition: NIVissimConnection.cpp:266
NIVissimClosedLanesVector.h
NIVissimConnection::getMaxID
static int getMaxID()
Definition: NIVissimConnection.cpp:315
NIVissimConnection::myClosedLanes
NIVissimClosedLanesVector myClosedLanes
Definition: NIVissimConnection.h:106
Position.h
NIVissimAbstractEdge.h
NIVissimExtendedEdgePoint.h
NIVissimConnection::getToLanes
const std::vector< int > & getToLanes() const
Definition: NIVissimConnection.cpp:285
NIVissimConnection::DictType
std::map< int, NIVissimConnection * > DictType
Definition: NIVissimConnection.h:108
NIVissimConnection::getWithin
static std::vector< int > getWithin(const AbstractPoly &poly)
Definition: NIVissimConnection.cpp:117
NIVissimConnection::getFromLanes
const std::vector< int > & getFromLanes() const
Definition: NIVissimConnection.cpp:279
NIVissimConnection::myFromDef
NIVissimExtendedEdgePoint myFromDef
Definition: NIVissimConnection.h:104
config.h
NIVissimConnection::dictionary
static bool dictionary(int id, NIVissimConnection *o)
Definition: NIVissimConnection.cpp:77
NIVissimConnection::getFromEdgeID
int getFromEdgeID() const
Definition: NIVissimConnection.cpp:156
NIVissimConnection::buildNodeClusters
static void buildNodeClusters()
Definition: NIVissimConnection.cpp:99
NIVissimConnection::myAssignedVehicles
std::vector< int > myAssignedVehicles
Definition: NIVissimConnection.h:105