SUMO - Simulation of Urban MObility
NIVissimConnectionCluster Class Reference

#include <NIVissimConnectionCluster.h>

Data Structures

class  NodeSubCluster
 
class  same_direction_sorter
 

Public Member Functions

bool around (const Position &p, SUMOReal 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
 
SUMOReal getPositionForEdge (int edgeid) const
 
bool hasNodeCluster () const
 
 NIVissimConnectionCluster (const std::vector< int > &connections, int nodeCluster, int edgeid)
 Constructor Build the boundary; The boundary includes both incoming and outgoing nodes. More...
 
 NIVissimConnectionCluster (const std::vector< int > &connections, const Boundary &boundary, int nodeCluster, const std::vector< int > &edges)
 
bool overlapsWith (NIVissimConnectionCluster *c, SUMOReal 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 size_t dictSize ()
 
static int getNextFreeNodeID ()
 
static void joinByDisturbances (SUMOReal offset)
 
static void joinBySameEdges (SUMOReal 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, SUMOReal 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 60 of file NIVissimConnectionCluster.h.

Member Typedef Documentation

Definition at line 196 of file NIVissimConnectionCluster.h.

Constructor & Destructor Documentation

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

Destructor.

Definition at line 171 of file NIVissimConnectionCluster.cpp.

Member Function Documentation

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

Definition at line 532 of file NIVissimConnectionCluster.cpp.

References myClusters.

bool NIVissimConnectionCluster::around ( const Position p,
SUMOReal  offset = 0 
) const
void NIVissimConnectionCluster::buildNodeClusters ( )
static
void NIVissimConnectionCluster::clearDict ( )
static

Definition at line 704 of file NIVissimConnectionCluster.cpp.

References myClusters, and myFirstFreeID.

Referenced by NIImporter_Vissim::~NIImporter_Vissim().

size_t NIVissimConnectionCluster::dictSize ( )
static

Definition at line 555 of file NIVissimConnectionCluster.cpp.

References myClusters.

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

Definition at line 86 of file NIVissimConnectionCluster.h.

References myConnections.

std::vector< int > NIVissimConnectionCluster::getDisturbanceParticipators ( )
private
NBNode * NIVissimConnectionCluster::getNBNode ( ) const
int NIVissimConnectionCluster::getNextFreeNodeID ( )
static
bool NIVissimConnectionCluster::hasNodeCluster ( ) const

Definition at line 549 of file NIVissimConnectionCluster.cpp.

References myNodeCluster.

Referenced by joinable().

bool NIVissimConnectionCluster::joinable ( NIVissimConnectionCluster c2,
SUMOReal  offset 
)
private
static void NIVissimConnectionCluster::joinByDisturbances ( SUMOReal  offset)
static
void NIVissimConnectionCluster::joinBySameEdges ( SUMOReal  offset)
static

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

Definition at line 221 of file NIVissimConnectionCluster.cpp.

References myClusters.

Referenced by NIImporter_Vissim::postLoadBuild().

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

Returns the information whether the given cluster overlaps the current.

Definition at line 182 of file NIVissimConnectionCluster.cpp.

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

Referenced by joinable().

void NIVissimConnectionCluster::removeConnections ( const NodeSubCluster c)
private

Friends And Related Function Documentation

friend class NIVissimEdge
friend

Definition at line 84 of file NIVissimConnectionCluster.h.

Field Documentation

int NIVissimConnectionCluster::myBlaID
private

Definition at line 200 of file NIVissimConnectionCluster.h.

NIVissimConnectionCluster::ContType NIVissimConnectionCluster::myClusters
staticprivate
std::vector<int> NIVissimConnectionCluster::myEdges
private
int NIVissimConnectionCluster::myFirstFreeID = 100000
staticprivate

Definition at line 198 of file NIVissimConnectionCluster.h.

Referenced by clearDict(), and getNextFreeNodeID().

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

The node the cluster is assigned to.

Definition at line 184 of file NIVissimConnectionCluster.h.

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

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

Definition at line 189 of file NIVissimConnectionCluster.h.

std::vector<int> NIVissimConnectionCluster::myOutgoingEdges
private
int NIVissimConnectionCluster::myStaticBlaID = 0
staticprivate

Definition at line 199 of file NIVissimConnectionCluster.h.

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

Definition at line 191 of file NIVissimConnectionCluster.h.


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