Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
NIVissimConnectionCluster Class Reference

#include <NIVissimConnectionCluster.h>

Collaboration diagram for NIVissimConnectionCluster:
[legend]

Data Structures

class  NodeSubCluster
class  same_direction_sorter

Public Member Functions

bool around (const Position &p, double offset=0) const
const std::vector< int > & getConnections () const
NIVissimConnectiongetIncomingContinuation (NIVissimEdge *e) const
PositionVector getIncomingContinuationGeometry (NIVissimEdge *e) const
NBNodegetNBNode () const
NIVissimConnectiongetOutgoingContinuation (NIVissimEdge *e) const
PositionVector getOutgoingContinuationGeometry (NIVissimEdge *e) const
double getPositionForEdge (int edgeid) const
bool hasNodeCluster () const
 NIVissimConnectionCluster (const std::vector< int > &connections, const Boundary &boundary, int nodeCluster, const std::vector< int > &edges)
 NIVissimConnectionCluster (const std::vector< int > &connections, int nodeCluster, int edgeid)
 Constructor Build the boundary; The boundary includes both incoming and outgoing nodes.
bool overlapsWith (NIVissimConnectionCluster *c, double offset=0) const
 Returns the information whether the given cluster overlaps the current.
 ~NIVissimConnectionCluster ()
 Destructor.

Static Public Member Functions

static void _debugOut (std::ostream &into)
static void buildNodeClusters ()
static void clearDict ()
static int getNextFreeNodeID ()
static void joinByDisturbances (double offset)
static void joinBySameEdges (double offset)
 Tries to joind clusters participating within a node This is done by joining clusters which overlap.

Private Types

typedef std::vector< NIVissimConnectionCluster * > ContType

Private Member Functions

void add (NIVissimConnectionCluster *c)
 Adds the second cluster.
std::vector< int > extendByToTreatAsSame (const std::vector< int > &iv1, const std::vector< int > &iv2) const
std::vector< int > getDisturbanceParticipators ()
bool isWeakDistrictConnRealisation (NIVissimConnectionCluster *c2)
bool joinable (NIVissimConnectionCluster *c2, double offset)
bool liesOnSameEdgesEnd (NIVissimConnectionCluster *cc2)
void recheckEdges ()
void recomputeBoundary ()
void removeConnections (const NodeSubCluster &c)

Private Attributes

int myBlaID
Boundary myBoundary
 The boundary of the cluster.
std::vector< int > myConnections
 List of connection-ids which participate within this cluster.
std::vector< int > myEdges
std::vector< int > myIncomingEdges
int myNodeCluster
 The node the cluster is assigned to.
std::vector< int > myNodes
std::vector< int > myOutgoingEdges
std::vector< int > myTLs

Static Private Attributes

static ContType myClusters
static int myFirstFreeID = 100000
static int myStaticBlaID = 0

Friends

class NIVissimEdge

Detailed Description

This class holds a list of connections either all outgoing or all incoming within an edge, which do lies close together. This shall be the connections which belong to a single node. It still are not all of the node's connections, as other edges may participate to this node, too.

Definition at line 50 of file NIVissimConnectionCluster.h.

Member Typedef Documentation

◆ ContType

Definition at line 182 of file NIVissimConnectionCluster.h.

Constructor & Destructor Documentation

◆ NIVissimConnectionCluster() [1/2]

NIVissimConnectionCluster::NIVissimConnectionCluster ( const std::vector< int > & connections,
int nodeCluster,
int edgeid )

Constructor Build the boundary; The boundary includes both incoming and outgoing nodes.

Definition at line 112 of file NIVissimConnectionCluster.cpp.

References NIVissimConnection::dictionary(), NIVissimConnection::getFromEdgeID(), NIVissimConnection::getToEdgeID(), myBlaID, myClusters, myConnections, myEdges, myIncomingEdges, myNodeCluster, myOutgoingEdges, myStaticBlaID, recomputeBoundary(), and VectorHelper< T >::removeDouble().

Referenced by add(), isWeakDistrictConnRealisation(), joinable(), liesOnSameEdgesEnd(), and overlapsWith().

Here is the caller graph for this function:

◆ NIVissimConnectionCluster() [2/2]

