Eclipse SUMO - Simulation of Urban MObility
NIVissimAbstractEdge.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 NIVissimAbstractEdge_h
18 #define NIVissimAbstractEdge_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <map>
28 
29 
30 // ===========================================================================
31 // class definitions
32 // ===========================================================================
37 public:
38  NIVissimAbstractEdge(int id, const PositionVector& geom);
39  virtual ~NIVissimAbstractEdge();
40  Position getGeomPosition(double pos) const;
41  void splitAssigning();
42  bool crossesEdge(NIVissimAbstractEdge* c) const;
44  bool overlapsWith(const AbstractPoly& p, double offset = 0.0) const;
45  virtual void setNodeCluster(int nodeid) = 0;
46  bool hasNodeCluster() const;
47 
48  virtual void buildGeom() = 0;
49  int getID() const;
50  const PositionVector& getGeometry() const;
51 
52  void addDisturbance(int disturbance);
53 
54  const std::vector<int>& getDisturbances() const;
55 
56 public:
57  static bool dictionary(int id, NIVissimAbstractEdge* e);
58  static NIVissimAbstractEdge* dictionary(int id);
59  static void splitAndAssignToNodes();
60  static std::vector<int> getWithin(const AbstractPoly& p, double offset = 0.0);
61  static void clearDict();
62 
63 
64 protected:
65  int myID;
67  std::vector<int> myDisturbances;
68  int myNode;
69 
70 private:
71  typedef std::map<int, NIVissimAbstractEdge*> DictType;
72  static DictType myDict;
73 };
74 
75 
76 #endif
77 
78 /****************************************************************************/
79 
NIVissimAbstractEdge
Definition: NIVissimAbstractEdge.h:36
AbstractPoly
Definition: AbstractPoly.h:35
NIVissimAbstractEdge::getWithin
static std::vector< int > getWithin(const AbstractPoly &p, double offset=0.0)
Definition: NIVissimAbstractEdge.cpp:122
NIVissimAbstractEdge::buildGeom
virtual void buildGeom()=0
NIVissimAbstractEdge::clearDict
static void clearDict()
Definition: NIVissimAbstractEdge.cpp:152
NIVissimAbstractEdge::myDict
static DictType myDict
Definition: NIVissimAbstractEdge.h:72
NIVissimAbstractEdge::crossesEdge
bool crossesEdge(NIVissimAbstractEdge *c) const
Definition: NIVissimAbstractEdge.cpp:110
PositionVector
A list of positions.
Definition: PositionVector.h:45
NIVissimAbstractEdge::getID
int getID() const
Definition: NIVissimAbstractEdge.cpp:147
NIVissimAbstractEdge::hasNodeCluster
bool hasNodeCluster() const
Definition: NIVissimAbstractEdge.cpp:141
NIVissimAbstractEdge::DictType
std::map< int, NIVissimAbstractEdge * > DictType
Definition: NIVissimAbstractEdge.h:71
NIVissimAbstractEdge::crossesEdgeAtPoint
Position crossesEdgeAtPoint(NIVissimAbstractEdge *c) const
Definition: NIVissimAbstractEdge.cpp:116
NIVissimAbstractEdge::addDisturbance
void addDisturbance(int disturbance)
Definition: NIVissimAbstractEdge.cpp:167
NIVissimAbstractEdge::myID
int myID
Definition: NIVissimAbstractEdge.h:65
NIVissimAbstractEdge::myDisturbances
std::vector< int > myDisturbances
Definition: NIVissimAbstractEdge.h:67
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:38
NIVissimAbstractEdge::getGeometry
const PositionVector & getGeometry() const
Definition: NIVissimAbstractEdge.cpp:161
NIVissimAbstractEdge::getDisturbances
const std::vector< int > & getDisturbances() const
Definition: NIVissimAbstractEdge.cpp:173
NIVissimAbstractEdge::myNode
int myNode
Definition: NIVissimAbstractEdge.h:68
NIVissimAbstractEdge::dictionary
static bool dictionary(int id, NIVissimAbstractEdge *e)
Definition: NIVissimAbstractEdge.cpp:58
NIVissimAbstractEdge::getGeomPosition
Position getGeomPosition(double pos) const
Definition: NIVissimAbstractEdge.cpp:80
NIVissimAbstractEdge::splitAssigning
void splitAssigning()
Definition: NIVissimAbstractEdge.cpp:103
NIVissimAbstractEdge::splitAndAssignToNodes
static void splitAndAssignToNodes()
Definition: NIVissimAbstractEdge.cpp:95
config.h
NIVissimAbstractEdge::~NIVissimAbstractEdge
virtual ~NIVissimAbstractEdge()
Definition: NIVissimAbstractEdge.cpp:54
NIVissimAbstractEdge::overlapsWith
bool overlapsWith(const AbstractPoly &p, double offset=0.0) const
Definition: NIVissimAbstractEdge.cpp:135
NIVissimAbstractEdge::myGeom
PositionVector myGeom
Definition: NIVissimAbstractEdge.h:66
PositionVector.h
NIVissimAbstractEdge::setNodeCluster
virtual void setNodeCluster(int nodeid)=0
NIVissimAbstractEdge::NIVissimAbstractEdge
NIVissimAbstractEdge(int id, const PositionVector &geom)
Definition: NIVissimAbstractEdge.cpp:38