SUMO - Simulation of Urban MObility

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...
class  nodes_by_id_sorter
 Used for sorting the cells by the begin time they describe. More...

Public Member Functions

void addIncomingEdge (NBEdge *edge)
 adds an incoming edge
void addOutgoingEdge (NBEdge *edge)
 adds an outgoing edge
void addSortedLinkFoes (const NBConnection &mayDrive, const NBConnection &mustStop)
void buildInnerEdges ()
bool checkIsRemovable () const
PositionVector computeInternalLaneShape (NBEdge *fromE, int fromL, NBEdge *toE, int toL, int numPoints=5) const
 Compute the shape for an internal lane.
void computeLanes2Lanes ()
 computes the connections of lanes to edges
void computeLogic (const NBEdgeCont &ec, OptionsCont &oc)
 computes the node's type, logic and traffic light
void computeNodeShape (bool leftHand)
void computePriorities ()
void computeType (const NBTypeCont &tc)
bool foes (const NBEdge *const from1, const NBEdge *const to1, const NBEdge *const from2, const NBEdge *const to2) const
 Returns the information whether the given flows cross.
bool forbids (const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo, bool regardNonSignalisedLowerPriority) const
 Returns the information whether "prohibited" flow must let "prohibitor" flow pass.
NBEdge * getConnectionTo (NBNode *n) const
LinkDirection getDirection (const NBEdge *const incoming, const NBEdge *const outgoing) const
 Returns the representation of the described stream's direction.
std::vector< std::pair< NBEdge
*, NBEdge * > > 
getEdgesToJoin () const
Position getEmptyDir () const
 Returns something like the most unused direction Should only be used to add source or sink nodes.
const std::string & getID () const
 Returns the id.
SUMOReal getMaxEdgeWidth () const
NBEdge * getOppositeIncoming (NBEdge *e) const
NBEdge * getPossiblySplittedIncoming (const std::string &edgeid)
NBEdge * getPossiblySplittedOutgoing (const std::string &edgeid)
const NBConnectionProhibits & getProhibitions ()
const PositionVector & getShape () const
bool hasIncoming (const NBEdge *const e) const
 Returns whether the given edge ends at this node.
bool hasOutgoing (const NBEdge *const e) const
 Returns whether the given edge starts at this node.
void invalidateIncomingConnections ()
void invalidateOutgoingConnections ()
bool isDistrict () const
bool isLeftMover (const NBEdge *const from, const NBEdge *const to) const
 Computes whether the given connection is a left mover across the junction.
bool isNearDistrict () const
bool mustBrake (const NBEdge *const from, const NBEdge *const to, int toLane) const
 Returns the information whether the described flow must let any other flow pass.
 NBNode (const std::string &id, const Position &position, SumoXMLNodeType type)
 Constructor.
 NBNode (const std::string &id, const Position &position, NBDistrict *district)
 Constructor.
 NBNode (const std::string &id, const Position &position)
 Constructor.
bool needsCont (NBEdge *fromE, NBEdge *toE, NBEdge *otherFromE, NBEdge *otherToE, const NBEdge::Connection &c) const
void reinit (const Position &position, SumoXMLNodeType type, bool updateEdgeGeometries=false)
 Resets initial values.
void removeDoubleEdges ()
void removeEdge (NBEdge *edge, bool removeFromConnections=true)
 Removes edge from this node and optionally removes connections as well.
void replaceIncoming (const EdgeVector &which, NBEdge *by)
 Replaces occurences of every edge from the given list within the list of incoming by the second Connections are remapped, too.
void replaceIncoming (NBEdge *which, NBEdge *by, unsigned int laneOff)
 Replaces occurences of the first edge within the list of incoming by the second Connections are remapped, too.
void replaceOutgoing (const EdgeVector &which, NBEdge *by)
 Replaces occurences of every edge from the given list within the list of outgoing by the second Connections are remapped, too.
void replaceOutgoing (NBEdge *which, NBEdge *by, unsigned int laneOff)
 Replaces occurences of the first edge within the list of outgoing by the second Connections are remapped, too.
void setID (const std::string &newID)
 resets the id
void sortNodesEdges (bool leftHand)
std::string stateCode (const NBEdge *incoming, NBEdge *outgoing, int fromLane, bool mayDefinitelyPass) const
bool writeLogic (OutputDevice &into) const
 ~NBNode ()
 Destructor.
Atomar getter methods
const Position & getPosition () const
 Returns the position of this node.
const EdgeVector & getIncomingEdges () const
 Returns this node's incoming edges.
const EdgeVector & getOutgoingEdges () const
 Returns this node's outgoing edges.
const EdgeVector & getEdges () const
 Returns all edges which participate in this node.
SumoXMLNodeType getType () const
 Returns the type of this node.
Methods for dealing with assigned traffic lights
void addTrafficLight (NBTrafficLightDefinition *tlDef)
 Adds a traffic light to the list of traffic lights that control this node.
void removeTrafficLight (NBTrafficLightDefinition *tlDef)
 Removes the given traffic light from this node.
void removeTrafficLights ()
 Removes all references to traffic lights that control this tls.
bool isTLControlled () const
 Returns whether this node is controlled by any tls.
bool isJoinedTLSControlled () const
 Returns whether this node is controlled by a tls that spans over more than one node.
const std::set
< NBTrafficLightDefinition * > & 
getControllingTLS () const
 Returns the traffic lights that were assigned to this node.
Prunning the input
unsigned int removeSelfLoops (NBDistrictCont &dc, NBEdgeCont &ec, NBTrafficLightLogicCont &tc)
 Removes edges which are both incoming and outgoing into this node.
Applying offset
void reshiftPosition (SUMOReal xoff, SUMOReal yoff)
 Applies an offset to the node.

Protected Attributes

std::string myID
 The name of the object.

Private Member Functions

NBEdge * extractAndMarkFirst (EdgeVector &s)
EdgeVector * getEdgesThatApproach (NBEdge *currentOutgoing)
bool isSimpleContinuation () const
 NBNode (const NBNode &s)
 invalidated copy constructor
NBNode & operator= (const NBNode &s)
 invalidated assignment operator
void remapRemoved (NBTrafficLightLogicCont &tc, NBEdge *removed, const EdgeVector &incoming, const EdgeVector &outgoing)
void replaceInConnectionProhibitions (NBEdge *which, NBEdge *by, unsigned int whichLaneOff, unsigned int byLaneOff)
void setPriorityJunctionPriorities ()
 sets the priorites in case of a priority junction
bool swapWhenReversed (bool leftHand, const EdgeVector::iterator &i1, const EdgeVector::iterator &i2)

Private Attributes

EdgeVector myAllEdges
 Vector of incoming and outgoing edges.
NBConnectionProhibits myBlockedConnections
NBDistrict * myDistrict
 The district the node is the centre of.
EdgeVector myIncomingEdges
 Vector of incoming edges.
EdgeVector myOutgoingEdges
 Vector of outgoing edges.
PositionVector myPoly
 the (outer) shape of the junction
Position myPosition
 The position the node lies at.
NBRequest * myRequest
std::set
< NBTrafficLightDefinition * > 
myTrafficLights
SumoXMLNodeType myType
 The type of the junction.

Friends

class GNEJunction
class NBNodeCont
class NBNodeShapeComputer

Detailed Description

Represents a single node (junction) during network building.

Definition at line 74 of file NBNode.h.


Constructor & Destructor Documentation

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

Constructor.

Parameters:
[in]idThe id of the node
[in]positionThe position of the node

Definition at line 194 of file NBNode.cpp.

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

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

Constructor.

Parameters:
[in]idThe id of the node
[in]positionThe position of the node
[in]districtThe district this district node represents

Definition at line 209 of file NBNode.cpp.

NBNode::~NBNode ( )

Destructor.

Definition at line 216 of file NBNode.cpp.

References myRequest.

NBNode::NBNode ( const NBNode &  s) [private]

invalidated copy constructor


Member Function Documentation

void NBNode::addIncomingEdge ( NBEdge *  edge)

adds an incoming edge

Definition at line 337 of file NBNode.cpp.

References myAllEdges, and myIncomingEdges.

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

void NBNode::addOutgoingEdge ( NBEdge *  edge)

adds an outgoing edge

Definition at line 347 of file NBNode.cpp.

References myAllEdges, and myOutgoingEdges.

Referenced by NBEdge::init().

void NBNode::addSortedLinkFoes ( const NBConnection &  mayDrive,
const NBConnection &  mustStop 
)
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 256 of file NBNode.cpp.

References myTrafficLights, myType, and NODETYPE_TRAFFIC_LIGHT.

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

void NBNode::buildInnerEdges ( )

Definition at line 1584 of file NBNode.cpp.

References myIncomingEdges.

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

computes the priorities of participating edges within this junction

Note:
this depends on node types

Definition at line 377 of file NBNode.cpp.

References myAllEdges, myIncomingEdges, myOutgoingEdges, myType, NODETYPE_RIGHT_BEFORE_LEFT, and setPriorityJunctionPriorities().

NBEdge * NBNode::extractAndMarkFirst ( EdgeVector &  s) [private]

removes the first edge from the list, marks it as higher priorised and returns it

Definition at line 582 of file NBNode.cpp.

References NBEdge::setJunctionPriority().

Referenced by setPriorityJunctionPriorities().

bool NBNode::foes ( const NBEdge *const  from1,
const NBEdge *const  to1,
const NBEdge *const  from2,
const NBEdge *const  to2 
) const

Returns the information whether the given flows cross.

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

References NBRequest::foes(), and myRequest.

Referenced by NBTrafficLightDefinition::foes(), NBTrafficLightDefinition::forbids(), and needsCont().

bool NBNode::forbids ( const NBEdge *const  possProhibitorFrom,
const NBEdge *const  possProhibitorTo,
const NBEdge *const  possProhibitedFrom,
const NBEdge *const  possProhibitedTo,
bool  regardNonSignalisedLowerPriority 
) const

Returns the information whether "prohibited" flow must let "prohibitor" flow pass.

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

References NBRequest::forbids(), and myRequest.

Referenced by NBTrafficLightDefinition::forbids().

NBEdge * NBNode::getConnectionTo ( NBNode *  n) const
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 235 of file NBNode.h.

References myTrafficLights.

Referenced by NIXMLNodesHandler::addNode(), NBNodeCont::guessTLs(), and NWWriter_XML::writeNodes().

LinkDirection NBNode::getDirection ( const NBEdge *const  incoming,
const NBEdge *const  outgoing 
) const

Returns the representation of the described stream's direction.

Parameters:
[in]incomingThe edge the stream starts at
[in]outgoingThe edge the stream ends at
Returns:
The direction of the stream

Definition at line 1374 of file NBNode.cpp.

References abs, NBEdge::getAngle(), NBEdge::isTurningDirectionAt(), LINKDIR_LEFT, LINKDIR_NODIR, LINKDIR_PARTLEFT, LINKDIR_PARTRIGHT, LINKDIR_RIGHT, LINKDIR_STRAIGHT, LINKDIR_TURN, myAllEdges, NBContHelper::nextCCW(), NBContHelper::nextCW(), NBHelpers::normRelAngle(), and SUMOReal.

Referenced by NBEdge::buildInnerEdges(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), NBEdge::MainDirections::MainDirections(), needsCont(), and NWWriter_SUMO::writeConnection().

const EdgeVector& NBNode::getEdges ( ) const [inline]

Returns all edges which participate in this node.

Returns:
Edges that start or end at this node

Definition at line 186 of file NBNode.h.

References myAllEdges.

Referenced by NBNodeCont::generateNodeClusters(), and NBEdgeCont::guessRoundabouts().

EdgeVector * NBNode::getEdgesThatApproach ( NBEdge *  currentOutgoing) [private]

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

Definition at line 907 of file NBNode.cpp.

References myAllEdges, and NBContHelper::nextCW().

Referenced by computeLanes2Lanes().

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

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

const std::string& Named::getID ( ) const [inline, inherited]

Returns the id.

Returns:
The stored id

Reimplemented in MS_E2_ZS_CollectorOverLanes.

Definition at line 61 of file Named.h.

References Named::myID.

Referenced by ShapeContainer::add(), MSDetectorControl::add(), RORouteDef_Alternatives::addAlternative(), MSNet::addBusStop(), NLHandler::addConnection(), NBLoadedSUMOTLDef::addConnection(), NIImporter_OpenDrive::addE2EConnectionsSecure(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), NIVisumTL::build(), MS_E2_ZS_CollectorOverLanes::buildCollector(), RORouteDef_Complete::buildCurrentRoute(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), NBEdge::buildInnerEdges(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), ODDistrictHandler::closeDistrict(), NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), NBTrafficLightDefinition::compute(), computeInternalLaneShape(), NBEdge::computeLaneShapes(), computeLogic(), computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBEdge::connections_sorter(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSE3Collector::enter(), MSVTypeProbe::execute(), Command_SaveTLSSwitches::execute(), NBTrafficLightLogicCont::extract(), NBNodeCont::extract(), NBEdgeCont::extract(), MSNet::getBusStopID(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), getPossiblySplittedIncoming(), getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBEdgeCont::ignoreFilterMatch(), MSUnboundActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NIImporter_SUMO::initTrafficLightLogic(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBDistrictCont::insert(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), MSLane::moveCritical(), MSVehicle::MSVehicle(), RORDLoader_SUMOBase::myCharacters(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSTriggeredRerouter::myStartElement(), MSLaneSpeedTrigger::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), Named::ComparatorIdLess::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), NBLoadedTLDef::SignalGroup::patchTYellow(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_InductionLoop::processGet(), NWWriter_SUMO::prohibitionConnection(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), MSLane::setCritical(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), RORDLoader_SUMOBase::startRoute(), NBEdge::startShapeAt(), NIXMLConnectionsHandler::validateLaneInfo(), MSInstantInductLoop::write(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), MSInductLoop::writeTypedXMLOutput(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().

SUMOReal NBNode::getMaxEdgeWidth ( ) const

Definition at line 1523 of file NBNode.cpp.

References myAllEdges, and SUMOReal.

NBEdge * NBNode::getOppositeIncoming ( NBEdge *  e) const

Definition at line 1085 of file NBNode.cpp.

References NBEdge::getToNode(), and myIncomingEdges.

Referenced by NBEdge::buildInnerEdges(), and computeType().

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

Definition at line 1117 of file NBNode.cpp.

References Named::getID(), and myIncomingEdges.

Referenced by NIVissimDisturbance::getConnection().

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

Definition at line 1130 of file NBNode.cpp.

References Named::getID(), and myOutgoingEdges.

Referenced by NIVissimDisturbance::getConnection().

const NBConnectionProhibits& NBNode::getProhibitions ( ) [inline]

Definition at line 440 of file NBNode.h.

References myBlockedConnections.

const PositionVector & NBNode::getShape ( ) const

Definition at line 1517 of file NBNode.cpp.

References myPoly.

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

SumoXMLNodeType NBNode::getType ( ) const [inline]

Returns the type of this node.

Returns:
The type of this node
See also:
SumoXMLNodeType

Definition at line 195 of file NBNode.h.

References myType.

Referenced by NIXMLNodesHandler::addNode(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NBRequest::setBlocking(), NWWriter_SUMO::writeJunction(), and NWWriter_XML::writeNodes().

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

References myOutgoingEdges.

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

void NBNode::invalidateIncomingConnections ( )

Definition at line 1197 of file NBNode.cpp.

References myIncomingEdges.

Referenced by NIVissimDistrictConnection::dict_BuildDistricts().

void NBNode::invalidateOutgoingConnections ( )

Definition at line 1205 of file NBNode.cpp.

References myOutgoingEdges.

Referenced by NIVissimDistrictConnection::dict_BuildDistricts().

bool NBNode::isDistrict ( ) const

Definition at line 1578 of file NBNode.cpp.

References myType, and NODETYPE_DISTRICT.

Referenced by computeLogic(), and isNearDistrict().

bool NBNode::isJoinedTLSControlled ( ) const

Returns whether this node is controlled by a tls that spans over more than one node.

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

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

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

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

bool NBNode::isNearDistrict ( ) const
bool NBNode::isSimpleContinuation ( ) const [private]
bool NBNode::isTLControlled ( ) const [inline]

Returns whether this node is controlled by any tls.

Returns:
Whether a traffic light was assigned to this node

Definition at line 221 of file NBNode.h.

References myTrafficLights.

Referenced by NBEdge::appendTurnaround(), NBNodeCont::guessTLs(), isJoinedTLSControlled(), and NWWriter_XML::writeNodes().

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

References NBEdge::getSpeed(), NBRequest::mustBrake(), myIncomingEdges, myRequest, and myTrafficLights.

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

bool NBNode::needsCont ( NBEdge *  fromE,
NBEdge *  toE,
NBEdge *  otherFromE,
NBEdge *  otherToE,
const NBEdge::Connection &  c 
) const
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 222 of file NBNode.cpp.

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

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

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

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

References myAllEdges, myIncomingEdges, and myOutgoingEdges.

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

unsigned int NBNode::removeSelfLoops ( NBDistrictCont &  dc,
NBEdgeCont &  ec,
NBTrafficLightLogicCont &  tc 
)

Removes edges which are both incoming and outgoing into this node.

If given, the connections to other edges participating in this node are updated

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

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

void NBNode::removeTrafficLight ( NBTrafficLightDefinition *  tlDef)

Removes the given traffic light from this node.

Definition at line 263 of file NBNode.cpp.

References myTrafficLights, and NBTrafficLightDefinition::removeNode().

Referenced by removeTrafficLights().

void NBNode::removeTrafficLights ( )

Removes all references to traffic lights that control this tls.

Definition at line 270 of file NBNode.cpp.

References myTrafficLights, and removeTrafficLight().

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

void NBNode::replaceIncoming ( const EdgeVector &  which,
NBEdge *  by 
)

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

Definition at line 980 of file NBNode.cpp.

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

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

References myAllEdges, myIncomingEdges, and replaceInConnectionProhibitions().

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

void NBNode::replaceInConnectionProhibitions ( NBEdge *  which,
NBEdge *  by,
unsigned int  whichLaneOff,
unsigned int  byLaneOff 
) [private]
void NBNode::replaceOutgoing ( const EdgeVector &  which,
NBEdge *  by 
)

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

Definition at line 948 of file NBNode.cpp.

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

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

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

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

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

Applies an offset to the node.

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

Definition at line 248 of file NBNode.cpp.

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

void Named::setID ( const std::string &  newID) [inline, inherited]

resets the id

Definition at line 67 of file Named.h.

References Named::myID.

void NBNode::setPriorityJunctionPriorities ( ) [private]

sets the priorites in case of a priority junction

Definition at line 484 of file NBNode.cpp.

References extractAndMarkFirst(), NBEdge::getAngle(), GeomHelper::getMinAngleDiff(), myIncomingEdges, myOutgoingEdges, samePriority(), NBEdge::setJunctionPriority(), and SUMOReal.

Referenced by computePriorities().

void NBNode::sortNodesEdges ( bool  leftHand)

initialises the list of all edges and sorts all edges

Definition at line 796 of file NBNode.cpp.

References myAllEdges, myIncomingEdges, myOutgoingEdges, and swapWhenReversed().

std::string NBNode::stateCode ( const NBEdge *  incoming,
NBEdge *  outgoing,
int  fromLane,
bool  mayDefinitelyPass 
) const
bool NBNode::swapWhenReversed ( bool  leftHand,
const EdgeVector::iterator &  i1,
const EdgeVector::iterator &  i2 
) [private]

used while fine sorting the incoming and outgoing edges, this method performs the swapping of two edges in the myAllEdges-list when the outgoing is in clockwise direction to the incoming

Definition at line 357 of file NBNode.cpp.

References NBEdge::getToNode(), and NBEdge::isTurningDirectionAt().

Referenced by sortNodesEdges().

bool NBNode::writeLogic ( OutputDevice &  into) const

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

Definition at line 786 of file NBNode.cpp.

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

Referenced by NWWriter_SUMO::writeJunction().


Friends And Related Function Documentation

friend class GNEJunction [friend]

Definition at line 76 of file NBNode.h.

friend class NBNodeCont [friend]

Definition at line 75 of file NBNode.h.

friend class NBNodeShapeComputer [friend]

Definition at line 403 of file NBNode.h.


Field Documentation

The container for connection block dependencies

Definition at line 510 of file NBNode.h.

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

The district the node is the centre of.

Definition at line 513 of file NBNode.h.

Referenced by replaceIncoming(), and replaceOutgoing().

the (outer) shape of the junction

Definition at line 516 of file NBNode.h.

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

The position the node lies at.

Definition at line 495 of file NBNode.h.

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

Definition at line 518 of file NBNode.h.

Referenced by computeLogic(), foes(), forbids(), mustBrake(), writeLogic(), and ~NBNode().

The type of the junction.

Definition at line 507 of file NBNode.h.

Referenced by addTrafficLight(), computeLogic(), computePriorities(), computeType(), getType(), isDistrict(), needsCont(), reinit(), and stateCode().


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