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 /****************************************************************************/
16 // -------------------
17 /****************************************************************************/
18 #ifndef NIVissimAbstractEdge_h
19 #define NIVissimAbstractEdge_h
20 
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
27 #include <map>
29 
30 
31 // ===========================================================================
32 // class definitions
33 // ===========================================================================
38 public:
39  NIVissimAbstractEdge(int id, const PositionVector& geom);
40  virtual ~NIVissimAbstractEdge();
41  Position getGeomPosition(double pos) const;
42  void splitAssigning();
43  bool crossesEdge(NIVissimAbstractEdge* c) const;
45  bool overlapsWith(const AbstractPoly& p, double offset = 0.0) const;
46  virtual void setNodeCluster(int nodeid) = 0;
47  bool hasNodeCluster() const;
48 
49  virtual void buildGeom() = 0;
50  int getID() const;
51  const PositionVector& getGeometry() const;
52 
53  void addDisturbance(int disturbance);
54 
55  const std::vector<int>& getDisturbances() const;
56 
57 public:
58  static bool dictionary(int id, NIVissimAbstractEdge* e);
59  static NIVissimAbstractEdge* dictionary(int id);
60  static void splitAndAssignToNodes();
61  static std::vector<int> getWithin(const AbstractPoly& p, double offset = 0.0);
62  static void clearDict();
63 
64 
65 protected:
66  int myID;
68  std::vector<int> myDisturbances;
69  int myNode;
70 
71 private:
72  typedef std::map<int, NIVissimAbstractEdge*> DictType;
73  static DictType myDict;
74 };
75 
76 
77 #endif
78 
79 /****************************************************************************/
80 
NIVissimAbstractEdge
Definition: NIVissimAbstractEdge.h:37
AbstractPoly
Definition: AbstractPoly.h:36
NIVissimAbstractEdge::getWithin
static std::vector< int > getWithin(const AbstractPoly &p, double offset=0.0)
Definition: NIVissimAbstractEdge.cpp:123
NIVissimAbstractEdge::buildGeom
virtual void buildGeom()=0
NIVissimAbstractEdge::clearDict
static void clearDict()
Definition: NIVissimAbstractEdge.cpp:153
NIVissimAbstractEdge::myDict
static DictType myDict
Definition: NIVissimAbstractEdge.h:73
NIVissimAbstractEdge::crossesEdge
bool crossesEdge(NIVissimAbstractEdge *c) const
Definition: NIVissimAbstractEdge.cpp:111
PositionVector
A list of positions.
Definition: PositionVector.h:46
NIVissimAbstractEdge::getID
int getID() const
Definition: NIVissimAbstractEdge.cpp:148
NIVissimAbstractEdge::hasNodeCluster
bool hasNodeCluster() const
Definition: NIVissimAbstractEdge.cpp:142
NIVissimAbstractEdge::DictType
std::map< int, NIVissimAbstractEdge * > DictType
Definition: NIVissimAbstractEdge.h:72
NIVissimAbstractEdge::crossesEdgeAtPoint
Position crossesEdgeAtPoint(NIVissimAbstractEdge *c) const
Definition: NIVissimAbstractEdge.cpp:117
NIVissimAbstractEdge::addDisturbance
void addDisturbance(int disturbance)
Definition: NIVissimAbstractEdge.cpp:168
NIVissimAbstractEdge::myID
int myID
Definition: NIVissimAbstractEdge.h:66
NIVissimAbstractEdge::myDisturbances
std::vector< int > myDisturbances
Definition: NIVissimAbstractEdge.h:68
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
NIVissimAbstractEdge::getGeometry
const PositionVector & getGeometry() const
Definition: NIVissimAbstractEdge.cpp:162
NIVissimAbstractEdge::getDisturbances
const std::vector< int > & getDisturbances() const
Definition: NIVissimAbstractEdge.cpp:174
NIVissimAbstractEdge::myNode
int myNode
Definition: NIVissimAbstractEdge.h:69
NIVissimAbstractEdge::dictionary
static bool dictionary(int id, NIVissimAbstractEdge *e)
Definition: NIVissimAbstractEdge.cpp:59
NIVissimAbstractEdge::getGeomPosition
Position getGeomPosition(double pos) const
Definition: NIVissimAbstractEdge.cpp:81
NIVissimAbstractEdge::splitAssigning
void splitAssigning()
Definition: NIVissimAbstractEdge.cpp:104
NIVissimAbstractEdge::splitAndAssignToNodes
static void splitAndAssignToNodes()
Definition: NIVissimAbstractEdge.cpp:96
config.h
NIVissimAbstractEdge::~NIVissimAbstractEdge
virtual ~NIVissimAbstractEdge()
Definition: NIVissimAbstractEdge.cpp:55
NIVissimAbstractEdge::overlapsWith
bool overlapsWith(const AbstractPoly &p, double offset=0.0) const
Definition: NIVissimAbstractEdge.cpp:136
NIVissimAbstractEdge::myGeom
PositionVector myGeom
Definition: NIVissimAbstractEdge.h:67
PositionVector.h
NIVissimAbstractEdge::setNodeCluster
virtual void setNodeCluster(int nodeid)=0
NIVissimAbstractEdge::NIVissimAbstractEdge
NIVissimAbstractEdge(int id, const PositionVector &geom)
Definition: NIVissimAbstractEdge.cpp:39