|
SUMO - Simulation of Urban MObility
|
#include <NIVissimConnectionCluster.h>
Data Structures | |
| class | NodeSubCluster |
| class | same_direction_sorter |
Public Member Functions | |
| bool | around (const Position &p, SUMOReal offset=0) const |
| const IntVector & | getConnections () const |
| NIVissimConnection * | getIncomingContinuation (NIVissimEdge *e) const |
| PositionVector | getIncomingContinuationGeometry (NIVissimEdge *e) const |
| NBNode * | getNBNode () const |
| NIVissimConnection * | getOutgoingContinuation (NIVissimEdge *e) const |
| PositionVector | getOutgoingContinuationGeometry (NIVissimEdge *e) const |
| SUMOReal | getPositionForEdge (int edgeid) const |
| bool | hasNodeCluster () const |
| NIVissimConnectionCluster (const IntVector &connections, int nodeCluster, int edgeid) | |
| Constructor Build the boundary; The boundary includes both incoming and outgoing nodes. | |
| NIVissimConnectionCluster (const IntVector &connections, const Boundary &boundary, int nodeCluster, const IntVector &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. | |
| IntVector | extendByToTreatAsSame (const IntVector &iv1, const IntVector &iv2) const |
| IntVector | 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. | |
| IntVector | myConnections |
| List of connection-ids which participate within this cluster. | |
| IntVector | myEdges |
| IntVector | myIncomingEdges |
| int | myNodeCluster |
| The node the cluster is assigned to. | |
| IntVector | myNodes |
| IntVector | myOutgoingEdges |
| IntVector | myTLs |
Static Private Attributes | |
| static ContType | myClusters |
| static int | myFirstFreeID = 100000 |
| static int | myStaticBlaID = 0 |
Friends | |
| class | NIVissimEdge |
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 61 of file NIVissimConnectionCluster.h.
typedef std::vector<NIVissimConnectionCluster*> NIVissimConnectionCluster::ContType [private] |
Definition at line 199 of file NIVissimConnectionCluster.h.
| NIVissimConnectionCluster::NIVissimConnectionCluster | ( | const IntVector & | 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().
| NIVissimConnectionCluster::NIVissimConnectionCluster | ( | const IntVector & | connections, |
| const Boundary & | boundary, | ||
| int | nodeCluster, | ||
| const IntVector & | edges | ||
| ) |
Definition at line 148 of file NIVissimConnectionCluster.cpp.
References NIVissimConnection::dictionary(), NIVissimConnection::getFromEdgeID(), NIVissimConnection::getToEdgeID(), myBoundary, myClusters, myIncomingEdges, myOutgoingEdges, recomputeBoundary(), Boundary::xmax(), and Boundary::xmin().
| NIVissimConnectionCluster::~NIVissimConnectionCluster | ( | ) |
Destructor.
Definition at line 171 of file NIVissimConnectionCluster.cpp.
| void NIVissimConnectionCluster::_debugOut | ( | std::ostream & | into | ) | [static] |
Definition at line 550 of file NIVissimConnectionCluster.cpp.
References myClusters.
| void NIVissimConnectionCluster::add | ( | NIVissimConnectionCluster * | c | ) | [private] |
Adds the second cluster.
Definition at line 191 of file NIVissimConnectionCluster.cpp.
References Boundary::add(), NIVissimEdge::dictionary(), myBoundary, myConnections, myEdges, myIncomingEdges, myNodeCluster, myOutgoingEdges, Boundary::xmax(), and Boundary::xmin().
Referenced by NIVissimConnectionCluster::NodeSubCluster::add().
Definition at line 616 of file NIVissimConnectionCluster.cpp.
References Boundary::around(), myBoundary, Boundary::xmax(), and Boundary::xmin().
Referenced by NIVissimEdge::getFromNode(), and NIVissimEdge::resolveSameNode().
| void NIVissimConnectionCluster::buildNodeClusters | ( | ) | [static] |
Definition at line 504 of file NIVissimConnectionCluster.cpp.
References NIVissimNodeCluster::dictionary(), NIVissimDisturbance::getWithin(), myClusters, and WRITE_WARNING.
Referenced by NIImporter_Vissim::postLoadBuild().
| void NIVissimConnectionCluster::clearDict | ( | ) | [static] |
Definition at line 722 of file NIVissimConnectionCluster.cpp.
References myClusters, and myFirstFreeID.
Referenced by NIImporter_Vissim::~NIImporter_Vissim().
| size_t NIVissimConnectionCluster::dictSize | ( | ) | [static] |
Definition at line 573 of file NIVissimConnectionCluster.cpp.
References myClusters.
| IntVector NIVissimConnectionCluster::extendByToTreatAsSame | ( | const IntVector & | iv1, |
| const IntVector & | iv2 | ||
| ) | const [private] |
Definition at line 472 of file NIVissimConnectionCluster.cpp.
References NIVissimEdge::dictionary(), and NIVissimEdge::getToTreatAsSame().
Referenced by joinable().
| const IntVector& NIVissimConnectionCluster::getConnections | ( | ) | const [inline] |
Definition at line 87 of file NIVissimConnectionCluster.h.
References myConnections.
| IntVector NIVissimConnectionCluster::getDisturbanceParticipators | ( | ) | [private] |
Definition at line 488 of file NIVissimConnectionCluster.cpp.
References NIVissimDisturbance::dictionary(), NIVissimConnection::dictionary(), NIVissimDisturbance::getDisturbanceID(), NIVissimAbstractEdge::getDisturbances(), NIVissimDisturbance::getEdgeID(), and myConnections.
Referenced by joinable().
| NIVissimConnection * NIVissimConnectionCluster::getIncomingContinuation | ( | NIVissimEdge * | e | ) | const |
Definition at line 755 of file NIVissimConnectionCluster.cpp.
References PositionVector::beginEndAngle(), NIVissimConnection::dictionary(), NIVissimConnection::getFromEdgeID(), NIVissimAbstractEdge::getGeometry(), NIVissimAbstractEdge::getID(), and myConnections.
| PositionVector NIVissimConnectionCluster::getIncomingContinuationGeometry | ( | NIVissimEdge * | e | ) | const |
Definition at line 732 of file NIVissimConnectionCluster.cpp.
References PositionVector::beginEndAngle(), NIVissimConnection::dictionary(), NIVissimConnection::getFromEdgeID(), NIVissimAbstractEdge::getGeometry(), NIVissimAbstractEdge::getID(), and myConnections.
| NBNode * NIVissimConnectionCluster::getNBNode | ( | ) | const |
Definition at line 610 of file NIVissimConnectionCluster.cpp.
References NIVissimNodeCluster::dictionary(), and myNodeCluster.
Referenced by NIVissimEdge::getFromNode().
| int NIVissimConnectionCluster::getNextFreeNodeID | ( | ) | [static] |
Definition at line 176 of file NIVissimConnectionCluster.cpp.
References myFirstFreeID.
Referenced by NIVissimConnectionCluster::NodeSubCluster::getConnectionIDs().
| NIVissimConnection * NIVissimConnectionCluster::getOutgoingContinuation | ( | NIVissimEdge * | e | ) | const |
Definition at line 799 of file NIVissimConnectionCluster.cpp.
References PositionVector::beginEndAngle(), NIVissimConnection::dictionary(), NIVissimAbstractEdge::getGeometry(), NIVissimAbstractEdge::getID(), NIVissimConnection::getToEdgeID(), and myConnections.
| PositionVector NIVissimConnectionCluster::getOutgoingContinuationGeometry | ( | NIVissimEdge * | e | ) | const |
Definition at line 777 of file NIVissimConnectionCluster.cpp.
References PositionVector::beginEndAngle(), NIVissimConnection::dictionary(), NIVissimAbstractEdge::getGeometry(), NIVissimAbstractEdge::getID(), NIVissimConnection::getToEdgeID(), and myConnections.
| SUMOReal NIVissimConnectionCluster::getPositionForEdge | ( | int | edgeid | ) | const |
Definition at line 655 of file NIVissimConnectionCluster.cpp.
References GeomHelper::crossPoint(), NIVissimEdge::dictionary(), NIVissimNodeDef::dictionary(), NIVissimConnection::dictionary(), PositionVector::getBegin(), NIVissimNodeDef::getEdgePosition(), PositionVector::getEnd(), NIVissimConnection::getFromEdgeID(), NIVissimConnection::getFromPosition(), NIVissimConnection::getToEdgeID(), NIVissimConnection::getToPosition(), myBoundary, myConnections, myEdges, myNodeCluster, GeomHelper::nearest_position_on_line_to_point2D(), SUMOReal, WRITE_WARNING, Boundary::xmax(), and Boundary::xmin().
Referenced by NIVissimEdge::connection_cluster_position_sorter::operator()().
| bool NIVissimConnectionCluster::hasNodeCluster | ( | ) | const |
Definition at line 567 of file NIVissimConnectionCluster.cpp.
References myNodeCluster.
Referenced by joinable().
| bool NIVissimConnectionCluster::isWeakDistrictConnRealisation | ( | NIVissimConnectionCluster * | c2 | ) | [private] |
Definition at line 390 of file NIVissimConnectionCluster.cpp.
References NIVissimEdge::dictionary(), NIVissimConnection::dictionary(), PositionVector::getBegin(), PositionVector::getEnd(), NIVissimAbstractEdge::getGeometry(), PositionVector::intersects(), isWeakDistrictConnRealisation(), myConnections, myIncomingEdges, myOutgoingEdges, and SUMOReal.
Referenced by isWeakDistrictConnRealisation().
| bool NIVissimConnectionCluster::joinable | ( | NIVissimConnectionCluster * | c2, |
| SUMOReal | offset | ||
| ) | [private] |
Definition at line 333 of file NIVissimConnectionCluster.cpp.
References extendByToTreatAsSame(), getDisturbanceParticipators(), hasNodeCluster(), myConnections, myIncomingEdges, myOutgoingEdges, and overlapsWith().
| 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 MsgHandler::getMessageInstance(), myClusters, MsgHandler::progressMsg(), and toString().
Referenced by NIImporter_Vissim::postLoadBuild().
| bool NIVissimConnectionCluster::liesOnSameEdgesEnd | ( | NIVissimConnectionCluster * | cc2 | ) | [private] |
Definition at line 437 of file NIVissimConnectionCluster.cpp.
References NIVissimEdge::dictionary(), NIVissimConnection::dictionary(), NIVissimBoundedClusterObject::getBoundary(), Boundary::getCenter(), NIVissimConnection::getFromEdgeID(), NIVissimAbstractEdge::getGeometry(), NIVissimConnection::getToEdgeID(), myConnections, GeomHelper::nearest_position_on_line_to_point2D(), and SUMOReal.
| 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::recheckEdges | ( | ) | [private] |
Definition at line 624 of file NIVissimConnectionCluster.cpp.
References NIVissimEdge::addToConnectionCluster(), Boundary::around(), NIVissimConnection::dictionary(), NIVissimEdge::dictionary(), NIVissimConnection::getFromEdgeID(), NIVissimConnection::getFromGeomPosition(), NIVissimConnection::getToEdgeID(), NIVissimConnection::getToGeomPosition(), myBoundary, myConnections, myEdges, NIVissimEdge::removeFromConnectionCluster(), Boundary::xmax(), and Boundary::xmin().
| void NIVissimConnectionCluster::recomputeBoundary | ( | ) | [private] |
Definition at line 593 of file NIVissimConnectionCluster.cpp.
References Boundary::add(), NIVissimConnection::dictionary(), PositionVector::getBoxBoundary(), NIVissimConnection::getFromGeomPosition(), NIVissimAbstractEdge::getGeometry(), NIVissimConnection::getToGeomPosition(), myBoundary, myConnections, PositionVector::size(), Boundary::xmax(), and Boundary::xmin().
Referenced by NIVissimConnectionCluster(), and removeConnections().
| void NIVissimConnectionCluster::removeConnections | ( | const NodeSubCluster & | c | ) | [private] |
Definition at line 579 of file NIVissimConnectionCluster.cpp.
References NIVissimAbstractEdge::getID(), myConnections, NIVissimConnectionCluster::NodeSubCluster::myConnections, and recomputeBoundary().
| void NIVissimConnectionCluster::searchForConnection | ( | int | id | ) | [static] |
Definition at line 535 of file NIVissimConnectionCluster.cpp.
References myClusters.
friend class NIVissimEdge [friend] |
Definition at line 85 of file NIVissimConnectionCluster.h.
int NIVissimConnectionCluster::myBlaID [private] |
Definition at line 203 of file NIVissimConnectionCluster.h.
The boundary of the cluster.
Definition at line 184 of file NIVissimConnectionCluster.h.
Referenced by add(), NIVissimConnectionCluster::NodeSubCluster::add(), around(), getPositionForEdge(), NIVissimConnectionCluster(), overlapsWith(), NIVissimConnectionCluster::NodeSubCluster::overlapsWith(), recheckEdges(), and recomputeBoundary().
NIVissimConnectionCluster::ContType NIVissimConnectionCluster::myClusters [static, private] |
Definition at line 200 of file NIVissimConnectionCluster.h.
Referenced by _debugOut(), buildNodeClusters(), clearDict(), dictSize(), joinBySameEdges(), NIVissimConnectionCluster(), and searchForConnection().
List of connection-ids which participate within this cluster.
Definition at line 181 of file NIVissimConnectionCluster.h.
Referenced by add(), NIVissimConnectionCluster::NodeSubCluster::add(), NIVissimConnectionCluster::NodeSubCluster::getConnectionIDs(), getConnections(), getDisturbanceParticipators(), getIncomingContinuation(), getIncomingContinuationGeometry(), getOutgoingContinuation(), getOutgoingContinuationGeometry(), getPositionForEdge(), isWeakDistrictConnRealisation(), joinable(), liesOnSameEdgesEnd(), recheckEdges(), recomputeBoundary(), removeConnections(), and NIVissimConnectionCluster::NodeSubCluster::size().
IntVector NIVissimConnectionCluster::myEdges [private] |
Definition at line 190 of file NIVissimConnectionCluster.h.
Referenced by add(), getPositionForEdge(), NIVissimConnectionCluster(), and recheckEdges().
int NIVissimConnectionCluster::myFirstFreeID = 100000 [static, private] |
Definition at line 201 of file NIVissimConnectionCluster.h.
Referenced by clearDict(), and getNextFreeNodeID().
Definition at line 196 of file NIVissimConnectionCluster.h.
Referenced by add(), isWeakDistrictConnRealisation(), joinable(), and NIVissimConnectionCluster().
int NIVissimConnectionCluster::myNodeCluster [private] |
The node the cluster is assigned to.
Definition at line 187 of file NIVissimConnectionCluster.h.
Referenced by add(), getNBNode(), getPositionForEdge(), and hasNodeCluster().
IntVector NIVissimConnectionCluster::myNodes [private] |
Definition at line 192 of file NIVissimConnectionCluster.h.
Definition at line 196 of file NIVissimConnectionCluster.h.
Referenced by add(), isWeakDistrictConnRealisation(), joinable(), and NIVissimConnectionCluster().
int NIVissimConnectionCluster::myStaticBlaID = 0 [static, private] |
Definition at line 202 of file NIVissimConnectionCluster.h.
IntVector NIVissimConnectionCluster::myTLs [private] |
Definition at line 194 of file NIVissimConnectionCluster.h.