NIVissimConnectionCluster::NIVissimConnectionCluster ( const std::vector< int > & connections,
const Boundary & boundary,
int nodeCluster,
const std::vector< int > & edges )

◆ ~NIVissimConnectionCluster()

NIVissimConnectionCluster::~NIVissimConnectionCluster ( )

Destructor.

Definition at line 158 of file NIVissimConnectionCluster.cpp.

Member Function Documentation

◆ _debugOut()

void NIVissimConnectionCluster::_debugOut ( std::ostream & into)
static

Definition at line 514 of file NIVissimConnectionCluster.cpp.

References myClusters.

◆ add()

void NIVissimConnectionCluster::add ( NIVissimConnectionCluster * c)
private

Adds the second cluster.

Definition at line 178 of file NIVissimConnectionCluster.cpp.

References NIVissimEdge::dictionary(), myBoundary, myConnections, myEdges, myIncomingEdges, myNodeCluster, myOutgoingEdges, NIVissimConnectionCluster(), VectorHelper< T >::removeDouble(), Boundary::xmax(), and Boundary::xmin().

Referenced by NIVissimConnectionCluster::NodeSubCluster::add().

Here is the caller graph for this function:

◆ around()

bool NIVissimConnectionCluster::around ( const Position & p,
double offset = 0 ) const

Definition at line 574 of file NIVissimConnectionCluster.cpp.

References myBoundary.

Referenced by NIVissimEdge::getFromNode(), NIVissimEdge::getToNode(), and NIVissimEdge::resolveSameNode().

Here is the caller graph for this function:

◆ buildNodeClusters()

void NIVissimConnectionCluster::buildNodeClusters ( )
static

Definition at line 483 of file NIVissimConnectionCluster.cpp.

References NIVissimNodeCluster::dictionary(), NIVissimDisturbance::getWithin(), myClusters, TL, and WRITE_WARNING.

Referenced by NIImporter_Vissim::postLoadBuild().

Here is the caller graph for this function:

◆ clearDict()

void NIVissimConnectionCluster::clearDict ( )
static

Definition at line 680 of file NIVissimConnectionCluster.cpp.

References myClusters, and myFirstFreeID.

Referenced by NIImporter_Vissim::~NIImporter_Vissim().

Here is the caller graph for this function:

◆ extendByToTreatAsSame()

std::vector< int > NIVissimConnectionCluster::extendByToTreatAsSame ( const std::vector< int > & iv1,
const std::vector< int > & iv2 ) const
private

Definition at line 451 of file NIVissimConnectionCluster.cpp.

References NIVissimEdge::dictionary(), NIVissimEdge::getToTreatAsSame(), and NIVissimEdge.

Referenced by joinable().

Here is the caller graph for this function:

◆ getConnections()

const std::vector< int > & NIVissimConnectionCluster::getConnections ( ) const
inline

Definition at line 76 of file NIVissimConnectionCluster.h.

References myConnections.

◆ getDisturbanceParticipators()

std::vector< int > NIVissimConnectionCluster::getDisturbanceParticipators ( )
private

Definition at line 467 of file NIVissimConnectionCluster.cpp.

References NIVissimConnection::dictionary(), NIVissimDisturbance::dictionary(), NIVissimDisturbance::getDisturbanceID(), NIVissimAbstractEdge::getDisturbances(), NIVissimDisturbance::getEdgeID(), and myConnections.

Referenced by joinable().

Here is the caller graph for this function:

◆ getIncomingContinuation()

◆ getIncomingContinuationGeometry()

◆ getNBNode()

NBNode * NIVissimConnectionCluster::getNBNode ( ) const

Definition at line 568 of file NIVissimConnectionCluster.cpp.

References NIVissimNodeCluster::dictionary(), and myNodeCluster.

Referenced by NIVissimEdge::getFromNode(), and NIVissimEdge::getToNode().

Here is the caller graph for this function:

◆ getNextFreeNodeID()

int NIVissimConnectionCluster::getNextFreeNodeID ( )
static

Definition at line 163 of file NIVissimConnectionCluster.cpp.

References myFirstFreeID.

Referenced by NIVissimConnectionCluster::NodeSubCluster::getConnectionIDs().

Here is the caller graph for this function:

◆ getOutgoingContinuation()

◆ getOutgoingContinuationGeometry()

