21 #ifndef NIVissimConnectionCluster_h
22 #define NIVissimConnectionCluster_h
68 const Boundary& boundary,
int nodeCluster,
const std::vector<int>& edges);
105 static void _debugOut(std::ostream& into);
167 const std::vector<int>& iv2)
const;
195 typedef std::vector<NIVissimConnectionCluster*>
ContType;
bool joinable(NIVissimConnectionCluster *c2, SUMOReal offset)
std::vector< NIVissimConnectionCluster * > ContType
NodeSubCluster(NIVissimConnection *c)
int operator()(NIVissimConnection *c1, NIVissimConnection *c2) const
comparing operation
int myNodeCluster
The node the cluster is assigned to.
NBNode * getNBNode() const
std::vector< int > myConnections
List of connection-ids which participate within this cluster.
static void joinBySameEdges(SUMOReal offset)
Tries to joind clusters participating within a node This is done by joining clusters which overlap...
NIVissimConnection * getOutgoingContinuation(NIVissimEdge *e) const
const std::vector< int > & getConnections() const
bool overlapsWith(NIVissimConnectionCluster *c, SUMOReal offset=0) const
Returns the information whether the given cluster overlaps the current.
std::vector< int > myNodes
std::vector< int > myOutgoingEdges
SUMOReal beginEndAngle() const
returns the angle in radians of the line connecting the first and the last position ...
static SUMOReal angleDiff(const SUMOReal angle1, const SUMOReal angle2)
Returns the difference of the second angle to the first angle in radiants.
const PositionVector & getGeometry() const
A class that stores a 2D geometrical boundary.
bool overlapsWith(const NodeSubCluster &c, SUMOReal offset=0)
std::vector< int > getDisturbanceParticipators()
A temporary storage for edges imported from Vissim.
static ContType myClusters
void add(NIVissimConnectionCluster *c)
Adds the second cluster.
~NIVissimConnectionCluster()
Destructor.
A point in 2D or 3D with translation and scaling methods.
static void _debugOut(std::ostream &into)
NIVissimConnection * getIncomingContinuation(NIVissimEdge *e) const
static void buildNodeClusters()
std::vector< int > myEdges
std::vector< int > extendByToTreatAsSame(const std::vector< int > &iv1, const std::vector< int > &iv2) const
std::vector< NIVissimConnection * > ConnectionCont
std::vector< int > getConnectionIDs() const
bool around(const Position &p, SUMOReal offset=0) const
void add(NIVissimConnection *c)
void removeConnections(const NodeSubCluster &c)
static int getNextFreeNodeID()
ConnectionCont myConnections
bool hasNodeCluster() const
PositionVector getIncomingContinuationGeometry(NIVissimEdge *e) const
Boundary myBoundary
The boundary of the cluster.
Represents a single node (junction) during network building.
SUMOReal getPositionForEdge(int edgeid) const
bool liesOnSameEdgesEnd(NIVissimConnectionCluster *cc2)
bool isWeakDistrictConnRealisation(NIVissimConnectionCluster *c2)
NIVissimConnectionCluster(const std::vector< int > &connections, int nodeCluster, int edgeid)
Constructor Build the boundary; The boundary includes both incoming and outgoing nodes.
std::vector< int > myIncomingEdges
static void joinByDisturbances(SUMOReal offset)
PositionVector getOutgoingContinuationGeometry(NIVissimEdge *e) const
same_direction_sorter(SUMOReal angle)
constructor