SUMO - Simulation of Urban MObility
NBNode Class Reference

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

#include <NBNode.h>

Inheritance diagram for NBNode:
Inheritance graph
Collaboration diagram for NBNode:
Collaboration graph

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 Types

typedef std::map< std::string, PositionVectorCustomShapeMap
 

Public Member Functions

void addCrossing (EdgeVector edges, SUMOReal width, bool priority, bool fromSumoNet=false)
 add a pedestrian crossing to this node More...
 
void addIncomingEdge (NBEdge *edge)
 adds an incoming edge More...
 
void addOutgoingEdge (NBEdge *edge)
 adds an outgoing edge More...
 
void addSortedLinkFoes (const NBConnection &mayDrive, const NBConnection &mustStop)
 
void addTo (const StoringVisitor &cont) const
 Adds this object to the given container. More...
 
void avoidOverlap ()
 fix overlap More...
 
int buildCrossings ()
 
void buildCrossingsAndWalkingAreas ()
 
void buildInnerEdges ()
 build internal lanes, pedestrian crossings and walking areas More...
 
void buildWalkingAreas (int cornerDetail)
 
int checkCrossing (EdgeVector candidates)
 
bool checkIsRemovable () const
 
PositionVector computeInternalLaneShape (NBEdge *fromE, const NBEdge::Connection &con, int numPoints) const
 Compute the shape for an internal lane. More...
 
void computeLanes2Lanes ()
 computes the connections of lanes to edges More...
 
void computeLogic (const NBEdgeCont &ec, OptionsCont &oc)
 computes the node's type, logic and traffic light More...
 
void computeNodeShape (SUMOReal mismatchThreshold)
 Compute the junction shape for this node. More...
 
PositionVector computeSmoothShape (const PositionVector &begShape, const PositionVector &endShape, int numPoints, bool isTurnaround, SUMOReal extrapolateBeg, SUMOReal extrapolateEnd) const
 Compute a smooth curve between the given geometries. More...
 
bool crossingBetween (const NBEdge *e1, const NBEdge *e2) const
 return true if the given edges are connected by a crossing More...
 
void discardAllCrossings ()
 
EdgeVector edgesBetween (const NBEdge *e1, const NBEdge *e2) const
 return all edges that lie clockwise between the given edges More...
 
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. More...
 
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. More...
 
bool geometryLike () const
 whether this is structurally similar to a geometry node More...
 
NBEdgegetConnectionTo (NBNode *n) const
 
const CrossinggetCrossing (const std::string &id) const
 return the crossing with the given id More...
 
const std::vector< Crossing > & getCrossings () const
 return this junctions pedestrian crossings More...
 
const CustomShapeMapgetCustomLaneShapes () const
 sets a custom shape for an internal lane More...
 
LinkDirection getDirection (const NBEdge *const incoming, const NBEdge *const outgoing, bool leftHand=false) const
 Returns the representation of the described stream's direction. More...
 
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. More...
 
const std::string & getID () const
 Returns the id. More...
 
