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.
 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.
 ~NIVissimConnectionCluster ()
 Destructor.

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.
static void searchForConnection (int id)

Private Types

typedef std::vector
< NIVissimConnectionCluster * > 
ContType

Private Member Functions

void add (NIVissimConnectionCluster *c)
 Adds the second cluster.
std::vector< intextendByToTreatAsSame (const std::vector< int > &iv1, const std::vector< int > &iv2) const
std::vector< intgetDisturbanceParticipators ()
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.
std::vector< intmyConnections
 List of connection-ids which participate within this cluster.
std::vector< intmyEdges
std::vector< intmyIncomingEdges
int myNodeCluster
 The node the cluster is assigned to.
std::vector< intmyNodes
std::vector< intmyOutgoingEdges
std::vector< intmyTLs

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 198 of file NIVissimConnectionCluster.h.


Constructor & Destructor Documentation

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 125 of file NIVissimConnectionCluster.cpp.

References NIVissimConnection::dictionary(), NIVissimConnection::getFromEdgeID(), NIVissimConnection::getToEdgeID(), myClusters, myEdges, myIncomingEdges, myOutgoingEdges, and recomputeBoundary().


Member Function Documentation

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

Definition at line 547 of file NIVissimConnectionCluster.cpp.

References myClusters.

Definition at line 570 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.

Definition at line 564 of file NIVissimConnectionCluster.cpp.

References myNodeCluster.

Referenced by joinable().

static void NIVissimConnectionCluster::joinByDisturbances ( 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().

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().

Definition at line 532 of file NIVissimConnectionCluster.cpp.

References myClusters.


Friends And Related Function Documentation

friend class NIVissimEdge [friend]

Definition at line 84 of file NIVissimConnectionCluster.h.


Field Documentation

int NIVissimConnectionCluster::myFirstFreeID = 100000 [static, private]

Definition at line 200 of file NIVissimConnectionCluster.h.

Referenced by clearDict(), and getNextFreeNodeID().

The node the cluster is assigned to.

Definition at line 186 of file NIVissimConnectionCluster.h.

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

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

Definition at line 191 of file NIVissimConnectionCluster.h.

Definition at line 201 of file NIVissimConnectionCluster.h.

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

Definition at line 193 of file NIVissimConnectionCluster.h.


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines