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 dictSize ()
 
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 185 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 580 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, and WRITE_WARNING.

Referenced by NIImporter_Vissim::postLoadBuild().

Here is the caller graph for this function:

◆ clearDict()

void NIVissimConnectionCluster::clearDict ( )
static

Definition at line 686 of file NIVissimConnectionCluster.cpp.

References myClusters, and myFirstFreeID.

Referenced by NIImporter_Vissim::~NIImporter_Vissim().

Here is the caller graph for this function:

◆ dictSize()

int NIVissimConnectionCluster::dictSize ( )
static

Definition at line 537 of file NIVissimConnectionCluster.cpp.

References myClusters.

◆ 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 574 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 557 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 189 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 187 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 173 of file NIVissimConnectionCluster.h.

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

◆ myNodes

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

Definition at line 178 of file NIVissimConnectionCluster.h.

◆ myOutgoingEdges

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

◆ myStaticBlaID

int NIVissimConnectionCluster::myStaticBlaID = 0
staticprivate

Definition at line 188 of file NIVissimConnectionCluster.h.

◆ myTLs

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

Definition at line 180 of file NIVissimConnectionCluster.h.


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