Eclipse SUMO - Simulation of Urban MObility
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. More...
 
bool overlapsWith (NIVissimConnectionCluster *c, double offset=0) const
 Returns the information whether the given cluster overlaps the current. More...
 
 ~NIVissimConnectionCluster ()
 Destructor. More...
 

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. More...
 

Private Types

typedef std::vector< NIVissimConnectionCluster * > ContType
 

Private Member Functions

void add (NIVissimConnectionCluster *c)
 Adds the second cluster. More...
 
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. More...
 
std::vector< int > myConnections
 List of connection-ids which participate within this cluster. More...
 
std::vector< int > myEdges
 
std::vector< int > myIncomingEdges
 
int myNodeCluster
 The node the cluster is assigned to. More...
 
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 
)

◆ 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 Boundary::add(), NIVissimEdge::dictionary(), myBoundary, myConnections, myEdges, myIncomingEdges, myNodeCluster, myOutgoingEdges, 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 Boundary::around(), myBoundary, Boundary::xmax(), and Boundary::xmin().

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(), and NIVissimEdge::getToTreatAsSame().

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 NIVissimDisturbance::dictionary(), NIVissimConnection::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

Definition at line 374 of file NIVissimConnectionCluster.cpp.

References GeomHelper::angleDiff(), PositionVector::beginEndAngle(), DEG2RAD, NIVissimEdge::dictionary(), NIVissimConnection::dictionary(), NIVissimAbstractEdge::getGeometry(), PositionVector::intersects(), isWeakDistrictConnRealisation(), myConnections, myIncomingEdges, and myOutgoingEdges.

Referenced by isWeakDistrictConnRealisation().

Here is the caller graph for this function:

◆ joinable()

bool NIVissimConnectionCluster::joinable ( NIVissimConnectionCluster c2,
double  offset 
)
private

◆ joinByDisturbances()

static 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, 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 Boundary::add(), NIVissimConnection::dictionary(), PositionVector::getBoxBoundary(), NIVissimConnection::getFromGeomPosition(), NIVissimAbstractEdge::getGeometry(), NIVissimConnection::getToGeomPosition(), myBoundary, myConnections, Boundary::xmax(), and Boundary::xmin().

Referenced by NIVissimConnectionCluster(), and removeConnections().

Here is the caller graph for this function:

◆ removeConnections()

void NIVissimConnectionCluster::removeConnections ( const NodeSubCluster c)
private

Friends And Related Function Documentation

◆ NIVissimEdge

friend class NIVissimEdge
friend

Definition at line 74 of file NIVissimConnectionCluster.h.

Field Documentation

◆ myBlaID

int NIVissimConnectionCluster::myBlaID
private

Definition at line 186 of file NIVissimConnectionCluster.h.

◆ myBoundary

◆ myClusters

NIVissimConnectionCluster::ContType NIVissimConnectionCluster::myClusters
staticprivate

◆ 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(), and hasNodeCluster().

◆ 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.

◆ 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: