SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NBNode Class Reference

Represents a single node (junction) during network building. More...

#include <NBNode.h>

Inheritance diagram for NBNode:
Named

Data Structures

class  ApproachingDivider
 Computes lane-2-lane connections. More...
struct  Crossing
 A definition of a pedestrian crossing. More...
class  edge_by_direction_sorter
 Sorts outgoing before incoming edges. More...
class  nodes_by_id_sorter
 Used for sorting the cells by the begin time they describe. More...
struct  WalkingArea
 A definition of a pedestrian walking area. More...

Public Member Functions

void addCrossing (EdgeVector edges, SUMOReal width, bool priority)
 add a pedestrian crossing to this node
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 addTo (const StoringVisitor &cont) const
 Adds this object to the given container.
unsigned int buildCrossings ()
void buildInnerEdges (bool buildCrossingsAndWalkingAreas)
 build internal lanes, pedestrian crossings and walking areas
void buildWalkingAreas ()
int checkCrossing (EdgeVector candidates)
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 (const bool buildCrossingsAndWalkingAreas)
 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, SUMOReal mismatchThreshold)
 Compute the junction shape for this node.
bool crossingBetween (const NBEdge *e1, const NBEdge *e2) const
 return true if the given edges are connected by a crossing
EdgeVector edgesBetween (const NBEdge *e1, const NBEdge *e2) const
 return all edges that lie clockwise between the given edges
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.
bool geometryLike () const
 whether this is structurally similar to a geometry node
NBEdgegetConnectionTo (NBNode *n) const
const CrossinggetCrossing (const std::string &id) const
 return the crossing with the given id
const std::vector< Crossing > & getCrossings () const
 return this junctions pedestrian crossings
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.
LinkState getLinkState (const NBEdge *incoming, NBEdge *outgoing, int fromLane, bool mayDefinitelyPass, const std::string &tlID) const
NBEdgegetOppositeIncoming (NBEdge *e) const
NBEdgegetPossiblySplittedIncoming (const std::string &edgeid)
NBEdgegetPossiblySplittedOutgoing (const std::string &edgeid)
const NBConnectionProhibitsgetProhibitions ()
const PositionVectorgetShape () const
 retrieve the junction shape
const std::vector< WalkingArea > & getWalkingAreas () const
 return this junctions pedestrian walking areas
int guessCrossings ()
 guess pedestrian crossings and return how many were guessed
bool hasCustomShape ()
 return whether the shape was set by the user
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.
bool mustBrakeForCrossing (const NBEdge *const from, const NBEdge *const to, const Crossing &crossing) const
 Returns the information whether the described flow must brake for the given crossing.
 NBNode (const std::string &id, const Position &position, SumoXMLNodeType type)
 Constructor.
 NBNode (const std::string &id, const Position &position, NBDistrict *district=0)
 Constructor.
