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)
SUMOReal getPositionForEdge(int edgeid) const
std::vector< NIVissimConnectionCluster * > ContType
NodeSubCluster(NIVissimConnection *c)
int myNodeCluster
The node the cluster is assigned to.
std::vector< int > myConnections
List of connection-ids which participate within this cluster.
int operator()(NIVissimConnection *c1, NIVissimConnection *c2) const
comparing operation
static void joinBySameEdges(SUMOReal offset)
Tries to joind clusters participating within a node This is done by joining clusters which overlap...
NIVissimConnection * getIncomingContinuation(NIVissimEdge *e) const
NBNode * getNBNode() const
const PositionVector & getGeometry() const
NIVissimConnection * getOutgoingContinuation(NIVissimEdge *e) const
std::vector< int > myNodes
std::vector< int > myOutgoingEdges
static SUMOReal angleDiff(const SUMOReal angle1, const SUMOReal angle2)
Returns the difference of the second angle to the first angle in radiants.
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.
bool around(const Position &p, SUMOReal offset=0) const
SUMOReal beginEndAngle() const
returns the angle in radians of the line connecting the first and the last position ...
static ContType myClusters
PositionVector getIncomingContinuationGeometry(NIVissimEdge *e) const
~NIVissimConnectionCluster()
Destructor.
bool hasNodeCluster() const
A point in 2D or 3D with translation and scaling methods.
static void _debugOut(std::ostream &into)
static void buildNodeClusters()
std::vector< int > myEdges
std::vector< NIVissimConnection * > ConnectionCont
void add(NIVissimConnection *c)
PositionVector getOutgoingContinuationGeometry(NIVissimEdge *e) const
void removeConnections(const NodeSubCluster &c)
static int getNextFreeNodeID()
ConnectionCont myConnections
std::vector< int > getConnectionIDs() const
std::vector< int > extendByToTreatAsSame(const std::vector< int > &iv1, const std::vector< int > &iv2) const
Boundary myBoundary
The boundary of the cluster.
bool overlapsWith(NIVissimConnectionCluster *c, SUMOReal offset=0) const
Returns the information whether the given cluster overlaps the current.
Represents a single node (junction) during network building.
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
const std::vector< int > & getConnections() const
static void joinByDisturbances(SUMOReal offset)
same_direction_sorter(SUMOReal angle)
constructor