LinkState getLinkState (const NBEdge *incoming, NBEdge *outgoing, int fromLane, int toLane, 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 More...
 
const std::vector< WalkingArea > & getWalkingAreas () const
 return this junctions pedestrian walking areas More...
 
int guessCrossings ()
 guess pedestrian crossings and return how many were guessed More...
 
bool hasCustomShape () const
 return whether the shape was set by the user More...
 
bool hasIncoming (const NBEdge *const e) const
 Returns whether the given edge ends at this node. More...
 
bool hasOutgoing (const NBEdge *const e) const
 Returns whether the given edge starts at this node. More...
 
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. More...
 
bool isNearDistrict () const
 
bool mustBrake (const NBEdge *const from, const NBEdge *const to, int fromLane, int toLane, bool includePedCrossings) const
 Returns the information whether the described flow must let any other flow pass. More...
 
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. More...
 
 NBNode (const std::string &id, const Position &position, SumoXMLNodeType type)
 Constructor. More...
 
 NBNode (const std::string &id, const Position &position, NBDistrict *district=0)
 Constructor. More...
 
bool needsCont (const NBEdge *fromE, const NBEdge *otherFromE, const NBEdge::Connection &c, const NBEdge::Connection &otherC) const
 whether an internal junction should be built at from and respect other More...
 
int numCrossingsFromSumoNet () const
 
int numNormalConnections () const
 return the number of lane-to-lane connections at this junction (excluding crossings) More...
 
void reinit (const Position &position, SumoXMLNodeType type, bool updateEdgeGeometries=false)
 Resets initial values. More...
 
void removeCrossing (const EdgeVector &edges)
 remove a pedestrian crossing from this node (identified by its edges) More...
 
void removeDoubleEdges ()
 
void removeEdge (NBEdge *edge, bool removeFromConnections=true)
 Removes edge from this node and optionally removes connections as well. More...
 
void replaceIncoming (NBEdge *which, NBEdge *by, int laneOff)
 Replaces occurences of the first edge within the list of incoming by the second Connections are remapped, too. More...
 
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. More...
 
void replaceOutgoing (NBEdge *which, NBEdge *by, int laneOff)
 Replaces occurences of the first edge within the list of outgoing by the second Connections are remapped, too. More...
 
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. More...
 
bool rightOnRedConflict (int index, int foeIndex) const
 whether the given index must yield to the foeIndex while turing right on a red light More...
 
void setCrossingTLIndices (int startIndex)
 set tl indices of this nodes crossing starting at the given index More...
 
void setCustomLaneShape (const std::string &laneID, const PositionVector &shape)
 sets a custom shape for an internal lane More...
 
void setCustomShape (const PositionVector &shape)
 set the junction shape More...
 
void setID (const std::string &newID)
 resets the id More...
 
void setKeepClear (bool keepClear)
 set the keepClear flag More...
 
void setRadius (SUMOReal radius)
 set the turning radius More...
 
void setRoundabout ()
 update the type of this node as a roundabout More...
 
bool writeLogic (OutputDevice &into, const bool checkLaneFoes) const
 
 ~NBNode ()
 Destructor. More...
 
Atomar getter methods
const PositiongetPosition () const
 Returns the position of this node. More...
 
Position getCenter () const
 Returns a position that is guaranteed to lie within the node shape. More...
 
const EdgeVectorgetIncomingEdges () const
 Returns this node's incoming edges. More...
 
const EdgeVectorgetOutgoingEdges () const
 Returns this node's outgoing edges. More...
 
const EdgeVectorgetEdges () const
 Returns all edges which participate in this node. More...
 
SumoXMLNodeType getType () const
 Returns the type of this node. More...
 
SUMOReal getRadius () const
 Returns the turning radius of this node. More...
 
bool getKeepClear () const
 Returns the keepClear flag. More...
 
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. More...
 
void removeTrafficLight (NBTrafficLightDefinition *tlDef)
 Removes the given traffic light from this node. More...
 
void removeTrafficLights ()
 Removes all references to traffic lights that control this tls. More...
 
bool isTLControlled () const
 Returns whether this node is controlled by any tls. More...
 
bool isJoinedTLSControlled () const
 Returns whether this node is controlled by a tls that spans over more than one node. More...
 
const std::set< NBTrafficLightDefinition * > & getControllingTLS () const
 Returns the traffic lights that were assigned to this node. More...
 
void invalidateTLS (NBTrafficLightLogicCont &tlCont)
 causes the traffic light to be computed anew More...
 
void shiftTLConnectionLaneIndex (NBEdge *edge, int offset)
 patches loaded signal plans by modifying lane indices More...
 
Prunning the input
int removeSelfLoops (NBDistrictCont &dc, NBEdgeCont &ec, NBTrafficLightLogicCont &tc)
 Removes edges which are both incoming and outgoing into this node. More...
 
Applying offset
void reshiftPosition (SUMOReal xoff, SUMOReal yoff)
 Applies an offset to the node. More...
 
void mirrorX ()
 mirror coordinates along the x-axis More...
 

Static Public Member Functions

static PositionVector bezierControlPoints (const PositionVector &begShape, const PositionVector &endShape, bool isTurnaround, SUMOReal extrapolateBeg, SUMOReal extrapolateEnd)
 
template<class T >
static std::string getIDSecure (const T *obj, const std::string &fallBack="NULL")
 get an identifier for Named-like object which may be Null More...
 
static std::string getNodeIDFromInternalLane (const std::string id)
 returns the node id for internal lanes, crossings and walkingareas More...
 
static bool isTrafficLight (SumoXMLNodeType type)
 return whether the given type is a traffic light More...
 
static bool rightTurnConflict (const NBEdge *from, const NBEdge *to, int fromLane, const NBEdge *prohibitorFrom, const NBEdge *prohibitorTo, int prohibitorFromLane, bool lefthand=false)
 return whether the given laneToLane connection is a right turn which must yield to a bicycle crossings More...
 

Static Public Attributes

static const int BACKWARD
 
static const SUMOReal DEFAULT_CROSSING_WIDTH
 default width of pedetrian crossings More...
 
static const int FORWARD
 edge directions (for pedestrian related stuff) More...
 
static const SUMOReal UNSPECIFIED_RADIUS = -1
 unspecified lane width More...
 

Protected Attributes

std::string myID
 The name of the object. More...
 

Private Member Functions

bool forbidsPedestriansAfter (std::vector< std::pair< NBEdge *, bool > > normalizedLanes, int startIndex)
 return whether there is a non-sidewalk lane after the given index; More...
 
EdgeVector getEdgesSortedByAngleAtNodeCenter () const
 returns the list of all edges sorted clockwise by getAngleAtNodeToCenter More...
 
EdgeVectorgetEdgesThatApproach (NBEdge *currentOutgoing)
 
bool isSimpleContinuation () const
 
 NBNode (const NBNode &s)
 invalidated copy constructor More...
 
NBNodeoperator= (const NBNode &s)
 invalidated assignment operator More...
 
void remapRemoved (NBTrafficLightLogicCont &tc, NBEdge *removed, const EdgeVector &incoming, const EdgeVector &outgoing)
 
void replaceInConnectionProhibitions (NBEdge *which, NBEdge *by, int whichLaneOff, int byLaneOff)
 
void setPriorityJunctionPriorities ()
 sets the priorites in case of a priority junction More...
 

Static Private Member Functions

static bool isLongEnough (NBEdge *out, SUMOReal minLength)
 

Private Attributes

EdgeVector myAllEdges
 Vector of incoming and outgoing edges. More...
 
NBConnectionProhibits myBlockedConnections
 
std::vector< CrossingmyCrossings
 Vector of crossings. More...
 
int myCrossingsLoadedFromSumoNet
 number of crossings loaded from a sumo net More...
 
CustomShapeMap myCustomLaneShapes
 
bool myDiscardAllCrossings
 whether to discard all pedestrian crossings More...
 
NBDistrictmyDistrict
 The district the node is the centre of. More...
 
bool myHaveCustomPoly
 whether this nodes shape was set by the user More...
 
EdgeVector myIncomingEdges
 Vector of incoming edges. More...
 
bool myKeepClear
 whether the junction area must be kept clear More...
 
EdgeVector myOutgoingEdges
 Vector of outgoing edges. More...
 
PositionVector myPoly
 the (outer) shape of the junction More...
 
Position myPosition
 The position the node lies at. More...
 
SUMOReal myRadius
 the turning radius (for all corners) at this node in m. More...
 
NBRequestmyRequest
 
std::set< NBTrafficLightDefinition * > myTrafficLights
 
SumoXMLNodeType myType
 The type of the junction. More...
 
std::vector< WalkingAreamyWalkingAreas
 Vector of walking areas. More...
 

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 74 of file NBNode.h.

Member Typedef Documentation

typedef std::map<std::string, PositionVector> NBNode::CustomShapeMap

Definition at line 82 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 229 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 244 of file NBNode.cpp.

NBNode::~NBNode ( )

Destructor.

Definition at line 258 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,
bool  fromSumoNet = false 
)

add a pedestrian crossing to this node

Definition at line 2506 of file NBNode.cpp.

References myCrossings, and myCrossingsLoadedFromSumoNet.

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

void NBNode::addIncomingEdge ( NBEdge edge)

adds an incoming edge

Definition at line 424 of file NBNode.cpp.

References myAllEdges, and myIncomingEdges.

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

void NBNode::addOutgoingEdge ( NBEdge edge)

adds an outgoing edge

Definition at line 434 of file NBNode.cpp.

References myAllEdges, and myOutgoingEdges.

Referenced by getControllingTLS(), NBEdge::init(), GNENet::insertEdge(), and NBEdge::reinitNodes().

void Named::addTo ( const StoringVisitor cont) const
inlineinherited

Adds this object to the given container.

Parameters

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

References isTrafficLight(), myTrafficLights, myType, NODETYPE_RAIL_CROSSING, NODETYPE_RAIL_SIGNAL, and NODETYPE_TRAFFIC_LIGHT.

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

void NBNode::avoidOverlap ( )

fix overlap

Definition at line 2614 of file NBNode.cpp.

References NBEdge::getTurnDestination(), myIncomingEdges, and NBEdge::shiftPositionAtNode().

Referenced by getWalkingAreas().

void NBNode::buildCrossingsAndWalkingAreas ( )
void NBNode::buildInnerEdges ( )

build internal lanes, pedestrian crossings and walking areas

Definition at line 1995 of file NBNode.cpp.

References myCustomLaneShapes, and myIncomingEdges.

PositionVector NBNode::computeInternalLaneShape ( NBEdge fromE,
const NBEdge::Connection con,
int  numPoints 
) const
void NBNode::computeNodeShape ( SUMOReal  mismatchThreshold)

Compute the junction shape for this node.

Parameters
[in]mismatchThresholdThe threshold for warning about shapes which are away from myPosition

Definition at line 767 of file NBNode.cpp.

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

Referenced by getControllingTLS(), and GNEViewNet::onCmdNodeShape().

PositionVector NBNode::computeSmoothShape ( const PositionVector begShape,
const PositionVector endShape,
int  numPoints,
bool  isTurnaround,
SUMOReal  extrapolateBeg,
SUMOReal  extrapolateEnd 
) const

Compute a smooth curve between the given geometries.

Parameters
[in]begShapeThe geometry at the start
[in]endShapeThe geometry at the end
[in]numPointsThe number of geometry points for the internal lane
[in]isTurnaroundWhether this shall be the shape for a turnaround
[in]extrapolateBegExtrapolation distance at the beginning
[in]extrapolateEndExtrapolation distance at the end
Returns
The shape of the internal lane

Definition at line 473 of file NBNode.cpp.

References bezier(), bezierControlPoints(), DEBUGCOND, Named::getID(), myPosition, and Position::z().

Referenced by buildWalkingAreas(), computeInternalLaneShape(), and NBNodeShapeComputer::getSmoothCorner().

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

return true if the given edges are connected by a crossing

Definition at line 2440 of file NBNode.cpp.

References myCrossings.

Referenced by buildWalkingAreas().

void NBNode::discardAllCrossings ( )
inline

Definition at line 637 of file NBNode.h.

References myDiscardAllCrossings.

Referenced by NIXMLConnectionsHandler::addCrossing().

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

return all edges that lie clockwise between the given edges

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

References NBRequest::foes(), and myRequest.

Referenced by NBEdge::buildInnerEdges(), NBTrafficLightDefinition::foes(), NBTrafficLightDefinition::forbids(), getControllingTLS(), 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 1434 of file NBNode.cpp.

References NBRequest::forbids(), and myRequest.

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

bool NBNode::forbidsPedestriansAfter ( std::vector< std::pair< NBEdge *, bool > >  normalizedLanes,
int  startIndex 
)
private

return whether there is a non-sidewalk lane after the given index;

Definition at line 1963 of file NBNode.cpp.

Referenced by guessCrossings().

bool NBNode::geometryLike ( ) const

whether this is structurally similar to a geometry node

Definition at line 2473 of file NBNode.cpp.

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

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

Position NBNode::getCenter ( ) const

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

Definition at line 2553 of file NBNode.cpp.

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

Referenced by getPosition().

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

return the crossing with the given id

Definition at line 2529 of file NBNode.cpp.

References myCrossings.

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

const CustomShapeMap& NBNode::getCustomLaneShapes ( ) const
inline

sets a custom shape for an internal lane

Definition at line 505 of file NBNode.h.

References myCustomLaneShapes.

Referenced by NWWriter_SUMO::writeLane().

LinkDirection NBNode::getDirection ( const NBEdge *const  incoming,
const NBEdge *const  outgoing,
bool  leftHand = false 
) const
EdgeVector NBNode::getEdgesSortedByAngleAtNodeCenter ( ) const
private

returns the list of all edges sorted clockwise by getAngleAtNodeToCenter

Definition at line 2571 of file NBNode.cpp.

References gDebugFlag1, myAllEdges, and toString().

Referenced by buildWalkingAreas(), and guessCrossings().

EdgeVector * NBNode::getEdgesThatApproach ( NBEdge currentOutgoing)
private

returns a list of edges which are connected to the given outgoing edge

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

References Position::add(), getPosition(), Position::mul(), myIncomingEdges, myOutgoingEdges, myPosition, Position::norm2d(), Position::sub(), SUMOReal, Position::x(), and Position::y().

Referenced by getControllingTLS().

const std::string& Named::getID ( ) const
inlineinherited

Returns the id.

Returns
The stored id

Definition at line 66 of file Named.h.

References Named::myID.

Referenced by NIImporter_SUMO::_loadNetwork(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaders(), PCPolyContainer::add(), MSVehicleTransfer::add(), TraCIServerAPI_Lane::StoringVisitor::add(), MSDetectorControl::add(), Named::StoringVisitor::add(), ShapeContainer::add(), IntermodalRouter< E, L, N, V >::addAccess(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), MSLane::addApproachingLane(), MSNet::addBusStop(), MSNet::addChargingStation(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), MSNet::addContainerStop(), NIXMLConnectionsHandler::addCrossing(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), NBEdge::addRestrictedLane(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), ROVehicle::addStop(), MSVehicle::addStop(), NBEdge::addStraightConnections(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciBusOrContainerStop(), MSVehicle::addTraciStop(), AGActivityTripWriter::addTrip(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSTransportable::Stage_Waiting::beginEventOutput(), MSTransportable::Stage_Driving::beginEventOutput(), NLEdgeControlBuilder::build(), NIVisumTL::build(), RODFNet::buildApproachList(), MS_E2_ZS_CollectorOverLanes::buildCollector(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), buildCrossings(), buildCrossingsAndWalkingAreas(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), GNEConnectorFrame::buildIinternalLanes(), GNETLSEditorFrame::buildIinternalLanes(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSSimpleTrafficLightLogic::changeStepAndDuration(), NBEdge::checkGeometry(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkRewindLinkLanes(), MSSwarmTrafficLightLogic::choosePolicy(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedSUMOTLDef::collectEdges(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), computeInternalLaneShape(), NBEdge::computeLaneShapes(), computeLogic(), NBOwnTLDef::computeLogicAndConts(), computeNodeShape(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), computeSmoothShape(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), NLDetectorBuilder::convUncontE2PosLength(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSSOTLE2Sensors::countVehicles(), GUINet::createTLWrapper(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), NIVissimDistrictConnection::dict_BuildDistricts(), NBEdge::divideOnEdges(), NBEdge::divideSelectedLanesOnEdges(), MSTransportable::Stage_Waiting::endEventOutput(), MSTransportable::Stage_Driving::endEventOutput(), MSE3Collector::enter(), METriggeredCalibrator::execute(), MSCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSTrafficLightLogic::SwitchCommand::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), TraCIServerAPI_Vehicle::findCloserLane(), NBRampsComputer::fulfillsRampConstraints(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSVehicle::getBackPosition(), MSNet::getBusStopID(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), MSNet::getChargingStationID(), NBEdge::getConnection(), MSNet::getContainerStopID(), NBEdge::getCrossingAngle(), GNEEdge::getDest(), RODFNet::getDetectorEdge(), MSMeanData::getEdgeID(), MSE2Collector::getEstimateQueueLength(), NBEdge::getFirstNonPedestrianLane(), MSLane::getFollower(), MSLane::getFollowerOnConsecutive(), MSLane::getFollowersOnConsecutive(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), MSLane::getLastVehicleInformation(), MSVehicle::getLatOffset(), MSLane::getLeader(), MSLane::getLeaderOnConsecutive(), MSLane::getLeadersOnConsecutive(), MSTLLogicControl::TLSLogicVariants::getLogicInstantiatingOff(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSLane::getOppositePos(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIMEInductLoop::MyWrapper::getParameterWindow(), GUI_E2_ZS_Collector::MyWrapper::getParameterWindow(), GUIVehicle::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), MSLane::getPartialBehind(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), getPossiblySplittedIncoming(), getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), GNEEdge::getSource(), MSVehicleControl::getWaitingVehicle(), MSLink::getZipperSpeed(), guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBEdgeCont::guessSidewalks(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), MSLane::handleCollisionBetween(), NBEdgeCont::ignoreFilterMatch(), MSDeterministicHiLevelTrafficLightLogic::init(), MSRailSignal::init(), MSActuatedTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NBEdgeCont::insert(), MSEdge::insertVehicle(), IntermodalNetwork< E, L, N, V >::IntermodalNetwork(), GNEJunction::invalidateTLS(), invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isDestination(), RODFNet::isFalseSource(), MSLane::isInsertionSuccess(), RODFNet::isSource(), MSSOTLTrafficLightLogic::isThresholdPassed(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), MSPedestrianPushButton::loadCrossingEdgeMap(), NIImporter_OpenDrive::loadNetwork(), MSPedestrianPushButton::loadPushButtons(), NBEdge::MainDirections::MainDirections(), ODDistrictCont::makeDistricts(), NBNodeCont::mapToNumericalIDs(), NBEdgeCont::mapToNumericalIDs(), MSSOTLE2Sensors::meanVehiclesSpeed(), METriggeredCalibrator::METriggeredCalibrator(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), NBRampsComputer::moveRampRight(), MSPModel_Striping::PState::moveToNextLane(), MSCalibrator::MSCalibrator(), MSChargingStation::MSChargingStation(), MSDevice_Battery::MSDevice_Battery(), NBLoadedTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_BTreceiver::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Example::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSTriggeredRerouter::notifyEnter(), MSE2Collector::notifyEnter(), MSDevice_Transportable::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Example::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_BTsender::notifyMove(), MSE2Collector::notifyMove(), GUIViewTraffic::onGamingClick(), GNEViewNet::onLeftBtnPress(), RORouteHandler::openRoute(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), RODFNet::idComp::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), NBContHelper::edge_by_angle_to_nodeShapeCentroid_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), MSEdge::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(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_SL2015::patchSpeed(), MSLCM_JE2013::patchSpeed(), MSLCM_LC2013::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSVehicle::planMove(), MSLane::planMovements(), MSRightOfWayJunction::postloadInit(), NBEdge::prepareEdgePriorities(), MSAbstractLaneChangeModel::primaryLaneChanged(), AGStreet::print(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_ArealDetector::processGet(), TraCIServerAPI_Lane::processGet(), MSVehicle::processNextStop(), TraCIServerAPI_Vehicle::processSet(), NIXMLNodesHandler::processTrafficLightDefinitions(), NWWriter_SUMO::prohibitionConnection(), MSPModel_Striping::PState::PState(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNodeCont::removeIsolatedRoads(), MSCalibrator::removePending(), removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::rename(), NBEdgeCont::rename(), GNENet::renameEdge(), GNENet::renameJunction(), RORouteDef::repairCurrentRoute(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), MSBaseVehicle::reroute(), MSLane::resetPartialOccupation(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), RONet::saveAndRemoveRoutesUntil(), MSBaseVehicle::saveState(), MSLane::saveState(), MSDevice_Battery::setAirDragCoefficient(), NBNodeCont::setAsTLControlled(), MSChargingStation::setChargeDelay(), MSChargingStation::setChargingPower(), MSDevice_Battery::setConstantPowerIntake(), NBEdge::setControllingTLInformation(), MSChargingStation::setEfficency(), MSDevice_Battery::setFrontSurfaceArea(), MSDevice_Battery::setInternalMomentOfInertia(), GNEJunction::setLogicValid(), MSDevice_Battery::setMass(), MSDevice_Battery::setMaximumBatteryCapacity(), NIXMLEdgesHandler::setNodes(), MSLane::setPartialOccupation(), MSDevice_Battery::setPowerMax(), MSDevice_Battery::setPropulsionEfficiency(), MSDevice_Battery::setRadialDragCoefficient(), MSDevice_Battery::setRecuperationEfficiency(), MSLink::setRequestInformation(), MSDevice_Battery::setRollDragCoefficient(), MSTLLogicControl::TLSLogicVariants::setStateInstantiatingOnline(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdge::shiftPositionAtNode(), NBEdgeCont::splitAt(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MELoop::teleportVehicle(), METriggeredCalibrator::tryEmit(), MSSOTLTrafficLightLogic::trySwitch(), MSVehicle::updateBestLanes(), MSSOTLTrafficLightLogic::updateCTS(), GNETLSEditorFrame::updateDescription(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSSwarmTrafficLightLogic::updateSensitivities(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap(), MSPModel_Striping::PState::walk(), MSLCM_JE2013::wantsChange(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSBatteryExport::write(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), MSLink::writeApproaching(), 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(), writeInterval(), 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(), MSFCDExport::writeTransportable(), MSInductLoop::writeTypedXMLOutput(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), PointOfInterest::writeXML(), SUMO::Polygon::writeXML(), MSRouteProbe::writeXMLOutput(), MSE2Collector::writeXMLOutput(), and RONet::~RONet().

bool NBNode::getKeepClear ( ) const
inline
std::string NBNode::getNodeIDFromInternalLane ( const std::string  id)
static

returns the node id for internal lanes, crossings and walkingareas

Definition at line 2594 of file NBNode.cpp.

References WRITE_ERROR.

Referenced by NIXMLConnectionsHandler::addCustomShape(), and NIImporter_SUMO::addLane().

NBEdge * NBNode::getOppositeIncoming ( NBEdge e) const

Definition at line 1213 of file NBNode.cpp.

References NBEdge::getToNode(), and myIncomingEdges.

Referenced by NBNodeTypeComputer::computeNodeTypes(), and getControllingTLS().

const Position& NBNode::getPosition ( ) const
inline

Returns the position of this node.

Returns
This node's position

Definition at line 228 of file NBNode.h.

References getCenter(), and myPosition.

Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLNodesHandler::addNode(), NIXMLEdgesHandler::addSplit(), NIVissimEdge::buildNBEdge(), NBEdge::computeAngle(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), NBNodeCont::discardTrafficLights(), NBHelpers::distance(), GNEJunction::drawGL(), NBNodeCont::extract(), GNEJunction::getAttribute(), getEmptyDir(), NWWriter_DlrNavteq::getGraphLength(), NBEdge::hasDefaultGeometryEndpoints(), NBEdge::init(), NBNodeCont::insert(), NIImporter_OpenStreetMap::insertEdge(), GNENet::mergeJunctions(), GNEViewNet::mergeJunctions(), GNEJunction::move(), NBContHelper::relative_outgoing_edge_sorter::operator()(), NBContHelper::relative_incoming_edge_sorter::operator()(), NIImporter_OpenStreetMap::reconstructLayerElevation(), GNENet::registerJunction(), GNEJunction::registerMove(), NIVissimEdge::remapOneOfNodes(), GNENet::replaceJunctionByGeometry(), NIImporter_DlrNavteq::EdgesHandler::report(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), GNEEdge::resetEndpoint(), NBNodeCont::retrieve(), GNEJunction::setAttribute(), GNEEdge::setEndpoint(), GNEJunction::setPosition(), NBEdge::shiftPositionAtNode(), NBEdgeCont::splitAt(), NBEdge::splitGeometry(), NBEdge::startShapeAt(), GNEEdge::updateJunctionPosition(), NWWriter_SUMO::writeJunction(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and NWWriter_DlrNavteq::writeTrafficSignals().

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

Definition at line 1248 of file NBNode.cpp.

References Named::getID(), and myIncomingEdges.

Referenced by NIVissimDisturbance::getConnection(), and getControllingTLS().

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

Definition at line 1261 of file NBNode.cpp.

References Named::getID(), and myOutgoingEdges.

Referenced by NIVissimDisturbance::getConnection(), and getControllingTLS().

const NBConnectionProhibits& NBNode::getProhibitions ( )
inline
SUMOReal NBNode::getRadius ( ) const
inline

Returns the turning radius of this node.

Returns
The turning radius of this node

Definition at line 272 of file NBNode.h.

References myRadius.

Referenced by NBNodeShapeComputer::computeNodeShapeDefault(), GNEJunction::getAttribute(), NWWriter_SUMO::writeJunction(), and NWWriter_XML::writeNodes().

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

return this junctions pedestrian walking areas

Definition at line 651 of file NBNode.h.

References avoidOverlap(), getCrossing(), myWalkingAreas, numNormalConnections(), rightOnRedConflict(), and setCrossingTLIndices().

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

int NBNode::guessCrossings ( )
bool NBNode::hasCustomShape ( ) const
inline

return whether the shape was set by the user

Definition at line 520 of file NBNode.h.

References checkIsRemovable(), getEdgesToJoin(), and myHaveCustomPoly.

Referenced by GNEJunction::invalidateShape(), NWWriter_SUMO::writeJunction(), and NWWriter_XML::writeNodes().

bool NBNode::hasIncoming ( const NBEdge *const  e) const
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 1207 of file NBNode.cpp.

References myOutgoingEdges.

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

void NBNode::invalidateIncomingConnections ( )

Definition at line 1332 of file NBNode.cpp.

References myIncomingEdges.

Referenced by NIVissimDistrictConnection::dict_BuildDistricts(), and getControllingTLS().

void NBNode::invalidateOutgoingConnections ( )

Definition at line 1340 of file NBNode.cpp.

References myOutgoingEdges.

Referenced by NIVissimDistrictConnection::dict_BuildDistricts(), and getControllingTLS().

bool NBNode::isDistrict ( ) const

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

References isTLControlled(), and myTrafficLights.

Referenced by isTLControlled().

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

bool NBNode::isLongEnough ( NBEdge out,
SUMOReal  minLength 
)
staticprivate
bool NBNode::isNearDistrict ( ) const
bool NBNode::isSimpleContinuation ( ) const
private
void NBNode::mirrorX ( )

mirror coordinates along the x-axis

Definition at line 297 of file NBNode.cpp.

References PositionVector::mirrorX(), Position::mul(), myCrossings, myPoly, myPosition, and myWalkingAreas.

Referenced by getControllingTLS().

bool NBNode::mustBrake ( const NBEdge *const  from,
const NBEdge *const  to,
int  fromLane,
int  toLane,
bool  includePedCrossings 
) 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]fromLaneThe lane the connection start at
[in]toLaneThe lane the connection ends at
[in]includePedCrossingsWhether braking due to a pedestrian crossing counts
Returns
Whether the described connection must brake (has higher priorised foes)

Definition at line 1348 of file NBNode.cpp.

References NBRequest::mustBrake(), and myRequest.

Referenced by getControllingTLS(), 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 1362 of file NBNode.cpp.

References NBRequest::mustBrakeForCrossing().

Referenced by getControllingTLS(), and NBOwnTLDef::patchStateForCrossings().

bool NBNode::needsCont ( const NBEdge fromE,
const NBEdge otherFromE,
const NBEdge::Connection c,
const NBEdge::Connection otherC 
) const
int NBNode::numCrossingsFromSumoNet ( ) const
inline

Definition at line 641 of file NBNode.h.

References myCrossingsLoadedFromSumoNet.

int NBNode::numNormalConnections ( ) const

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

Definition at line 2548 of file NBNode.cpp.

References NBRequest::getSizes(), and myRequest.

Referenced by computeLogic(), and getWalkingAreas().

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

References isTrafficLight(), myIncomingEdges, myOutgoingEdges, myPosition, myType, and removeTrafficLights().

Referenced by NBNodeCont::discardTrafficLights(), NIXMLNodesHandler::processNodeType(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), GNEJunction::setAttribute(), and GNEJunction::setPosition().

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

remove a pedestrian crossing from this node (identified by its edges)

Definition at line 2515 of file NBNode.cpp.

References myCrossings.

Referenced by NIXMLConnectionsHandler::addCrossing(), getProhibitions(), and GNEJunction::removeFromCrossings().

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

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

Definition at line 1274 of file NBNode.cpp.

References myAllEdges, myIncomingEdges, myOutgoingEdges, and myTrafficLights.

Referenced by NBEdgeCont::extract(), getControllingTLS(), NBEdgeCont::insert(), NBEdge::reinit(), NBEdge::reinitNodes(), NBEdgeCont::removeUnwishedEdges(), and NBEdge::splitGeometry().

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

Definition at line 381 of file NBNode.cpp.

References NBEdgeCont::erase(), Named::getID(), NBEdge::isConnectedTo(), myIncomingEdges, myOutgoingEdges, NBEdge::remapConnections(), remapRemoved(), and WRITE_WARNING.

Referenced by getControllingTLS().

void NBNode::removeTrafficLight ( NBTrafficLightDefinition tlDef)
void NBNode::removeTrafficLights ( )

Removes all references to traffic lights that control this tls.

Definition at line 329 of file NBNode.cpp.

References myTrafficLights, and removeTrafficLight().

Referenced by computeLogic(), NBNodeCont::extract(), getKeepClear(), NBNodeCont::guessTLs(), NIXMLNodesHandler::processTrafficLightDefinitions(), and reinit().

void NBNode::replaceIncoming ( NBEdge which,
NBEdge by,
int  laneOff 
)

Replaces occurences of the first edge within the list of incoming by the second Connections are remapped, too.

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

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

void NBNode::replaceInConnectionProhibitions ( NBEdge which,
NBEdge by,
int  whichLaneOff,
int  byLaneOff 
)
private
void NBNode::replaceOutgoing ( NBEdge which,
NBEdge by,
int  laneOff 
)

Replaces occurences of the first edge within the list of outgoing by the second Connections are remapped, too.

Definition at line 1059 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 1077 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 290 of file NBNode.cpp.

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

Referenced by getControllingTLS().

bool NBNode::rightOnRedConflict ( int  index,
int  foeIndex 
) const

whether the given index must yield to the foeIndex while turing right on a red light

Definition at line 2637 of file NBNode.cpp.

References myTrafficLights, myType, and NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED.

Referenced by NBRequest::getResponseString(), and getWalkingAreas().

bool NBNode::rightTurnConflict ( const NBEdge from,
const NBEdge to,
int  fromLane,
const NBEdge prohibitorFrom,
const NBEdge prohibitorTo,
int  prohibitorFromLane,
bool  lefthand = false 
)
static
void NBNode::setCrossingTLIndices ( int  startIndex)

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

Definition at line 2540 of file NBNode.cpp.

References myCrossings.

Referenced by getWalkingAreas().

void NBNode::setCustomLaneShape ( const std::string &  laneID,
const PositionVector shape 
)

sets a custom shape for an internal lane

Definition at line 1712 of file NBNode.cpp.

References myCustomLaneShapes.

Referenced by NIXMLConnectionsHandler::addCustomShape(), NIImporter_SUMO::addJunction(), and getControllingTLS().

void NBNode::setCustomShape ( const PositionVector shape)

set the junction shape

Definition at line 1705 of file NBNode.cpp.

References myHaveCustomPoly, and myPoly.

Referenced by NIImporter_SUMO::addJunction(), getControllingTLS(), NIXMLNodesHandler::processNodeType(), and GNEJunction::setAttribute().

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

resets the id

Parameters
[in]newIDThe new id of this object

Definition at line 74 of file Named.h.

References Named::myID.

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

void NBNode::setKeepClear ( bool  keepClear)
inline

set the keepClear flag

Definition at line 515 of file NBNode.h.

References myKeepClear.

Referenced by NIXMLNodesHandler::processNodeType(), and GNEJunction::setAttribute().

void NBNode::setPriorityJunctionPriorities ( )
private

sets the priorites in case of a priority junction

void NBNode::setRadius ( SUMOReal  radius)
inline

set the turning radius

Definition at line 510 of file NBNode.h.

References myRadius.

Referenced by NIImporter_SUMO::addJunction(), NIXMLNodesHandler::processNodeType(), and GNEJunction::setAttribute().

void NBNode::setRoundabout ( )

update the type of this node as a roundabout

Definition at line 2498 of file NBNode.cpp.

References myType, NODETYPE_PRIORITY, and NODETYPE_RIGHT_BEFORE_LEFT.

Referenced by getProhibitions(), and NBEdgeCont::markRoundabouts().

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

patches loaded signal plans by modifying lane indices

Definition at line 373 of file NBNode.cpp.

References myTrafficLights.

Referenced by NBEdge::addRestrictedLane(), and getControllingTLS().

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

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

Referenced by getControllingTLS(), and NWWriter_SUMO::writeJunction().

Friends And Related Function Documentation

friend class GNEJunction
friend

Definition at line 76 of file NBNode.h.

friend class NBEdgePriorityComputer
friend

Definition at line 79 of file NBNode.h.

friend class NBNodeCont
friend

Definition at line 75 of file NBNode.h.

friend class NBNodesEdgesSorter
friend

Definition at line 77 of file NBNode.h.

friend class NBNodeShapeComputer
friend

Definition at line 530 of file NBNode.h.

friend class NBNodeTypeComputer
friend

Definition at line 78 of file NBNode.h.

Field Documentation

const int NBNode::BACKWARD
static

Definition at line 184 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 186 of file NBNode.h.

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

const int NBNode::FORWARD
static

edge directions (for pedestrian related stuff)

Definition at line 183 of file NBNode.h.

Referenced by buildCrossings(), NBTrafficLightDefinition::collectEdges(), computeLanes2Lanes(), NBEdge::expandableBy(), and NBEdge::getFirstNonPedestrianLaneIndex().

NBConnectionProhibits NBNode::myBlockedConnections
private

The container for connection block dependencies

Definition at line 766 of file NBNode.h.

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

int NBNode::myCrossingsLoadedFromSumoNet
private

number of crossings loaded from a sumo net

Definition at line 793 of file NBNode.h.

Referenced by addCrossing(), and numCrossingsFromSumoNet().

CustomShapeMap NBNode::myCustomLaneShapes
private
bool NBNode::myDiscardAllCrossings
private

whether to discard all pedestrian crossings

Definition at line 790 of file NBNode.h.

Referenced by buildCrossings(), discardAllCrossings(), and guessCrossings().

NBDistrict* NBNode::myDistrict
private

The district the node is the centre of.

Definition at line 769 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 775 of file NBNode.h.

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

bool NBNode::myKeepClear
private

whether the junction area must be kept clear

Definition at line 785 of file NBNode.h.

Referenced by getKeepClear(), and setKeepClear().

PositionVector NBNode::myPoly
private

the (outer) shape of the junction

Definition at line 772 of file NBNode.h.

Referenced by computeNodeShape(), getCenter(), getShape(), GNEJunction::invalidateShape(), mirrorX(), reshiftPosition(), and setCustomShape().

Position NBNode::myPosition
private

The position the node lies at.

Definition at line 745 of file NBNode.h.

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

SUMOReal NBNode::myRadius
private

the turning radius (for all corners) at this node in m.

Definition at line 782 of file NBNode.h.

Referenced by getRadius(), and setRadius().

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

Vector of walking areas.

Definition at line 760 of file NBNode.h.

Referenced by buildCrossingsAndWalkingAreas(), buildWalkingAreas(), getWalkingAreas(), and mirrorX().

const SUMOReal NBNode::UNSPECIFIED_RADIUS = -1
static

unspecified lane width

Definition at line 189 of file NBNode.h.

Referenced by NBNodeShapeComputer::computeNodeShapeDefault(), NWWriter_SUMO::writeJunction(), and NWWriter_XML::writeNodes().


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