bool needsCont (NBEdge *fromE, NBEdge *toE, NBEdge *otherFromE, NBEdge *otherToE, const NBEdge::Connection &c) const
int numNormalConnections () const
 return the number of lane-to-lane connections at this junction (excluding crossings)
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 (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 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 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 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 setCrossingTLIndices (unsigned int startIndex)
 set tl indices of this nodes crossing starting at the given index
void setCustomShape (const PositionVector &shape)
 set the junction shape
void setID (const std::string &newID)
 resets the id
void setRoundabout ()
 update the type of this node as a roundabout
bool writeLogic (OutputDevice &into, const bool checkLaneFoes) const
 ~NBNode ()
 Destructor.
Atomar getter methods
const PositiongetPosition () const
 Returns the position of this node.
Position getCenter () const
 Returns a position that is guaranteed to lie within the node shape.
const EdgeVectorgetIncomingEdges () const
 Returns this node's incoming edges.
const EdgeVectorgetOutgoingEdges () const
 Returns this node's outgoing edges.
const EdgeVectorgetEdges () 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.
void invalidateTLS (NBTrafficLightLogicCont &tlCont)
 causes the traffic light to be computed anew
void shiftTLConnectionLaneIndex (NBEdge *edge, int offset)
 patches loaded signal plans by modifying lane indices
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.

Static Public Attributes

static const int BACKWARD
static const SUMOReal DEFAULT_CROSSING_WIDTH
 default width of pedetrian crossings
static const int FORWARD
 edge directions (for pedestrian related stuff)
static const int MAX_CONNECTIONS
 maximum number of connections allowed

Protected Attributes

std::string myID
 The name of the object.

Private Member Functions

EdgeVectorgetEdgesThatApproach (NBEdge *currentOutgoing)
bool isSimpleContinuation () const
 NBNode (const NBNode &s)
 invalidated copy constructor
NBNodeoperator= (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

Private Attributes

EdgeVector myAllEdges
 Vector of incoming and outgoing edges.
NBConnectionProhibits myBlockedConnections
std::vector< CrossingmyCrossings
 Vector of crossings.
NBDistrictmyDistrict
 The district the node is the centre of.
bool myHaveCustomPoly
 whether this nodes shape was set by the user
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.
NBRequestmyRequest
std::set
< NBTrafficLightDefinition * > 
myTrafficLights
SumoXMLNodeType myType
 The type of the junction.
std::vector< WalkingAreamyWalkingAreas
 Vector of walking areas.

Friends

class GNEJunction
class NBEdgePriorityComputer
class NBNodeCont
class NBNodesEdgesSorter
class NBNodeShapeComputer
class NBNodeTypeComputer

Detailed Description

Represents a single node (junction) during network building.

Definition at line 75 of file NBNode.h.

Constructor & Destructor Documentation

NBNode::NBNode ( const std::string &  id,
const Position position,
SumoXMLNodeType  type 
)

Constructor.

Parameters
[in]idThe id of the node
[in]positionThe position of the node
[in]typeThe type of the node

Definition at line 228 of file NBNode.cpp.

NBNode::NBNode ( const std::string &  id,
const Position position,
NBDistrict district = 0 
)

Constructor.

Parameters
[in]idThe id of the node
[in]positionThe position of the node
[in]districtThe district this district node represents, 0 means no district node

Definition at line 239 of file NBNode.cpp.

NBNode::~NBNode ( )

Destructor.

Definition at line 249 of file NBNode.cpp.

References myRequest.

NBNode::NBNode ( const NBNode s)
private

invalidated copy constructor

Member Function Documentation

void NBNode::addCrossing ( EdgeVector  edges,
SUMOReal  width,
bool  priority 
)

add a pedestrian crossing to this node

Definition at line 2000 of file NBNode.cpp.

References myCrossings.

Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLConnectionsHandler::addCrossing(), and checkCrossing().

void NBNode::addIncomingEdge ( NBEdge edge)

adds an incoming edge

Definition at line 400 of file NBNode.cpp.

References myAllEdges, and myIncomingEdges.

Referenced by NBEdge::init(), NBEdge::reinitNodes(), and NBEdge::splitGeometry().

void NBNode::addOutgoingEdge ( NBEdge edge)

adds an outgoing edge

Definition at line 410 of file NBNode.cpp.

References myAllEdges, and myOutgoingEdges.

Referenced by NBEdge::init(), and NBEdge::reinitNodes().

void NBNode::addSortedLinkFoes ( const NBConnection mayDrive,
const NBConnection mustStop 
)
void Named::addTo ( const StoringVisitor cont) const
inlineinherited

Adds this object to the given container.

Parameters
in,filled]cont The container to add this item to

Definition at line 121 of file Named.h.

References Named::StoringVisitor::add().

void NBNode::addTrafficLight ( NBTrafficLightDefinition tlDef)

Adds a traffic light to the list of traffic lights that control this node.

Parameters
[in]tldThe traffic light that controls this node

Definition at line 289 of file NBNode.cpp.

References myTrafficLights, myType, NODETYPE_TRAFFIC_LIGHT, and NODETYPE_TRAFFIC_LIGHT_NOJUNCTION.

Referenced by NBTrafficLightDefinition::addNode(), NBLoadedTLDef::addToSignalGroup(), NIImporter_OpenDrive::loadNetwork(), and NBTrafficLightDefinition::NBTrafficLightDefinition().

void NBNode::buildInnerEdges ( bool  buildCrossingsAndWalkingAreas)

build internal lanes, pedestrian crossings and walking areas

Definition at line 1621 of file NBNode.cpp.

References buildCrossings(), buildWalkingAreas(), Named::getID(), myCrossings, myIncomingEdges, and toString().

bool NBNode::checkIsRemovable ( ) const
PositionVector NBNode::computeInternalLaneShape ( NBEdge fromE,
int  fromL,
NBEdge toE,
int  toL,
int  numPoints = 5 
) const
void NBNode::computeNodeShape ( bool  leftHand,
SUMOReal  mismatchThreshold 
)

Compute the junction shape for this node.

Parameters
[in]lefhandWhether the network uses left-hand traffic
[in]mismatchThresholdThe threshold for warning about shapes which are away from myPosition

Definition at line 650 of file NBNode.cpp.

References PositionVector::around(), NBNodeShapeComputer::compute(), PositionVector::distance(), Named::getID(), myHaveCustomPoly, Named::myID, myIncomingEdges, myOutgoingEdges, myPoly, myPosition, PositionVector::push_back(), PositionVector::push_back_noDoublePos(), toString(), and WRITE_WARNING.

bool NBNode::crossingBetween ( const NBEdge e1,
const NBEdge e2 
) const

return true if the given edges are connected by a crossing

Definition at line 1934 of file NBNode.cpp.

References myCrossings.

Referenced by buildWalkingAreas().

EdgeVector NBNode::edgesBetween ( const NBEdge e1,
const NBEdge e2 
) const

return all edges that lie clockwise between the given edges

Definition at line 1951 of file NBNode.cpp.

References myAllEdges, and NBContHelper::nextCW().

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.

Parameters
[in]from1The starting edge of the first stream
[in]to1The ending edge of the first stream
[in]from2The starting edge of the second stream
[in]to2The ending edge of the second stream
Returns
Whether both stream are foes (cross)

Definition at line 1159 of file NBNode.cpp.

References NBRequest::foes(), and myRequest.

Referenced by NBEdge::buildInnerEdges(), 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.

Parameters
[in]possProhibitedFromThe maybe prohibited connection's begin
[in]possProhibitedToThe maybe prohibited connection's end
[in]possProhibitorFromThe maybe prohibiting connection's begin
[in]possProhibitorToThe maybe prohibiting connection's end
[in]regardNonSignalisedLowerPriorityWhether the right of way rules without traffic lights shall be regarded
Returns
Whether the second flow prohibits the first one

Definition at line 1149 of file NBNode.cpp.

References NBRequest::forbids(), and myRequest.

Referenced by NBEdge::buildInnerEdges(), and NBTrafficLightDefinition::forbids().

bool NBNode::geometryLike ( ) const

whether this is structurally similar to a geometry node

Definition at line 1967 of file NBNode.cpp.

References NBEdge::getAngleAtNode(), MAX2(), myIncomingEdges, myOutgoingEdges, NBHelpers::relAngle(), and SUMOReal.

Referenced by NBNodeCont::discardTrafficLights(), and NBNodeCont::guessTLs().

Position NBNode::getCenter ( ) const

Returns a position that is guaranteed to lie within the node shape.

Definition at line 2030 of file NBNode.cpp.

References PositionVector::around(), PositionVector::closePolygon(), PositionVector::distance(), PositionVector::getPolygonCenter(), myPoly, myPosition, and POSITION_EPS.

Referenced by NWWriter_SUMO::writeEdge().

const std::set<NBTrafficLightDefinition*>& NBNode::getControllingTLS ( ) const
inline

Returns the traffic lights that were assigned to this node.

Returns
The set of tls that control this node

Definition at line 309 of file NBNode.h.

References myTrafficLights.

Referenced by NIXMLNodesHandler::addNode(), buildWalkingAreas(), NBNodeCont::discardTrafficLights(), NBNodeCont::guessTLs(), NIImporter_OpenDrive::loadNetwork(), and NWWriter_XML::writeNodes().

const NBNode::Crossing & NBNode::getCrossing ( const std::string &  id) const

return the crossing with the given id

Definition at line 2006 of file NBNode.cpp.

References myCrossings.

Referenced by NWWriter_SUMO::writeNetwork().

const std::vector<Crossing>& NBNode::getCrossings ( ) const
inline
LinkDirection NBNode::getDirection ( const NBEdge *const  incoming,
const NBEdge *const  outgoing 
) const
const EdgeVector& NBNode::getEdges ( ) const
inline

Returns all edges which participate in this node.

Returns
Edges that start or end at this node

Definition at line 260 of file NBNode.h.

References myAllEdges.

Referenced by NBNodeCont::generateNodeClusters(), NBRampsComputer::getOffRampEdges(), NBRampsComputer::getOnRampEdges(), 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 792 of file NBNode.cpp.

References myAllEdges, and NBContHelper::nextCW().

Referenced by computeLanes2Lanes().

std::vector< std::pair< NBEdge *, NBEdge * > > NBNode::getEdgesToJoin ( ) const
Position NBNode::getEmptyDir ( ) const

Returns something like the most unused direction Should only be used to add source or sink nodes.

Definition at line 1057 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
inlineinherited

Returns the id.

Returns
The stored id

Definition at line 60 of file Named.h.

References Named::myID.

Referenced by NIImporter_SUMO::_loadNetwork(), MSVehicleTransfer::add(), TraCIServerAPI_Lane::StoringVisitor::add(), Named::StoringVisitor::add(), MSDetectorControl::add(), RORouteDef::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), NIXMLConnectionsHandler::addCrossing(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSPerson::MSPersonStage_Driving::beginEventOutput(), MSPerson::MSPersonStage_Waiting::beginEventOutput(), NIVisumTL::build(), RODFNet::buildApproachList(), MS_E2_ZS_CollectorOverLanes::buildCollector(), buildCrossings(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), buildInnerEdges(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), buildWalkingAreas(), MSSimpleTrafficLightLogic::changeStepAndDuration(), NBEdge::checkGeometry(), MSVehicleTransfer::checkInsertions(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), computeInternalLaneShape(), NBEdge::computeLaneShapes(), computeLogic(), computeNodeShape(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), MSAbstractLaneChangeModel::continueLaneChangeManeuver(), NLDetectorBuilder::convUncontE2PosLength(), GUINet::createTLWrapper(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSPerson::MSPersonStage_Driving::endEventOutput(), MSPerson::MSPersonStage_Waiting::endEventOutput(), MSE3Collector::enter(), MSCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), NBEdge::getCrossingAngle(), RODFNet::getDetectorEdge(), MSMeanData::getEdgeID(), PedestrianEdge< E, L, N >::getEffort(), NBEdge::getFirstNonPedestrianLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), AGStreet::getName(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPModel_Striping::getNextLane(), GUIVehicle::getParameterWindow(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), getPossiblySplittedIncoming(), getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), NBEdgeCont::ignoreFilterMatch(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSTrafficLightLogic::init(), PedestrianEdge< E, L, N >::initPedestrianNetwork(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), invalidateTLS(), MSTLLogicControl::isActive(), RODFNet::isDestination(), RODFNet::isFalseSource(), RODFNet::isSource(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), NBRampsComputer::moveRampRight(), MSPModel_Striping::PState::moveToNextLane(), MSCalibrator::MSCalibrator(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Example::notifyEnter(), MSCalibrator::VehicleRemover::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Person::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Example::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), GUIViewTraffic::onGamingClick(), RORouteHandler::openRoute(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), RODFNet::idComp::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), MSEdge::by_id_sorter::operator()(), NBNode::nodes_by_id_sorter::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(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_JE2013::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSRightOfWayJunction::postloadInit(), AGStreet::print(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Vehicle::processSet(), NWWriter_SUMO::prohibitionConnection(), MSPModel_Striping::PState::PState(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), MSCalibrator::removePending(), removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), MSBaseVehicle::saveState(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), NIXMLEdgesHandler::setNodes(), MSLink::setRequestInformation(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap_matchingEdgeLane(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSLCM_JE2013::wantsChange(), MSFCDExport::write(), MSEmissionExport::write(), MSInstantInductLoop::write(), NBSign::writeAsPOI(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_SUMO::writeRoundabout(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_DlrNavteq::writeTrafficSignals(), MSInductLoop::writeTypedXMLOutput(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().

LinkState NBNode::getLinkState ( const NBEdge incoming,
NBEdge outgoing,
int  fromLane,
bool  mayDefinitelyPass,
const std::string &  tlID 
) const
NBEdge * NBNode::getOppositeIncoming ( NBEdge e) const

Definition at line 970 of file NBNode.cpp.

References NBEdge::getToNode(), and myIncomingEdges.

Referenced by NBNodeTypeComputer::computeNodeTypes().

NBEdge * NBNode::getPossiblySplittedIncoming ( const std::string &  edgeid)

Definition at line 1005 of file NBNode.cpp.

References Named::getID(), and myIncomingEdges.

Referenced by NIVissimDisturbance::getConnection().

NBEdge * NBNode::getPossiblySplittedOutgoing ( const std::string &  edgeid)

Definition at line 1018 of file NBNode.cpp.

References Named::getID(), and myOutgoingEdges.

Referenced by NIVissimDisturbance::getConnection().

const NBConnectionProhibits& NBNode::getProhibitions ( )
inline

Definition at line 557 of file NBNode.h.

References myBlockedConnections.

const PositionVector & NBNode::getShape ( ) const

retrieve the junction shape

Definition at line 1397 of file NBNode.cpp.

References myPoly.

Referenced by NBEdge::computeAngle(), NBEdge::startShapeAt(), NWWriter_SUMO::writeJunction(), and NWWriter_XML::writeNodes().

SumoXMLNodeType NBNode::getType ( ) const
inline
const std::vector<WalkingArea>& NBNode::getWalkingAreas ( ) const
inline

return this junctions pedestrian walking areas

Definition at line 577 of file NBNode.h.

References myWalkingAreas.

Referenced by NWWriter_SUMO::writeInternalEdges(), and NWWriter_SUMO::writeNetwork().

int NBNode::guessCrossings ( )

guess pedestrian crossings and return how many were guessed

Definition at line 1458 of file NBNode.cpp.

References checkCrossing(), gDebugFlag1, NBEdge::getFromNode(), Named::getID(), NBEdge::getLanes(), myAllEdges, myCrossings, SVC_PEDESTRIAN, and toString().

bool NBNode::hasCustomShape ( )
inline

return whether the shape was set by the user

Definition at line 483 of file NBNode.h.

References myHaveCustomPoly.

Referenced by NWWriter_XML::writeNodes().

bool NBNode::hasIncoming ( const NBEdge *const  e) const

Returns whether the given edge ends at this node.

Parameters
[in]eThe edge
Returns
Whether the given edge is one of this node's incoming edges

Definition at line 958 of file NBNode.cpp.

References myIncomingEdges.

Referenced by NBNodeShapeComputer::computeContinuationNodeShape(), NBNodeShapeComputer::computeUniqueDirectionList(), NBNodeCont::generateNodeClusters(), NBNodeShapeComputer::joinSameDirectionEdges(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), and NIImporter_VISUM::parse_TurnsToSignalGroups().

bool NBNode::hasOutgoing ( const NBEdge *const  e) const

Returns whether the given edge starts at this node.

Parameters
[in]eThe edge
Returns
Whether the given edge is one of this node's outgoing edges

Definition at line 964 of file NBNode.cpp.

References myOutgoingEdges.

Referenced by NBNodeShapeComputer::computeContinuationNodeShape(), isLeftMover(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), and NIImporter_VISUM::parse_TurnsToSignalGroups().

void NBNode::invalidateIncomingConnections ( )

Definition at line 1085 of file NBNode.cpp.

References myIncomingEdges.

Referenced by NIVissimDistrictConnection::dict_BuildDistricts().

void NBNode::invalidateOutgoingConnections ( )

Definition at line 1093 of file NBNode.cpp.

References myOutgoingEdges.

Referenced by NIVissimDistrictConnection::dict_BuildDistricts().

bool NBNode::isDistrict ( ) const

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

Returns
Whether a "joined" traffic light was assigned to this node

Definition at line 314 of file NBNode.cpp.

References isTLControlled(), and myTrafficLights.

bool NBNode::isLeftMover ( const NBEdge *const  from,
const NBEdge *const  to 
) const

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.

Parameters
[in]fromThe incoming edge (the begin of the connection)
[in]fromThe outgoing edge (the end of the connection)
Returns
Whether the described connection is a left-mover

Definition at line 1130 of file NBNode.cpp.

References NBEdge::getAngleAtNode(), GeomHelper::getCCWAngleDiff(), GeomHelper::getCWAngleDiff(), hasOutgoing(), NBEdge::isTurningDirectionAt(), myAllEdges, myIncomingEdges, myOutgoingEdges, NBContHelper::nextCW(), and SUMOReal.

Referenced by NBEdge::computeEdge2Edges(), and NBTrafficLightDefinition::isLeftMover().

bool NBNode::isNearDistrict ( ) const
bool NBNode::isSimpleContinuation ( ) const
private
bool NBNode::isTLControlled ( ) const
inline
bool NBNode::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.

Parameters
[in]fromThe connection's start edge
[in]toThe connection's end edge
[in]toLaneThe lane the connection ends at
Returns
Whether the described connection must brake (has higher priorised foes)

Definition at line 1101 of file NBNode.cpp.

References NBRequest::mustBrake(), myRequest, and myTrafficLights.

Referenced by getLinkState(), NBTrafficLightDefinition::mustBrake(), and needsCont().

bool NBNode::mustBrakeForCrossing ( const NBEdge *const  from,
const NBEdge *const  to,
const Crossing crossing 
) const

Returns the information whether the described flow must brake for the given crossing.

Parameters
[in]fromThe connection's start edge
[in]toThe connection's end edge
[in]crossingThe pedestrian crossing to check
Returns
Whether the described connection must brake (has higher priorised foes)

Definition at line 1124 of file NBNode.cpp.

References NBRequest::mustBrakeForCrossing(), and myRequest.

Referenced by NBOwnTLDef::patchStateForCrossings().

bool NBNode::needsCont ( NBEdge fromE,
NBEdge toE,
NBEdge otherFromE,
NBEdge otherToE,
const NBEdge::Connection c 
) const
int NBNode::numNormalConnections ( ) const

return the number of lane-to-lane connections at this junction (excluding crossings)

Definition at line 2025 of file NBNode.cpp.

References NBRequest::getSizes(), and myRequest.

Referenced by computeLogic().

NBNode& NBNode::operator= ( const NBNode s)
private

invalidated assignment operator

void NBNode::reinit ( const Position position,
SumoXMLNodeType  type,
bool  updateEdgeGeometries = false 
)

Resets initial values.

Parameters
[in]positionThe position of the node
[in]typeThe type of the node
[in]updateEdgeGeometriesWhether the geometires of all connected edges shall be updated

Definition at line 255 of file NBNode.cpp.

References myIncomingEdges, myOutgoingEdges, myPosition, myType, NODETYPE_TRAFFIC_LIGHT, NODETYPE_TRAFFIC_LIGHT_NOJUNCTION, and removeTrafficLights().

Referenced by NIXMLNodesHandler::addNode(), NBNodeCont::discardTrafficLights(), and NIImporter_DlrNavteq::TrafficlightsHandler::report().

void NBNode::remapRemoved ( NBTrafficLightLogicCont tc,
NBEdge removed,
const EdgeVector incoming,
const EdgeVector outgoing 
)
private
void NBNode::removeDoubleEdges ( )

Definition at line 919 of file NBNode.cpp.

References myAllEdges, myIncomingEdges, and myOutgoingEdges.

Referenced by replaceIncoming(), replaceOutgoing(), and NBEdgeCont::splitAt().

void NBNode::removeEdge ( NBEdge edge,
bool  removeFromConnections = true 
)

Removes edge from this node and optionally removes connections as well.

Definition at line 1031 of file NBNode.cpp.

References myAllEdges, myIncomingEdges, and myOutgoingEdges.

Referenced by NBEdgeCont::extract(), NBEdgeCont::insert(), NBEdge::reinit(), NBEdge::reinitNodes(), 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

Parameters
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
Returns
The number of removed edges

Definition at line 357 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 298 of file NBNode.cpp.

References myTrafficLights, and NBTrafficLightDefinition::removeNode().

Referenced by NBNodeCont::discardTrafficLights(), and removeTrafficLights().

void NBNode::removeTrafficLights ( )

Removes all references to traffic lights that control this tls.

Definition at line 305 of file NBNode.cpp.

References myTrafficLights, and removeTrafficLight().

Referenced by NIXMLNodesHandler::addNode(), NBNodeCont::extract(), NBNodeCont::guessTLs(), and reinit().

void NBNode::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.

Definition at line 851 of file NBNode.cpp.

References myAllEdges, myIncomingEdges, and replaceInConnectionProhibitions().

Referenced by NBEdgeCont::joinSameNodeConnectingEdges(), NBNodeCont::removeUnwishedNodes(), replaceIncoming(), and NBEdgeCont::splitAt().

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 865 of file NBNode.cpp.

References myDistrict, removeDoubleEdges(), NBDistrict::replaceIncoming(), and replaceIncoming().

void NBNode::replaceInConnectionProhibitions ( NBEdge which,
NBEdge by,
unsigned int  whichLaneOff,
unsigned int  byLaneOff 
)
private
void NBNode::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.

Definition at line 815 of file NBNode.cpp.

References myAllEdges, myIncomingEdges, myOutgoingEdges, replaceInConnectionProhibitions(), and NBEdge::replaceInConnections().

Referenced by NBEdgeCont::joinSameNodeConnectingEdges(), replaceOutgoing(), and NBEdgeCont::splitAt().

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 833 of file NBNode.cpp.

References myDistrict, removeDoubleEdges(), NBDistrict::replaceOutgoing(), and replaceOutgoing().

void NBNode::reshiftPosition ( SUMOReal  xoff,
SUMOReal  yoff 
)

Applies an offset to the node.

Parameters
[in]xoffThe x-offset to apply
[in]yoffThe y-offset to apply

Definition at line 281 of file NBNode.cpp.

References Position::add(), PositionVector::add(), myPoly, and myPosition.

void NBNode::setCrossingTLIndices ( unsigned int  startIndex)

set tl indices of this nodes crossing starting at the given index

Definition at line 2017 of file NBNode.cpp.

References myCrossings.

void NBNode::setCustomShape ( const PositionVector shape)

set the junction shape

Definition at line 1403 of file NBNode.cpp.

References myHaveCustomPoly, and myPoly.

Referenced by NIXMLNodesHandler::addNode().

void Named::setID ( const std::string &  newID)
inlineinherited

resets the id

Parameters
[in]newIDThe new id of this object

Definition at line 68 of file Named.h.

References Named::myID.

Referenced by NBNodeCont::rename(), and NBEdgeCont::rename().

void NBNode::setPriorityJunctionPriorities ( )
private

sets the priorites in case of a priority junction

void NBNode::setRoundabout ( )

update the type of this node as a roundabout

Definition at line 1992 of file NBNode.cpp.

References myType, NODETYPE_PRIORITY, and NODETYPE_RIGHT_BEFORE_LEFT.

Referenced by NBEdgeCont::guessRoundabouts().

void NBNode::shiftTLConnectionLaneIndex ( NBEdge edge,
int  offset 
)

patches loaded signal plans by modifying lane indices

Definition at line 349 of file NBNode.cpp.

References myTrafficLights.

Referenced by NBEdge::addSidewalk().

bool NBNode::writeLogic ( OutputDevice into,
const bool  checkLaneFoes 
) const

writes the XML-representation of the logic as a bitset-logic XML representation

Definition at line 640 of file NBNode.cpp.

References Named::myID, myRequest, and NBRequest::writeLogic().

Referenced by NWWriter_SUMO::writeJunction().

Friends And Related Function Documentation

friend class GNEJunction
friend

Definition at line 77 of file NBNode.h.

friend class NBEdgePriorityComputer
friend

Definition at line 80 of file NBNode.h.

friend class NBNodeCont
friend

Definition at line 76 of file NBNode.h.

friend class NBNodesEdgesSorter
friend

Definition at line 78 of file NBNode.h.

friend class NBNodeShapeComputer
friend

Definition at line 493 of file NBNode.h.

friend class NBNodeTypeComputer
friend

Definition at line 79 of file NBNode.h.

Field Documentation

const int NBNode::BACKWARD
static

Definition at line 187 of file NBNode.h.

Referenced by buildCrossings(), and NBEdge::getFirstNonPedestrianLaneIndex().

const SUMOReal NBNode::DEFAULT_CROSSING_WIDTH
static

default width of pedetrian crossings

Definition at line 189 of file NBNode.h.

Referenced by NIXMLConnectionsHandler::addCrossing(), buildWalkingAreas(), checkCrossing(), and NWWriter_XML::writeEdgesAndConnections().

const int NBNode::FORWARD
static

edge directions (for pedestrian related stuff)

Definition at line 186 of file NBNode.h.

Referenced by buildCrossings(), and NBEdge::getFirstNonPedestrianLaneIndex().

const int NBNode::MAX_CONNECTIONS
static

maximum number of connections allowed

Definition at line 194 of file NBNode.h.

Referenced by computeLogic().

NBConnectionProhibits NBNode::myBlockedConnections
private

The container for connection block dependencies

Definition at line 669 of file NBNode.h.

Referenced by addSortedLinkFoes(), computeLogic(), getProhibitions(), remapRemoved(), and replaceInConnectionProhibitions().

std::vector<Crossing> NBNode::myCrossings
private
NBDistrict* NBNode::myDistrict
private

The district the node is the centre of.

Definition at line 672 of file NBNode.h.

Referenced by replaceIncoming(), and replaceOutgoing().

bool NBNode::myHaveCustomPoly
private

whether this nodes shape was set by the user

Definition at line 678 of file NBNode.h.

Referenced by computeNodeShape(), hasCustomShape(), and setCustomShape().

PositionVector NBNode::myPoly
private

the (outer) shape of the junction

Definition at line 675 of file NBNode.h.

Referenced by computeNodeShape(), getCenter(), getShape(), reshiftPosition(), and setCustomShape().

Position NBNode::myPosition
private

The position the node lies at.

Definition at line 648 of file NBNode.h.

Referenced by computeNodeShape(), getCenter(), getEmptyDir(), getPosition(), reinit(), and reshiftPosition().

NBRequest* NBNode::myRequest
private
std::vector<WalkingArea> NBNode::myWalkingAreas
private

Vector of walking areas.

Definition at line 663 of file NBNode.h.

Referenced by buildWalkingAreas(), and getWalkingAreas().


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