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