|
SUMO - Simulation of Urban MObility
|
Represents a single node (junction) during network building. More...
#include <NBNode.h>
Data Structures | |
| class | ApproachingDivider |
| Computes lane-2-lane connections. More... | |
| class | nodes_by_id_sorter |
| Used for sorting the cells by the begin time they describe. More... | |
Public Member Functions | |
| void | addIncomingEdge (NBEdge *edge) |
| adds an incoming edge | |
| void | addOutgoingEdge (NBEdge *edge) |
| adds an outgoing edge | |
| void | addSortedLinkFoes (const NBConnection &mayDrive, const NBConnection &mustStop) |
| void | buildInnerEdges () |
| bool | checkIsRemovable () const |
| PositionVector | computeInternalLaneShape (NBEdge *fromE, int fromL, NBEdge *toE, int toL, int numPoints=5) const |
| Compute the shape for an internal lane. | |
| void | computeLanes2Lanes () |
| computes the connections of lanes to edges | |
| void | computeLogic (const NBEdgeCont &ec, OptionsCont &oc) |
| computes the node's type, logic and traffic light | |
| void | computeNodeShape (bool leftHand) |
| void | computePriorities () |
| void | computeType (const NBTypeCont &tc) |
| bool | foes (const NBEdge *const from1, const NBEdge *const to1, const NBEdge *const from2, const NBEdge *const to2) const |
| Returns the information whether the given flows cross. | |
| bool | forbids (const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo, bool regardNonSignalisedLowerPriority) const |
| Returns the information whether "prohibited" flow must let "prohibitor" flow pass. | |
| NBEdge * | getConnectionTo (NBNode *n) const |
| LinkDirection | getDirection (const NBEdge *const incoming, const NBEdge *const outgoing) const |
| Returns the representation of the described stream's direction. | |
| std::vector< std::pair< NBEdge *, NBEdge * > > | getEdgesToJoin () const |
| Position | getEmptyDir () const |
| Returns something like the most unused direction Should only be used to add source or sink nodes. | |
| const std::string & | getID () const |
| Returns the id. | |
| SUMOReal | getMaxEdgeWidth () const |
| NBEdge * | getOppositeIncoming (NBEdge *e) const |
| NBEdge * | getPossiblySplittedIncoming (const std::string &edgeid) |
| NBEdge * | getPossiblySplittedOutgoing (const std::string &edgeid) |
| const NBConnectionProhibits & | getProhibitions () |
| const PositionVector & | getShape () const |
| bool | hasIncoming (const NBEdge *const e) const |
| Returns whether the given edge ends at this node. | |
| bool | hasOutgoing (const NBEdge *const e) const |
| Returns whether the given edge starts at this node. | |
| void | invalidateIncomingConnections () |
| void | invalidateOutgoingConnections () |
| bool | isDistrict () const |
| bool | isLeftMover (const NBEdge *const from, const NBEdge *const to) const |
| Computes whether the given connection is a left mover across the junction. | |
| bool | isNearDistrict () const |
| bool | mustBrake (const NBEdge *const from, const NBEdge *const to, int toLane) const |
| Returns the information whether the described flow must let any other flow pass. | |
| NBNode (const std::string &id, const Position &position, SumoXMLNodeType type) | |
| Constructor. | |
| NBNode (const std::string &id, const Position &position, NBDistrict *district) | |
| Constructor. | |
| NBNode (const std::string &id, const Position &position) | |
| Constructor. | |
| bool | needsCont (NBEdge *fromE, NBEdge *toE, NBEdge *otherFromE, NBEdge *otherToE, const NBEdge::Connection &c) const |
| void | reinit (const Position &position, SumoXMLNodeType type, bool updateEdgeGeometries=false) |
| Resets initial values. | |
| void | removeDoubleEdges () |
| void | removeEdge (NBEdge *edge, bool removeFromConnections=true) |
| Removes edge from this node and optionally removes connections as well. | |
| void | replaceIncoming (const EdgeVector &which, NBEdge *by) |
| Replaces occurences of every edge from the given list within the list of incoming by the second Connections are remapped, too. | |
| void | replaceIncoming (NBEdge *which, NBEdge *by, unsigned int laneOff) |
| Replaces occurences of the first edge within the list of incoming by the second Connections are remapped, too. | |
| void | replaceOutgoing (const EdgeVector &which, NBEdge *by) |
| Replaces occurences of every edge from the given list within the list of outgoing by the second Connections are remapped, too. | |
| void | replaceOutgoing (NBEdge *which, NBEdge *by, unsigned int laneOff) |
| Replaces occurences of the first edge within the list of outgoing by the second Connections are remapped, too. | |
| void | setID (const std::string &newID) |
| resets the id | |
| void | sortNodesEdges (bool leftHand) |
| std::string | stateCode (const NBEdge *incoming, NBEdge *outgoing, int fromLane, bool mayDefinitelyPass) const |
| bool | writeLogic (OutputDevice &into) const |
| ~NBNode () | |
| Destructor. | |
Atomar getter methods | |
| const Position & | getPosition () const |
| Returns the position of this node. | |
| const EdgeVector & | getIncomingEdges () const |
| Returns this node's incoming edges. | |
| const EdgeVector & | getOutgoingEdges () const |
| Returns this node's outgoing edges. | |
| const EdgeVector & | getEdges () const |
| Returns all edges which participate in this node. | |
| SumoXMLNodeType | getType () const |
| Returns the type of this node. | |
Methods for dealing with assigned traffic lights | |
| void | addTrafficLight (NBTrafficLightDefinition *tlDef) |
| Adds a traffic light to the list of traffic lights that control this node. | |
| void | removeTrafficLight (NBTrafficLightDefinition *tlDef) |
| Removes the given traffic light from this node. | |
| void | removeTrafficLights () |
| Removes all references to traffic lights that control this tls. | |
| bool | isTLControlled () const |
| Returns whether this node is controlled by any tls. | |
| bool | isJoinedTLSControlled () const |
| Returns whether this node is controlled by a tls that spans over more than one node. | |
| const std::set < NBTrafficLightDefinition * > & | getControllingTLS () const |
| Returns the traffic lights that were assigned to this node. | |
Prunning the input | |
| unsigned int | removeSelfLoops (NBDistrictCont &dc, NBEdgeCont &ec, NBTrafficLightLogicCont &tc) |
| Removes edges which are both incoming and outgoing into this node. | |
Applying offset | |
| void | reshiftPosition (SUMOReal xoff, SUMOReal yoff) |
| Applies an offset to the node. | |
Protected Attributes | |
| std::string | myID |
| The name of the object. | |
Private Member Functions | |
| NBEdge * | extractAndMarkFirst (EdgeVector &s) |
| EdgeVector * | getEdgesThatApproach (NBEdge *currentOutgoing) |
| bool | isSimpleContinuation () const |
| NBNode (const NBNode &s) | |
| invalidated copy constructor | |
| NBNode & | operator= (const NBNode &s) |
| invalidated assignment operator | |
| void | remapRemoved (NBTrafficLightLogicCont &tc, NBEdge *removed, const EdgeVector &incoming, const EdgeVector &outgoing) |
| void | replaceInConnectionProhibitions (NBEdge *which, NBEdge *by, unsigned int whichLaneOff, unsigned int byLaneOff) |
| void | setPriorityJunctionPriorities () |
| sets the priorites in case of a priority junction | |
| bool | swapWhenReversed (bool leftHand, const EdgeVector::iterator &i1, const EdgeVector::iterator &i2) |
Private Attributes | |
| EdgeVector | myAllEdges |
| Vector of incoming and outgoing edges. | |
| NBConnectionProhibits | myBlockedConnections |
| NBDistrict * | myDistrict |
| The district the node is the centre of. | |
| EdgeVector | myIncomingEdges |
| Vector of incoming edges. | |
| EdgeVector | myOutgoingEdges |
| Vector of outgoing edges. | |
| PositionVector | myPoly |
| the (outer) shape of the junction | |
| Position | myPosition |
| The position the node lies at. | |
| NBRequest * | myRequest |
| std::set < NBTrafficLightDefinition * > | myTrafficLights |
| SumoXMLNodeType | myType |
| The type of the junction. | |
Friends | |
| class | GNEJunction |
| class | NBNodeCont |
| class | NBNodeShapeComputer |
Represents a single node (junction) during network building.
| NBNode::NBNode | ( | const std::string & | id, |
| const Position & | position | ||
| ) |
Constructor.
| [in] | id | The id of the node |
| [in] | position | The position of the node |
Definition at line 194 of file NBNode.cpp.
| NBNode::NBNode | ( | const std::string & | id, |
| const Position & | position, | ||
| SumoXMLNodeType | type | ||
| ) |
Constructor.
| [in] | id | The id of the node |
| [in] | position | The position of the node |
| [in] | type | The type of the node |
Definition at line 201 of file NBNode.cpp.
| NBNode::NBNode | ( | const std::string & | id, |
| const Position & | position, | ||
| NBDistrict * | district | ||
| ) |
Constructor.
| [in] | id | The id of the node |
| [in] | position | The position of the node |
| [in] | district | The district this district node represents |
Definition at line 209 of file NBNode.cpp.
| NBNode::~NBNode | ( | ) |
| NBNode::NBNode | ( | const NBNode & | s | ) | [private] |
invalidated copy constructor
| void NBNode::addIncomingEdge | ( | NBEdge * | edge | ) |
adds an incoming edge
Definition at line 337 of file NBNode.cpp.
References myAllEdges, and myIncomingEdges.
Referenced by NBEdge::init(), and NBEdge::splitGeometry().
| void NBNode::addOutgoingEdge | ( | NBEdge * | edge | ) |
adds an outgoing edge
Definition at line 347 of file NBNode.cpp.
References myAllEdges, and myOutgoingEdges.
Referenced by NBEdge::init().
| void NBNode::addSortedLinkFoes | ( | const NBConnection & | mayDrive, |
| const NBConnection & | mustStop | ||
| ) |
Definition at line 1100 of file NBNode.cpp.
References NBConnection::getFrom(), NBConnection::getTo(), myBlockedConnections, and WRITE_WARNING.
Referenced by NIImporter_SUMO::_loadNetwork(), NIVissimDisturbance::addToNode(), and NIXMLConnectionsHandler::myStartElement().
| void NBNode::addTrafficLight | ( | NBTrafficLightDefinition * | tlDef | ) |
Adds a traffic light to the list of traffic lights that control this node.
| [in] | tld | The traffic light that controls this node |
Definition at line 256 of file NBNode.cpp.
References myTrafficLights, myType, and NODETYPE_TRAFFIC_LIGHT.
Referenced by NBTrafficLightDefinition::addNode(), NBLoadedTLDef::addToSignalGroup(), and NBTrafficLightDefinition::NBTrafficLightDefinition().
| void NBNode::buildInnerEdges | ( | ) |
Definition at line 1584 of file NBNode.cpp.
References myIncomingEdges.
| bool NBNode::checkIsRemovable | ( | ) | const |
Definition at line 1436 of file NBNode.cpp.
References myIncomingEdges, myOutgoingEdges, myTrafficLights, and NBContHelper::nextCCW().
Referenced by getEdgesToJoin(), and NBNodeCont::removeUnwishedNodes().
| PositionVector NBNode::computeInternalLaneShape | ( | NBEdge * | fromE, |
| int | fromL, | ||
| NBEdge * | toE, | ||
| int | toL, | ||
| int | numPoints = 5 |
||
| ) | const |
Compute the shape for an internal lane.
| [in] | fromE | The starting edge |
| [in] | fromL | The index of the starting lane |
| [in] | toE | The destination edge |
| [in] | toL | The index of the destination lane |
| [in] | numPoints | The number of geometry points for the internal lane |
Definition at line 594 of file NBNode.cpp.
References Position::almostSame(), PositionVector::appendWithCrossingPoint(), Line::atan2Angle(), bezier(), Position::distanceTo(), Line::extrapolateFirstBy(), Line::extrapolateSecondBy(), PositionVector::getBegin(), PositionVector::getBegLine(), PositionVector::getEnd(), PositionVector::getEndLine(), Named::getID(), NBEdge::getLaneShape(), NBEdge::getLaneStruct(), NBEdge::getNumLanes(), Line::getPositionAtDistance(), PositionVector::getSubpart(), NBEdge::getTurnDestination(), Line::intersects(), Line::intersectsAt(), PositionVector::length(), Line::length(), MAX2(), MIN2(), NBEdge::Lane::offset, Line::p1(), Line::p2(), PI, POSITION_EPS, PositionVector::push_back(), Line::rotateAtP1(), NBEdge::Lane::shape, PositionVector::size(), Position::sub(), Line::sub(), SUMOReal, toString(), WRITE_WARNING, Position::x(), and Position::y().
Referenced by NBEdge::buildInnerEdges().
| void NBNode::computeLanes2Lanes | ( | ) |
computes the connections of lanes to edges
Definition at line 829 of file NBNode.cpp.
References NBEdge::addLane2LaneConnections(), Bresenham::compute(), NBEdge::getAngle(), GeomHelper::getCCWAngleDiff(), GeomHelper::getCWAngleDiff(), getEdgesThatApproach(), NBEdge::getNumLanes(), NBEdge::getTurnDestination(), NBEdge::L2L_COMPUTED, NBEdge::L2L_VALIDATED, NBEdge::LANES2EDGES, myIncomingEdges, myOutgoingEdges, NBEdge::setConnection(), and SUMOReal.
| void NBNode::computeLogic | ( | const NBEdgeCont & | ec, |
| OptionsCont & | oc | ||
| ) |
computes the node's type, logic and traffic light
Definition at line 747 of file NBNode.cpp.
References NBRequest::buildBitfieldLogic(), OptionsCont::getBool(), Named::getID(), NBRequest::getSizes(), isDistrict(), OptionsCont::isInStringVector(), NBEdgeCont::isLeftHanded(), isNearDistrict(), myAllEdges, myBlockedConnections, myIncomingEdges, myOutgoingEdges, myRequest, myType, NODETYPE_DEAD_END, NODETYPE_DISTRICT, NODETYPE_NOJUNCTION, and WRITE_WARNING.
| void NBNode::computeNodeShape | ( | bool | leftHand | ) |
Definition at line 815 of file NBNode.cpp.
References NBNodeShapeComputer::compute(), Named::getID(), myIncomingEdges, myOutgoingEdges, myPoly, and WRITE_WARNING.
| void NBNode::computePriorities | ( | ) |
computes the priorities of participating edges within this junction
Definition at line 377 of file NBNode.cpp.
References myAllEdges, myIncomingEdges, myOutgoingEdges, myType, NODETYPE_RIGHT_BEFORE_LEFT, and setPriorityJunctionPriorities().
| void NBNode::computeType | ( | const NBTypeCont & | tc | ) |
computes the junction type
Definition at line 399 of file NBNode.cpp.
References NBTypeCont::getJunctionType(), getOppositeIncoming(), isSimpleContinuation(), myIncomingEdges, myType, NODETYPE_NOJUNCTION, NODETYPE_PRIORITY_JUNCTION, NODETYPE_RIGHT_BEFORE_LEFT, and NODETYPE_UNKNOWN.
| NBEdge * NBNode::extractAndMarkFirst | ( | EdgeVector & | s | ) | [private] |
removes the first edge from the list, marks it as higher priorised and returns it
Definition at line 582 of file NBNode.cpp.
References NBEdge::setJunctionPriority().
Referenced by setPriorityJunctionPriorities().
| bool NBNode::foes | ( | const NBEdge *const | from1, |
| const NBEdge *const | to1, | ||
| const NBEdge *const | from2, | ||
| const NBEdge *const | to2 | ||
| ) | const |
Returns the information whether the given flows cross.
| [in] | from1 | The starting edge of the first stream |
| [in] | to1 | The ending edge of the first stream |
| [in] | from2 | The starting edge of the second stream |
| [in] | to2 | The ending edge of the second stream |
Definition at line 1286 of file NBNode.cpp.
References NBRequest::foes(), and myRequest.
Referenced by NBTrafficLightDefinition::foes(), NBTrafficLightDefinition::forbids(), and needsCont().
| bool NBNode::forbids | ( | const NBEdge *const | possProhibitorFrom, |
| const NBEdge *const | possProhibitorTo, | ||
| const NBEdge *const | possProhibitedFrom, | ||
| const NBEdge *const | possProhibitedTo, | ||
| bool | regardNonSignalisedLowerPriority | ||
| ) | const |
Returns the information whether "prohibited" flow must let "prohibitor" flow pass.
| [in] | possProhibitedFrom | The maybe prohibited connection's begin |
| [in] | possProhibitedTo | The maybe prohibited connection's end |
| [in] | possProhibitorFrom | The maybe prohibiting connection's begin |
| [in] | possProhibitorTo | The maybe prohibiting connection's end |
| [in] | regardNonSignalisedLowerPriority | Whether the right of way rules without traffic lights shall be regarded |
Definition at line 1276 of file NBNode.cpp.
References NBRequest::forbids(), and myRequest.
Referenced by NBTrafficLightDefinition::forbids().
Definition at line 1536 of file NBNode.cpp.
References myOutgoingEdges.
Referenced by NBEdgeCont::guessRoundabouts(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Turns(), and NGNet::toNB().
| const std::set<NBTrafficLightDefinition*>& NBNode::getControllingTLS | ( | ) | const [inline] |
Returns the traffic lights that were assigned to this node.
Definition at line 235 of file NBNode.h.
References myTrafficLights.
Referenced by NIXMLNodesHandler::addNode(), NBNodeCont::guessTLs(), and NWWriter_XML::writeNodes().
| LinkDirection NBNode::getDirection | ( | const NBEdge *const | incoming, |
| const NBEdge *const | outgoing | ||
| ) | const |
Returns the representation of the described stream's direction.
| [in] | incoming | The edge the stream starts at |
| [in] | outgoing | The edge the stream ends at |
Definition at line 1374 of file NBNode.cpp.
References abs, NBEdge::getAngle(), NBEdge::isTurningDirectionAt(), LINKDIR_LEFT, LINKDIR_NODIR, LINKDIR_PARTLEFT, LINKDIR_PARTRIGHT, LINKDIR_RIGHT, LINKDIR_STRAIGHT, LINKDIR_TURN, myAllEdges, NBContHelper::nextCCW(), NBContHelper::nextCW(), NBHelpers::normRelAngle(), and SUMOReal.
Referenced by NBEdge::buildInnerEdges(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), NBEdge::MainDirections::MainDirections(), needsCont(), and NWWriter_SUMO::writeConnection().
| const EdgeVector& NBNode::getEdges | ( | ) | const [inline] |
Returns all edges which participate in this node.
Definition at line 186 of file NBNode.h.
References myAllEdges.
Referenced by NBNodeCont::generateNodeClusters(), and NBEdgeCont::guessRoundabouts().
| EdgeVector * NBNode::getEdgesThatApproach | ( | NBEdge * | currentOutgoing | ) | [private] |
returns a list of edges which are connected to the given outgoing edge
Definition at line 907 of file NBNode.cpp.
References myAllEdges, and NBContHelper::nextCW().
Referenced by computeLanes2Lanes().
Definition at line 1493 of file NBNode.cpp.
References checkIsRemovable(), myIncomingEdges, myOutgoingEdges, and NBContHelper::nextCCW().
Referenced by NBNodeCont::removeUnwishedNodes().
| Position NBNode::getEmptyDir | ( | ) | const |
Returns something like the most unused direction Should only be used to add source or sink nodes.
Definition at line 1169 of file NBNode.cpp.
References Position::add(), getPosition(), Position::mul(), myIncomingEdges, myOutgoingEdges, myPosition, Position::norm2d(), Position::sub(), SUMOReal, Position::x(), and Position::y().
| const std::string& Named::getID | ( | ) | const [inline, inherited] |
Returns the id.
Reimplemented in MS_E2_ZS_CollectorOverLanes.
Definition at line 61 of file Named.h.
References Named::myID.
Referenced by ShapeContainer::add(), MSDetectorControl::add(), RORouteDef_Alternatives::addAlternative(), MSNet::addBusStop(), NLHandler::addConnection(), NBLoadedSUMOTLDef::addConnection(), NIImporter_OpenDrive::addE2EConnectionsSecure(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), NIVisumTL::build(), MS_E2_ZS_CollectorOverLanes::buildCollector(), RORouteDef_Complete::buildCurrentRoute(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), NBEdge::buildInnerEdges(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), ODDistrictHandler::closeDistrict(), NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), NBTrafficLightDefinition::compute(), computeInternalLaneShape(), NBEdge::computeLaneShapes(), computeLogic(), computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBEdge::connections_sorter(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSE3Collector::enter(), MSVTypeProbe::execute(), Command_SaveTLSSwitches::execute(), NBTrafficLightLogicCont::extract(), NBNodeCont::extract(), NBEdgeCont::extract(), MSNet::getBusStopID(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), getPossiblySplittedIncoming(), getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBEdgeCont::ignoreFilterMatch(), MSUnboundActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NIImporter_SUMO::initTrafficLightLogic(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBDistrictCont::insert(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), MSLane::moveCritical(), MSVehicle::MSVehicle(), RORDLoader_SUMOBase::myCharacters(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSTriggeredRerouter::myStartElement(), MSLaneSpeedTrigger::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), Named::ComparatorIdLess::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), NBLoadedTLDef::SignalGroup::patchTYellow(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_InductionLoop::processGet(), NWWriter_SUMO::prohibitionConnection(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), MSLane::setCritical(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), RORDLoader_SUMOBase::startRoute(), NBEdge::startShapeAt(), NIXMLConnectionsHandler::validateLaneInfo(), MSInstantInductLoop::write(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), MSInductLoop::writeTypedXMLOutput(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
| const EdgeVector& NBNode::getIncomingEdges | ( | ) | const [inline] |
Returns this node's incoming edges.
Definition at line 170 of file NBNode.h.
References myIncomingEdges.
Referenced by NBEdge::buildInnerEdges(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBNodeShapeComputer::compute(), NBEdge::decLaneNo(), NIImporter_VISUM::getNamedEdgeContinuating(), NBNodeCont::guessRamps(), NBEdgeCont::guessRoundabouts(), NBNodeCont::guessTLs(), NBEdge::incLaneNo(), isNearDistrict(), NBNodeCont::joinJunctions(), NBNodeCont::mayNeedOffRamp(), NBNodeCont::mayNeedOnRamp(), NBContHelper::node_with_incoming_finder::operator()(), NIImporter_VISUM::parse_Lanes(), NBNodeCont::removeIsolatedRoads(), NBNodeCont::removeUnwishedNodes(), NBEdgeCont::retrievePossiblySplitted(), NGNet::toNB(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeInternalEdges(), NWWriter_SUMO::writeInternalNodes(), NWWriter_SUMO::writeJunction(), and NWWriter_OpenDrive::writeNetwork().
| SUMOReal NBNode::getMaxEdgeWidth | ( | ) | const |
Definition at line 1523 of file NBNode.cpp.
References myAllEdges, and SUMOReal.
Definition at line 1085 of file NBNode.cpp.
References NBEdge::getToNode(), and myIncomingEdges.
Referenced by NBEdge::buildInnerEdges(), and computeType().
| const EdgeVector& NBNode::getOutgoingEdges | ( | ) | const [inline] |
Returns this node's outgoing edges.
Definition at line 178 of file NBNode.h.
References myOutgoingEdges.
Referenced by NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBNodeShapeComputer::compute(), NBEdge::computeEdge2Edges(), NBEdge::computeTurningDirections(), NBEdge::decLaneNo(), NBEdge::getConnectedSorted(), NIImporter_VISUM::getEdge(), NIImporter_VISUM::getNamedEdgeContinuating(), NBNodeCont::guessRamps(), isNearDistrict(), NBNodeCont::joinJunctions(), NBEdge::markAsInLane2LaneState(), NBNodeCont::mayNeedOffRamp(), NBNodeCont::mayNeedOnRamp(), NIXMLEdgesHandler::myEndElement(), NBContHelper::node_with_outgoing_finder::operator()(), NIImporter_VISUM::parse_Lanes(), NIXMLConnectionsHandler::parseLaneBound(), NBNodeCont::removeIsolatedRoads(), NBNodeCont::removeUnwishedNodes(), and NBEdgeCont::retrievePossiblySplitted().
| const Position& NBNode::getPosition | ( | ) | const [inline] |
Returns the position of this node.
Definition at line 162 of file NBNode.h.
References myPosition.
Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLNodesHandler::addNode(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBNodeShapeComputer::computeNodeShapeByCrosses(), NBHelpers::distance(), NBNodeCont::generateNodeClusters(), getEmptyDir(), NBEdge::hasDefaultGeometryEndpoints(), NBEdge::init(), NIVissimEdge::remapOneOfNodes(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIImporter_DlrNavteq::EdgesHandler::report(), NBNodeCont::retrieve(), NBEdgeCont::splitAt(), NBEdge::splitGeometry(), NWWriter_SUMO::writeJunction(), and NWWriter_XML::writeNodes().
| NBEdge * NBNode::getPossiblySplittedIncoming | ( | const std::string & | edgeid | ) |
Definition at line 1117 of file NBNode.cpp.
References Named::getID(), and myIncomingEdges.
Referenced by NIVissimDisturbance::getConnection().
| NBEdge * NBNode::getPossiblySplittedOutgoing | ( | const std::string & | edgeid | ) |
Definition at line 1130 of file NBNode.cpp.
References Named::getID(), and myOutgoingEdges.
Referenced by NIVissimDisturbance::getConnection().
| const NBConnectionProhibits& NBNode::getProhibitions | ( | ) | [inline] |
Definition at line 440 of file NBNode.h.
References myBlockedConnections.
| const PositionVector & NBNode::getShape | ( | ) | const |
Definition at line 1517 of file NBNode.cpp.
References myPoly.
Referenced by NBEdge::startShapeAt(), and NWWriter_SUMO::writeJunction().
| SumoXMLNodeType NBNode::getType | ( | ) | const [inline] |
Returns the type of this node.
Definition at line 195 of file NBNode.h.
References myType.
Referenced by NIXMLNodesHandler::addNode(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NBRequest::setBlocking(), NWWriter_SUMO::writeJunction(), and NWWriter_XML::writeNodes().
Returns whether the given edge ends at this node.
| [in] | e | The edge |
Definition at line 1073 of file NBNode.cpp.
References myIncomingEdges.
Referenced by NIImporter_OpenDrive::addE2EConnectionsSecure(), NBNodeShapeComputer::computeContinuationNodeShape(), NBNodeShapeComputer::computeUniqueDirectionList(), NBNodeCont::generateNodeClusters(), NIImporter_OpenDrive::getIncomingDirectionalEdge(), NBNodeShapeComputer::joinSameDirectionEdges(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), and NIImporter_VISUM::parse_TurnsToSignalGroups().
Returns whether the given edge starts at this node.
| [in] | e | The edge |
Definition at line 1079 of file NBNode.cpp.
References myOutgoingEdges.
Referenced by NIImporter_OpenDrive::addE2EConnectionsSecure(), NBNodeShapeComputer::computeContinuationNodeShape(), NIImporter_OpenDrive::getOutgoingDirectionalEdge(), isLeftMover(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), and NIImporter_VISUM::parse_TurnsToSignalGroups().
| void NBNode::invalidateIncomingConnections | ( | ) |
Definition at line 1197 of file NBNode.cpp.
References myIncomingEdges.
Referenced by NIVissimDistrictConnection::dict_BuildDistricts().
| void NBNode::invalidateOutgoingConnections | ( | ) |
Definition at line 1205 of file NBNode.cpp.
References myOutgoingEdges.
Referenced by NIVissimDistrictConnection::dict_BuildDistricts().
| bool NBNode::isDistrict | ( | ) | const |
Definition at line 1578 of file NBNode.cpp.
References myType, and NODETYPE_DISTRICT.
Referenced by computeLogic(), and isNearDistrict().
| bool NBNode::isJoinedTLSControlled | ( | ) | const |
Returns whether this node is controlled by a tls that spans over more than one node.
Definition at line 279 of file NBNode.cpp.
References isTLControlled(), and myTrafficLights.
Computes whether the given connection is a left mover across the junction.
It is assumed, that it is a left-mover if the clockwise angle is lower than the counter-clockwise angle.
| [in] | from | The incoming edge (the begin of the connection) |
| [in] | from | The outgoing edge (the end of the connection) |
Definition at line 1257 of file NBNode.cpp.
References NBEdge::getAngle(), GeomHelper::getCCWAngleDiff(), GeomHelper::getCWAngleDiff(), NBEdge::getTurnDestination(), hasOutgoing(), myAllEdges, myIncomingEdges, myOutgoingEdges, NBContHelper::nextCW(), and SUMOReal.
Referenced by NBEdge::computeEdge2Edges(), and NBTrafficLightDefinition::isLeftMover().
| bool NBNode::isNearDistrict | ( | ) | const |
Definition at line 1547 of file NBNode.cpp.
References NBEdge::getFromNode(), getIncomingEdges(), getOutgoingEdges(), NBEdge::getToNode(), and isDistrict().
Referenced by computeLogic(), and NBNodeCont::guessTLs().
| bool NBNode::isSimpleContinuation | ( | ) | const [private] |
Definition at line 440 of file NBNode.cpp.
References NBEdge::getNumLanes(), myIncomingEdges, myOutgoingEdges, and NBContHelper::nextCW().
Referenced by NBNodeShapeComputer::compute(), and computeType().
| bool NBNode::isTLControlled | ( | ) | const [inline] |
Returns whether this node is controlled by any tls.
Definition at line 221 of file NBNode.h.
References myTrafficLights.
Referenced by NBEdge::appendTurnaround(), NBNodeCont::guessTLs(), isJoinedTLSControlled(), and NWWriter_XML::writeNodes().
Returns the information whether the described flow must let any other flow pass.
| [in] | from | The connection's start edge |
| [in] | to | The connection's end edge |
| [in] | toLane | The lane the connection ends at |
Definition at line 1213 of file NBNode.cpp.
References NBEdge::getSpeed(), NBRequest::mustBrake(), myIncomingEdges, myRequest, and myTrafficLights.
Referenced by NBTrafficLightDefinition::mustBrake(), needsCont(), and stateCode().
| bool NBNode::needsCont | ( | NBEdge * | fromE, |
| NBEdge * | toE, | ||
| NBEdge * | otherFromE, | ||
| NBEdge * | otherToE, | ||
| const NBEdge::Connection & | c | ||
| ) | const |
Definition at line 718 of file NBNode.cpp.
References foes(), getDirection(), NBEdge::getJunctionPriority(), LINKDIR_LEFT, LINKDIR_TURN, mustBrake(), myType, NODETYPE_RIGHT_BEFORE_LEFT, NBEdge::Connection::tlID, and NBEdge::Connection::toLane.
Referenced by NBEdge::buildInnerEdges().
| void NBNode::reinit | ( | const Position & | position, |
| SumoXMLNodeType | type, | ||
| bool | updateEdgeGeometries = false |
||
| ) |
Resets initial values.
| [in] | position | The position of the node |
| [in] | type | The type of the node |
| [in] | updateEdgeGeometries | Whether the geometires of all connected edges shall be updated |
Definition at line 222 of file NBNode.cpp.
References myIncomingEdges, myOutgoingEdges, myPosition, myType, NODETYPE_TRAFFIC_LIGHT, and removeTrafficLights().
Referenced by NIXMLNodesHandler::addNode(), and NIImporter_DlrNavteq::TrafficlightsHandler::report().
| void NBNode::remapRemoved | ( | NBTrafficLightLogicCont & | tc, |
| NBEdge * | removed, | ||
| const EdgeVector & | incoming, | ||
| const EdgeVector & | outgoing | ||
| ) | [private] |
Definition at line 1293 of file NBNode.cpp.
References NBConnection::getFrom(), NBConnection::getTo(), myBlockedConnections, and NBTrafficLightLogicCont::remapRemoved().
Referenced by removeSelfLoops().
| void NBNode::removeDoubleEdges | ( | ) |
Definition at line 1034 of file NBNode.cpp.
References myAllEdges, myIncomingEdges, and myOutgoingEdges.
Referenced by replaceIncoming(), replaceOutgoing(), and NBEdgeCont::splitAt().
Removes edge from this node and optionally removes connections as well.
Definition at line 1143 of file NBNode.cpp.
References myAllEdges, myIncomingEdges, and myOutgoingEdges.
Referenced by NBEdgeCont::extract(), NBEdgeCont::insert(), NBEdge::reinit(), NBEdgeCont::removeUnwishedEdges(), and NBEdge::splitGeometry().
| unsigned int NBNode::removeSelfLoops | ( | NBDistrictCont & | dc, |
| NBEdgeCont & | ec, | ||
| NBTrafficLightLogicCont & | tc | ||
| ) |
Removes edges which are both incoming and outgoing into this node.
If given, the connections to other edges participating in this node are updated
| in,opt. | changed] dc The districts container to update |
| in,opt. | changed] ec The edge container to remove the edges from |
| in,opt. | changed] tc The traffic lights container to update |
Definition at line 294 of file NBNode.cpp.
References NBEdgeCont::erase(), Named::getID(), NBEdge::isConnectedTo(), myIncomingEdges, myOutgoingEdges, NBEdge::remapConnections(), remapRemoved(), and WRITE_WARNING.
| void NBNode::removeTrafficLight | ( | NBTrafficLightDefinition * | tlDef | ) |
Removes the given traffic light from this node.
Definition at line 263 of file NBNode.cpp.
References myTrafficLights, and NBTrafficLightDefinition::removeNode().
Referenced by removeTrafficLights().
| void NBNode::removeTrafficLights | ( | ) |
Removes all references to traffic lights that control this tls.
Definition at line 270 of file NBNode.cpp.
References myTrafficLights, and removeTrafficLight().
Referenced by NIXMLNodesHandler::addNode(), NBNodeCont::extract(), NBNodeCont::guessTLs(), and reinit().
| void NBNode::replaceIncoming | ( | const EdgeVector & | which, |
| NBEdge * | by | ||
| ) |
Replaces occurences of every edge from the given list within the list of incoming by the second Connections are remapped, too.
Definition at line 980 of file NBNode.cpp.
References myDistrict, removeDoubleEdges(), NBDistrict::replaceIncoming(), and replaceIncoming().
Replaces occurences of the first edge within the list of incoming by the second Connections are remapped, too.
Definition at line 966 of file NBNode.cpp.
References myAllEdges, myIncomingEdges, and replaceInConnectionProhibitions().
Referenced by NBEdgeCont::joinSameNodeConnectingEdges(), NBNodeCont::removeUnwishedNodes(), replaceIncoming(), and NBEdgeCont::splitAt().
| void NBNode::replaceInConnectionProhibitions | ( | NBEdge * | which, |
| NBEdge * | by, | ||
| unsigned int | whichLaneOff, | ||
| unsigned int | byLaneOff | ||
| ) | [private] |
Definition at line 999 of file NBNode.cpp.
References myBlockedConnections, NBConnection::replaceFrom(), and NBConnection::replaceTo().
Referenced by replaceIncoming(), and replaceOutgoing().
| void NBNode::replaceOutgoing | ( | const EdgeVector & | which, |
| NBEdge * | by | ||
| ) |
Replaces occurences of every edge from the given list within the list of outgoing by the second Connections are remapped, too.
Definition at line 948 of file NBNode.cpp.
References myDistrict, removeDoubleEdges(), NBDistrict::replaceOutgoing(), and replaceOutgoing().
Replaces occurences of the first edge within the list of outgoing by the second Connections are remapped, too.
Definition at line 930 of file NBNode.cpp.
References myAllEdges, myIncomingEdges, myOutgoingEdges, replaceInConnectionProhibitions(), and NBEdge::replaceInConnections().
Referenced by NBEdgeCont::joinSameNodeConnectingEdges(), replaceOutgoing(), and NBEdgeCont::splitAt().
| void NBNode::reshiftPosition | ( | SUMOReal | xoff, |
| SUMOReal | yoff | ||
| ) |
Applies an offset to the node.
| [in] | xoff | The x-offset to apply |
| [in] | yoff | The y-offset to apply |
Definition at line 248 of file NBNode.cpp.
References myPoly, myPosition, PositionVector::reshiftRotate(), and Position::reshiftRotate().
| void Named::setID | ( | const std::string & | newID | ) | [inline, inherited] |
| void NBNode::setPriorityJunctionPriorities | ( | ) | [private] |
sets the priorites in case of a priority junction
Definition at line 484 of file NBNode.cpp.
References extractAndMarkFirst(), NBEdge::getAngle(), GeomHelper::getMinAngleDiff(), myIncomingEdges, myOutgoingEdges, samePriority(), NBEdge::setJunctionPriority(), and SUMOReal.
Referenced by computePriorities().
| void NBNode::sortNodesEdges | ( | bool | leftHand | ) |
initialises the list of all edges and sorts all edges
Definition at line 796 of file NBNode.cpp.
References myAllEdges, myIncomingEdges, myOutgoingEdges, and swapWhenReversed().
| std::string NBNode::stateCode | ( | const NBEdge * | incoming, |
| NBEdge * | outgoing, | ||
| int | fromLane, | ||
| bool | mayDefinitelyPass | ||
| ) | const |
Definition at line 1420 of file NBNode.cpp.
References NBEdge::isInnerEdge(), LINKSTATE_EQUAL, LINKSTATE_MAJOR, LINKSTATE_MINOR, LINKSTATE_TL_OFF_NOSIGNAL, mustBrake(), myType, NODETYPE_RIGHT_BEFORE_LEFT, and toString().
Referenced by NWWriter_SUMO::writeConnection().
| bool NBNode::swapWhenReversed | ( | bool | leftHand, |
| const EdgeVector::iterator & | i1, | ||
| const EdgeVector::iterator & | i2 | ||
| ) | [private] |
used while fine sorting the incoming and outgoing edges, this method performs the swapping of two edges in the myAllEdges-list when the outgoing is in clockwise direction to the incoming
Definition at line 357 of file NBNode.cpp.
References NBEdge::getToNode(), and NBEdge::isTurningDirectionAt().
Referenced by sortNodesEdges().
| bool NBNode::writeLogic | ( | OutputDevice & | into | ) | const |
writes the XML-representation of the logic as a bitset-logic XML representation
Definition at line 786 of file NBNode.cpp.
References Named::myID, myRequest, and NBRequest::writeLogic().
Referenced by NWWriter_SUMO::writeJunction().
friend class NBNodeCont [friend] |
friend class NBNodeShapeComputer [friend] |
EdgeVector NBNode::myAllEdges [private] |
Vector of incoming and outgoing edges.
Definition at line 504 of file NBNode.h.
Referenced by addIncomingEdge(), addOutgoingEdge(), NBNodeShapeComputer::compute(), NBNodeShapeComputer::computeContinuationNodeShape(), computeLogic(), NBNodeShapeComputer::computeNodeShapeByCrosses(), computePriorities(), NBNodeShapeComputer::computeUniqueDirectionList(), getDirection(), getEdges(), getEdgesThatApproach(), getMaxEdgeWidth(), isLeftMover(), NBNodeShapeComputer::joinSameDirectionEdges(), removeDoubleEdges(), removeEdge(), replaceIncoming(), replaceOutgoing(), and sortNodesEdges().
The container for connection block dependencies
Definition at line 510 of file NBNode.h.
Referenced by addSortedLinkFoes(), computeLogic(), getProhibitions(), remapRemoved(), and replaceInConnectionProhibitions().
NBDistrict* NBNode::myDistrict [private] |
The district the node is the centre of.
Definition at line 513 of file NBNode.h.
Referenced by replaceIncoming(), and replaceOutgoing().
std::string Named::myID [protected, inherited] |
The name of the object.
Reimplemented in MS_E2_ZS_CollectorOverLanes.
Definition at line 83 of file Named.h.
Referenced by NLDetectorBuilder::addE3Entry(), NLDetectorBuilder::addE3Exit(), RORouteDef_OrigDest::buildCurrentRoute(), RORouteDef_Complete::buildCurrentRoute(), RORouteDef_Alternatives::buildCurrentRoute(), NBEdge::computeEdgeShape(), Named::getID(), NBEdge::getLaneID(), NBEdge::init(), MSRoute::release(), Named::setID(), NBEdge::splitGeometry(), MSXMLRawOut::writeLane(), writeLogic(), MSMeanData::writeXMLOutput(), and MSE3Collector::writeXMLOutput().
EdgeVector NBNode::myIncomingEdges [private] |
Vector of incoming edges.
Definition at line 498 of file NBNode.h.
Referenced by addIncomingEdge(), buildInnerEdges(), checkIsRemovable(), computeLanes2Lanes(), computeLogic(), computeNodeShape(), computePriorities(), computeType(), getEdgesToJoin(), getEmptyDir(), getIncomingEdges(), getOppositeIncoming(), getPossiblySplittedIncoming(), hasIncoming(), invalidateIncomingConnections(), isLeftMover(), isSimpleContinuation(), mustBrake(), reinit(), removeDoubleEdges(), removeEdge(), removeSelfLoops(), replaceIncoming(), replaceOutgoing(), setPriorityJunctionPriorities(), and sortNodesEdges().
EdgeVector NBNode::myOutgoingEdges [private] |
Vector of outgoing edges.
Definition at line 501 of file NBNode.h.
Referenced by addOutgoingEdge(), checkIsRemovable(), computeLanes2Lanes(), computeLogic(), computeNodeShape(), computePriorities(), getConnectionTo(), getEdgesToJoin(), getEmptyDir(), getOutgoingEdges(), getPossiblySplittedOutgoing(), hasOutgoing(), invalidateOutgoingConnections(), isLeftMover(), isSimpleContinuation(), reinit(), removeDoubleEdges(), removeEdge(), removeSelfLoops(), replaceOutgoing(), setPriorityJunctionPriorities(), and sortNodesEdges().
PositionVector NBNode::myPoly [private] |
the (outer) shape of the junction
Definition at line 516 of file NBNode.h.
Referenced by computeNodeShape(), getShape(), and reshiftPosition().
Position NBNode::myPosition [private] |
The position the node lies at.
Definition at line 495 of file NBNode.h.
Referenced by getEmptyDir(), getPosition(), reinit(), and reshiftPosition().
NBRequest* NBNode::myRequest [private] |
Definition at line 518 of file NBNode.h.
Referenced by computeLogic(), foes(), forbids(), mustBrake(), writeLogic(), and ~NBNode().
std::set<NBTrafficLightDefinition*> NBNode::myTrafficLights [private] |
Definition at line 520 of file NBNode.h.
Referenced by addTrafficLight(), checkIsRemovable(), getControllingTLS(), isJoinedTLSControlled(), isTLControlled(), mustBrake(), removeTrafficLight(), and removeTrafficLights().
SumoXMLNodeType NBNode::myType [private] |
The type of the junction.
Definition at line 507 of file NBNode.h.
Referenced by addTrafficLight(), computeLogic(), computePriorities(), computeType(), getType(), isDistrict(), needsCont(), reinit(), and stateCode().