◆ getPositionForEdge()

◆ hasNodeCluster()

bool NIVissimConnectionCluster::hasNodeCluster ( ) const

Definition at line 531 of file NIVissimConnectionCluster.cpp.

References myNodeCluster.

Referenced by joinable().

Here is the caller graph for this function:

◆ isWeakDistrictConnRealisation()

bool NIVissimConnectionCluster::isWeakDistrictConnRealisation ( NIVissimConnectionCluster * c2)
private

◆ joinable()

◆ joinByDisturbances()

void NIVissimConnectionCluster::joinByDisturbances ( double offset)
static

◆ joinBySameEdges()

void NIVissimConnectionCluster::joinBySameEdges ( double offset)
static

Tries to joind clusters participating within a node This is done by joining clusters which overlap.

Definition at line 208 of file NIVissimConnectionCluster.cpp.

References myClusters.

Referenced by NIImporter_Vissim::postLoadBuild().

Here is the caller graph for this function:

◆ liesOnSameEdgesEnd()

◆ overlapsWith()

bool NIVissimConnectionCluster::overlapsWith ( NIVissimConnectionCluster * c,
double offset = 0 ) const

Returns the information whether the given cluster overlaps the current.

Definition at line 169 of file NIVissimConnectionCluster.cpp.

References myBoundary, NIVissimConnectionCluster(), Boundary::overlapsWith(), Boundary::xmax(), and Boundary::xmin().

Referenced by joinable().

Here is the caller graph for this function:

◆ recheckEdges()

◆ recomputeBoundary()

void NIVissimConnectionCluster::recomputeBoundary ( )
private

Definition at line 551 of file NIVissimConnectionCluster.cpp.

References NIVissimConnection::dictionary(), PositionVector::getBoxBoundary(), NIVissimConnection::getFromGeomPosition(), NIVissimAbstractEdge::getGeometry(), NIVissimConnection::getToGeomPosition(), myBoundary, and myConnections.

Referenced by NIVissimConnectionCluster(), NIVissimConnectionCluster(), and removeConnections().

Here is the caller graph for this function:

◆ removeConnections()

void NIVissimConnectionCluster::removeConnections ( const NodeSubCluster & c)
private

◆ NIVissimEdge

Field Documentation

◆ myBlaID

int NIVissimConnectionCluster::myBlaID
private

Definition at line 186 of file NIVissimConnectionCluster.h.

Referenced by NIVissimConnectionCluster().

◆ myBoundary

Boundary NIVissimConnectionCluster::myBoundary
private

The boundary of the cluster.

Definition at line 167 of file NIVissimConnectionCluster.h.

Referenced by add(), around(), getPositionForEdge(), NIVissimConnectionCluster(), overlapsWith(), recheckEdges(), and recomputeBoundary().

◆ myClusters

◆ myConnections

◆ myEdges

std::vector<int> NIVissimConnectionCluster::myEdges
private

◆ myFirstFreeID

int NIVissimConnectionCluster::myFirstFreeID = 100000
staticprivate

Definition at line 184 of file NIVissimConnectionCluster.h.

Referenced by clearDict(), and getNextFreeNodeID().

◆ myIncomingEdges

std::vector<int> NIVissimConnectionCluster::myIncomingEdges
private

◆ myNodeCluster

int NIVissimConnectionCluster::myNodeCluster
private

The node the cluster is assigned to.

Definition at line 170 of file NIVissimConnectionCluster.h.

Referenced by add(), getNBNode(), getPositionForEdge(), hasNodeCluster(), NIVissimConnectionCluster(), and NIVissimConnectionCluster().

◆ myNodes

std::vector<int> NIVissimConnectionCluster::myNodes
private

Definition at line 175 of file NIVissimConnectionCluster.h.

◆ myOutgoingEdges

std::vector<int> NIVissimConnectionCluster::myOutgoingEdges
private

◆ myStaticBlaID

int NIVissimConnectionCluster::myStaticBlaID = 0
staticprivate

Definition at line 185 of file NIVissimConnectionCluster.h.

Referenced by NIVissimConnectionCluster().

◆ myTLs

std::vector<int> NIVissimConnectionCluster::myTLs
private

Definition at line 177 of file NIVissimConnectionCluster.h.


The documentation for this class was generated from the following files: