SUMO - Simulation of Urban MObility
NBEdge Class Reference

The representation of a single edge during network building. More...

#include <NBEdge.h>

Inheritance diagram for NBEdge:
Inheritance graph
Collaboration diagram for NBEdge:
Collaboration graph

Data Structures

struct  Connection
 A structure which describes a connection between edges or lanes. More...
 
class  connections_conflict_finder
 
class  connections_finder
 
class  connections_fromlane_finder
 
class  connections_relative_edgelane_sorter
 Class to sort edges by their angle. More...
 
class  connections_toedge_finder
 
class  connections_toedgelane_finder
 
struct  Lane
 An (internal) definition of a single lane of an edge. More...
 
class  MainDirections
 Holds (- relative to the edge it is build from -!!!) the list of main directions a vehicle that drives on this street may take on the junction the edge ends in The back direction is not regarded. More...
 
class  tls_disable_finder
 
struct  TLSDisabledConnection
 TLS Disabled Connections. More...
 
class  ToEdgeConnectionsAdder
 A class that being a bresenham-callback assigns the incoming lanes to the edges. More...
 

Public Types

enum  EdgeBuildingStep {
  INIT_REJECT_CONNECTIONS, INIT, EDGE2EDGES, LANES2EDGES,
  LANES2LANES_RECHECK, LANES2LANES_DONE, LANES2LANES_USER
}
 Current state of the edge within the building process. More...
 
enum  JunctionPriority { MINOR_ROAD = 0, PRIORITY_ROAD = 1, ROUNDABOUT = 1000 }
 junction priority values set by setJunctionPriority More...
 
enum  Lane2LaneInfoType { L2L_COMPUTED, L2L_USER, L2L_VALIDATED }
 Modes of setting connections between lanes. More...
 

Public Member Functions

void addBikeLane (double width)
 add a bicycle lane of the given width and shift existing connctions More...
 
void addCrossingPointsAsIncomingWithGivenOutgoing (NBEdge *o, PositionVector &into)
 add crossing points as incoming with given outgoing More...
 
void addLane (int index, bool recompute=true)
 add lane More...
 
void addSidewalk (double width)
 add a pedestrian sidewalk of the given width and shift existing connctions More...
 
void addSign (NBSign sign)
 add Sign More...
 
void addTo (const StoringVisitor &cont) const
 Adds this object to the given container. More...
 
void allowVehicleClass (int lane, SUMOVehicleClass vclass)
 set allowed class for the given lane or for all lanes if -1 is given More...
 
void append (NBEdge *continuation)
 append another edge More...
 
void appendTurnaround (bool noTLSControlled, bool checkPermissions)
 Add a connection to the previously computed turnaround, if wished. More...
 
void buildInnerEdges (const NBNode &n, int noInternalNoSplits, int &linkIndex, int &splitIndex)
 
void clearControllingTLInformation ()
 clears tlID for all connections More...
 
void clearParameter ()
 Clears the parameter map. More...
 
bool computeEdge2Edges (bool noLeftMovers)
 computes the edge (step1: computation of approached edges) More...
 
bool computeLanes2Edges ()
 computes the edge, step2: computation of which lanes approach the edges) More...
 
PositionVector cutAtIntersection (const PositionVector &old) const
 cut shape at the intersection shapes More...
 
void decLaneNo (int by)
 decrement lane More...
 
void declareConnectionsAsLoaded (EdgeBuildingStep step=LANES2LANES_USER)
 declares connections as fully loaded. This is needed to avoid recomputing connections if an edge has no connections intentionally. More...
 
void deleteLane (int index, bool recompute=true)
 delete lane More...
 
void disableConnection4TLS (int fromLane, NBEdge *toEdge, int toLane)
 disable connections for TLS More...
 
void disallowVehicleClass (int lane, SUMOVehicleClass vclass)
 set disallowed class for the given lane or for all lanes if -1 is given More...
 
void dismissVehicleClassInformation ()
 dimiss vehicle class information More...
 
bool expandableBy (NBEdge *possContinuation, std::string &reason) const
 Check if Node is expandable. More...
 
double getAngleAtNode (const NBNode *const node) const
 Returns the angle of the edge's geometry at the given node. More...
 
double getAngleAtNodeToCenter (const NBNode *const node) const
 Returns the angle of from the node shape center to where the edge meets the node shape. More...
 
PositionVector getCCWBoundaryLine (const NBNode &n) const
 get the outer boundary of this edge when going counter-clock-wise around the given node More...
 
double getCrossingAngle (NBNode *node)
 return the angle for computing pedestrian crossings at the given node More...
 
PositionVector getCWBoundaryLine (const NBNode &n) const
 get the outer boundary of this edge when going clock-wise around the given node More...
 
double getDouble (const std::string &key, const double defaultValue) const
 Returns the value for a given key converted to a double. More...
 
int getFirstAllowedLaneIndex (int direction) const
 return the first lane that permits at least 1 vClass or the last lane if search direction of there is no such lane More...
 
NBEdge::Lane getFirstNonPedestrianLane (int direction) const
 get first non-pedestrian lane More...
 
int getFirstNonPedestrianLaneIndex (int direction, bool exclusive=false) const
 return the first lane with permissions other than SVC_PEDESTRIAN and 0 More...
 
const std::string & getID () const
 Returns the id. More...
 
int getJunctionPriority (const NBNode *const node) const
 Returns the junction priority (normalised for the node currently build) More...
 
std::string getLaneID (int lane) const
 get Lane ID (Secure) More...
 
std::string getLaneIDInsecure (int lane) const
 get Lane ID (Insecure) More...
 
double getLaneSpeed (int lane) const
 get lane speed More...
 
LanegetLaneStruct (int lane)
 
const LanegetLaneStruct (int lane) const
 
const std::map< std::string, std::string > & getMap () const
 Returns the inner key/value map. More...
 
double getMaxLaneOffset ()
 get max lane offset More...
 
const std::string getParameter (const std::string &key, const std::string &defaultValue="") const
 Returns the value for a given key. More...
 
SVCPermissions getPermissions (int lane=-1) const
 get the union of allowed classes over all lanes or for a specific lane More...
 
std::set< SVCPermissionsgetPermissionVariants (int iStart, int iEnd) const
 return all permission variants within the specified lane range [iStart, iEnd[ More...
 
std::string getSidewalkID ()
 get the lane id for the canonical sidewalk lane More...
 
const std::vector< NBSign > & getSigns () const
 get Signs More...
 
NBEdgegetTurnDestination (bool possibleDestination=false) const
 
const std::string & getTypeID () const
 get ID of type More...
 
bool hasAccelLane () const
 whether one of the lanes is an acceleration lane More...
 
bool hasCustomLaneShape () const
 whether one of the lanes has a custom shape More...
 
bool hasLaneParams () const
 whether one of the lanes has parameters set More...
 
bool hasLaneSpecificEndOffset () const
 whether lanes differ in offset More...
 
bool hasLaneSpecificPermissions () const
 whether lanes differ in allowed vehicle classes More...
 
bool hasLaneSpecificSpeed () const
 whether lanes differ in speed More...
 
bool hasLaneSpecificWidth () const
 whether lanes differ in width More...
 
bool hasPermissions () const
 whether at least one lane has restrictions More...
 
bool hasSignalisedConnectionTo (const NBEdge *const e) const
 Check if edge has signalised connections. More...
 
void incLaneNo (int by)
 increment lane More...
 
bool isNearEnough2BeJoined2 (NBEdge *e, double threshold) const
 Check if edge is near enought to be joined to another edge. More...
 
bool isTurningDirectionAt (const NBEdge *const edge) const
 Returns whether the given edge is the opposite direction to this edge. More...
 
bool knowsParameter (const std::string &key) const
 Returns whether the parameter is known. More...
 
bool lanesWereAssigned () const
 Check if lanes were assigned. More...
 
void markAsInLane2LaneState ()
 mark edge as in lane to state lane More...
 
bool mayBeTLSControlled (int fromLane, NBEdge *toEdge, int toLane) const
 return true if certain connection must be controlled by TLS More...
 
void moveOutgoingConnectionsFrom (NBEdge *e, int laneOff)
 move outgoing connection More...
 
 NBEdge (const std::string &id, NBNode *from, NBNode *to, std::string type, double speed, int nolanes, int priority, double width, double offset, const std::string &streetName="", LaneSpreadFunction spread=LANESPREAD_RIGHT)
 Constructor. More...
 
 NBEdge (const std::string &id, NBNode *from, NBNode *to, std::string type, double speed, int nolanes, int priority, double width, double offset, PositionVector geom, const std::string &streetName="", const std::string &origID="", LaneSpreadFunction spread=LANESPREAD_RIGHT, bool tryIgnoreNodePositions=false)
 Constructor. More...
 
 NBEdge (const std::string &id, NBNode *from, NBNode *to, NBEdge *tpl, const PositionVector &geom=PositionVector(), int numLanes=-1)
 Constructor. More...
 
bool needsLaneSpecificOutput () const
 whether at least one lane has values differing from the edges values More...
 
void preferVehicleClass (int lane, SUMOVehicleClass vclass)
 prefer certain vehicle class More...
 
bool recheckLanes ()
 recheck whether all lanes within the edge are all right and optimises the connections once again More...
 
void reinit (NBNode *from, NBNode *to, const std::string &type, double speed, int nolanes, int priority, PositionVector geom, double width, double offset, const std::string &streetName, LaneSpreadFunction spread=LANESPREAD_RIGHT, bool tryIgnoreNodePositions=false)
 Resets initial values. More...
 
void reinitNodes (NBNode *from, NBNode *to)
 Resets nodes but keeps all other values the same (used when joining) More...
 
void resetNodeBorder (const NBNode *node)
 
void restoreBikelane (std::vector< NBEdge::Lane > oldLanes, PositionVector oldGeometry, std::vector< NBEdge::Connection > oldConnections)
 restore an previously added BikeLane More...
 
void restoreSidewalk (std::vector< NBEdge::Lane > oldLanes, PositionVector oldGeometry, std::vector< NBEdge::Connection > oldConnections)
 restore an previously added sidewalk More...
 
void setAcceleration (int lane, bool accelRamp)
 marks one lane as acceleration lane More...
 
bool setControllingTLInformation (const NBConnection &c, const std::string &tlID)
 Returns if the link could be set as to be controlled. More...
 
void setEndOffset (int lane, double offset)
 set lane specific end-offset (negative lane implies set for all lanes) More...
 
void setID (const std::string &newID)
 resets the id More...
 
void setJunctionPriority (const NBNode *const node, int prio)
 Sets the junction priority of the edge. More...
 
void setLaneShape (int lane, const PositionVector &shape)
 sets a custom lane shape More...
 
void setLaneWidth (int lane, double width)
 set lane specific width (negative lane implies set for all lanes) More...
 
void setLoadedLength (double val)
 set loaded lenght More...
 
void setNodeBorder (const NBNode *node, const Position &p, const Position &p2, bool rectangularCut)
 Set Node border. More...
 
void setOrigID (const std::string origID)
 set origID for all lanes More...
 
void setParameter (const std::string &key, const std::string &value)
 Sets a parameter. More...
 
void setPermissions (SVCPermissions permissions, int lane=-1)
 set allowed/disallowed classes for the given lane or for all lanes if -1 is given More...
 
void setPreferredVehicleClass (SVCPermissions permissions, int lane=-1)
 set preferred Vehicle Class More...
 
void setSpeed (int lane, double speed)
 set lane specific speed (negative lane implies set for all lanes) More...
 
void setTurningDestination (NBEdge *e, bool onlyPossible=false)
 Sets the turing destination at the given edge. More...
 
NBNodetryGetNodeAtPosition (double pos, double tolerance=5.0) const
 Returns the node at the given edges length (using an epsilon) More...
 
void unsetParameter (const std::string &key)
 Removes a parameter. More...
 
void updateParameter (const std::map< std::string, std::string > &mapArg)
 Adds or updates all given parameters from the map. More...
 
void writeParams (OutputDevice &out) const
 
 ~NBEdge ()
 Destructor. More...
 
Applying offset
void reshiftPosition (double xoff, double yoff)
 Applies an offset to the edge. More...
 
void mirrorX ()
 mirror coordinates along the x-axis More...
 
Atomar getter methods
int getNumLanes () const
 Returns the number of lanes. More...
 
int getPriority () const
 Returns the priority of the edge. More...
 
NBNodegetFromNode () const
 Returns the origin node of the edge. More...
 
NBNodegetToNode () const
 Returns the destination node of the edge. More...
 
double getStartAngle () const
 Returns the angle at the start of the edge (relative to the node shape center) The angle is computed in computeAngle() More...
 
double getEndAngle () const
 Returns the angle at the end of the edge (relative to the node shape center) The angle is computed in computeAngle() More...
 
double getShapeStartAngle () const
 Returns the angle at the start of the edge. More...
 
double getShapeEndAngle () const
 Returns the angle at the end of the edge. More...
 
double getTotalAngle () const
 Returns the angle at the start of the edge. More...
 
double getLength () const
 Returns the computed length of the edge. More...
 
double getLoadedLength () const
 Returns the length was set explicitly or the computed length if it wasn't set. More...
 
double getFinalLength () const
 get length that will be assigned to the lanes in the final network More...
 
bool hasLoadedLength () const
 Returns whether a length was set explicitly. More...
 
double getSpeed () const
 Returns the speed allowed on this edge. More...
 
EdgeBuildingStep getStep () const
 The building step of this edge. More...
 
double getLaneWidth () const
 Returns the default width of lanes of this edge. More...
 
double getLaneWidth (int lane) const
 Returns the width of the lane of this edge. More...
 
double getTotalWidth () const
 Returns the combined width of all lanes of this edge. More...
 
const std::string & getStreetName () const
 Returns the street name of this edge. More...
 
void setStreetName (const std::string &name)
 sets the street name of this edge More...
 
double getEndOffset () const
 Returns the offset to the destination node. More...
 
double getEndOffset (int lane) const
 Returns the offset to the destination node a the specified lane. More...
 
double getSignalOffset () const
 Returns the offset of a traffic signal from the end of this edge. More...
 
void setSignalOffset (double offset)
 sets the offset of a traffic signal from the end of this edge More...
 
const std::vector< NBEdge::Lane > & getLanes () const
 Returns the lane definitions. More...
 
Edge geometry access and computation
const PositionVectorgetGeometry () const
 Returns the geometry of the edge. More...
 
const PositionVector getInnerGeometry () const
 Returns the geometry of the edge without the endpoints. More...
 
bool hasDefaultGeometry () const
 Returns whether the geometry consists only of the node positions. More...
 
bool hasDefaultGeometryEndpoints () const
 Returns whether the geometry is terminated by the node positions This default may be violated by initializing with tryIgnoreNodePositions=true' or with setGeometry() non-default endpoints are useful to control the generated node shape. More...
 
bool hasDefaultGeometryEndpointAtNode (const NBNode *node) const
 Returns whether the geometry is terminated by the node positions This default may be violated by initializing with tryIgnoreNodePositions=true' or with setGeometry() non-default endpoints are useful to control the generated node shape. More...
 
void setGeometry (const PositionVector &g, bool inner=false)
 (Re)sets the edge's geometry More...
 
void addGeometryPoint (int index, const Position &p)
 Adds a further geometry point. More...
 
void extendGeometryAtNode (const NBNode *node, double maxExtent)
 linearly extend the geometry at the given node More...
 
void shortenGeometryAtNode (const NBNode *node, double reduction)
 linearly extend the geometry at the given node More...
 
void shiftPositionAtNode (NBNode *node, NBEdge *opposite)
 shift geometry at the given node to avoid overlap More...
 
void computeEdgeShape ()
 Recomputeds the lane shapes to terminate at the node shape For every lane the intersection with the fromNode and toNode is calculated and the lane shorted accordingly. The edge length is then set to the average of all lane lenghts (which may differ). This average length is used as the lane length when writing the network. More...
 
const PositionVectorgetLaneShape (int i) const
 Returns the shape of the nth lane. More...
 
void setLaneSpreadFunction (LaneSpreadFunction spread)
 (Re)sets how the lanes lateral offset shall be computed More...
 
LaneSpreadFunction getLaneSpreadFunction () const
 Returns how this edge's lanes' lateral offset is computed. More...
 
bool splitGeometry (NBEdgeCont &ec, NBNodeCont &nc)
 Splits this edge at geometry points. More...
 
void reduceGeometry (const double minDist)
 Removes points with a distance lesser than the given. More...
 
void checkGeometry (const double maxAngle, const double minRadius, bool fix)
 Check the angles of successive geometry segments. More...
 
Setting/getting special types

Marks this edge as a macroscopic connector

void setAsMacroscopicConnector ()
 
bool isMacroscopicConnector () const
 Returns whether this edge was marked as a macroscopic connector. More...
 
void setIsInnerEdge ()
 Marks this edge being within an intersection. More...
 
bool isInnerEdge () const
 Returns whether this edge was marked as being within an intersection. More...
 

Static Public Member Functions

static bool connections_sorter (const Connection &c1, const Connection &c2)
 connections_sorter sort by fromLane, toEdge and toLane More...
 
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 Public Attributes

static const double ANGLE_LOOKAHEAD = 10.0
 the distance at which to take the default angle More...
 
static const double UNSPECIFIED_CONTPOS = -1
 unspecified internal junction position More...
 
static const int UNSPECIFIED_INTERNAL_LANE_INDEX = -1
 internal lane computation not yet done More...
 
static const double UNSPECIFIED_LOADED_LENGTH = -1
 no length override given More...
 
static const double UNSPECIFIED_OFFSET = 0
 unspecified lane offset More...
 
static const double UNSPECIFIED_SIGNAL_OFFSET = -1
 unspecified signal offset More...
 
static const double UNSPECIFIED_SPEED = -1
 unspecified lane speed More...
 
static const double UNSPECIFIED_VISIBILITY_DISTANCE = -1
 unspecified foe visibility for connections More...
 
static const double UNSPECIFIED_WIDTH = -1
 unspecified lane width More...
 

Protected Attributes

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

Private Member Functions

void addRestrictedLane (double width, SUMOVehicleClass vclass)
 add a lane of the given width, restricted to the given class and shift existing connections More...
 
void addStraightConnections (const EdgeVector *outgoing, const std::vector< int > &availableLanes, const std::vector< int > *priorities)
 add some straight connections More...
 
void computeAngle ()
 computes the angle of this edge and stores it in myAngle More...
 
PositionVector computeLaneShape (int lane, double offset) const
 Computes the shape for the given lane. More...
 
void computeLaneShapes ()
 compute lane shapes More...
 
void divideOnEdges (const EdgeVector *outgoing)
 divides the lanes on the outgoing edges More...
 
void divideSelectedLanesOnEdges (const EdgeVector *outgoing, const std::vector< int > &availableLanes, const std::vector< int > *priorities)
 divide selected lanes on edges More...
 
void init (int noLanes, bool tryIgnoreNodePositions, const std::string &origID)
 Initialization routines common to all constructors. More...
 
 NBEdge (const NBEdge &s)
 invalidated copy constructor More...
 
NBEdgeoperator= (const NBEdge &s)
 invalidated assignment operator More...
 
std::vector< int > * prepareEdgePriorities (const EdgeVector *outgoing)
 recomputes the edge priorities and manipulates them for a distribution of lanes on edges which is more like in real-life More...
 
void restoreRestrictedLane (SUMOVehicleClass vclass, std::vector< NBEdge::Lane > oldLanes, PositionVector oldGeometry, std::vector< NBEdge::Connection > oldConnections)
 restore a restricted lane More...
 
PositionVector startShapeAt (const PositionVector &laneShape, const NBNode *startNode, PositionVector nodeShape) const
 

Static Private Member Functions

static int computePrioritySum (const std::vector< int > &priorities)
 computes the sum of the given list's entries (sic!) More...
 
static double firstIntersection (const PositionVector &v1, const PositionVector &v2, double width2)
 compute the first intersection point between the given lane geometries considering their rspective widths More...
 

Private Attributes

bool myAmInnerEdge
 Information whether this is a junction-inner edge. More...
 
bool myAmMacroscopicConnector
 Information whether this edge is a (macroscopic) connector. More...
 
std::vector< ConnectionmyConnections
 List of connections to following edges. More...
 
std::vector< ConnectionmyConnectionsToDelete
 List of connections marked for delayed removal. More...
 
double myEndOffset
 This edges's offset to the intersection begin (will be applied to all lanes) More...
 
NBNodemyFrom
 The source and the destination node. More...
 
int myFromJunctionPriority
 The priority normalised for the node the edge is outgoing of. More...
 
PositionVector myGeom
 The geometry for the edge. More...
 
std::vector< LanemyLanes
 Lane information. More...
 
LaneSpreadFunction myLaneSpreadFunction
 The information about how to spread the lanes. More...
 
double myLaneWidth
 This width of this edge's lanes. More...
 
double myLength
 The length of the edge. More...
 
double myLoadedLength
 An optional length to use (-1 if not valid) More...
 
NBEdgemyPossibleTurnDestination
 The edge that would be the turn destination if there was one. More...
 
int myPriority
 The priority of the edge. More...
 
double mySignalOffset
 the offset of a traffic light signal from the end of this edge (-1 for None) More...
 
std::vector< NBSignmySigns
 the street signs along this edge More...
 
double mySpeed
 The maximal speed. More...
 
EdgeBuildingStep myStep
 The building step. More...
 
std::string myStreetName
 The street name (or whatever arbitrary string you wish to attach) More...
 
std::vector< TLSDisabledConnectionmyTLSDisabledConnections
 vector with the disabled connections More...
 
NBNodemyTo
 
int myToJunctionPriority
 The priority normalised for the node the edge is incoming in. More...
 
NBEdgemyTurnDestination
 The turn destination edge (if a connection exists) More...
 
std::string myType
 The type of the edge. More...
 
double myStartAngle
 The angles of the edge. More...
 
double myEndAngle
 
double myTotalAngle
 
PositionVector myFromBorder
 intersection borders (because the node shape might be invalid) More...
 
PositionVector myToBorder
 

Friends

class GNEEdge
 
class GNEJunction
 
class GNELane
 
class NBEdgeCont
 

Setting and getting connections

bool addEdge2EdgeConnection (NBEdge *dest)
 Adds a connection to another edge. More...
 
bool addLane2LaneConnection (int fromLane, NBEdge *dest, int toLane, Lane2LaneInfoType type, bool mayUseSameDestination=false, bool mayDefinitelyPass=false, bool keepClear=true, double contPos=UNSPECIFIED_CONTPOS, double visibility=UNSPECIFIED_VISIBILITY_DISTANCE, double speed=UNSPECIFIED_SPEED, const PositionVector &customShape=PositionVector::EMPTY)
 Adds a connection between the specified this edge's lane and an approached one. More...
 
bool addLane2LaneConnections (int fromLane, NBEdge *dest, int toLane, int no, Lane2LaneInfoType type, bool invalidatePrevious=false, bool mayDefinitelyPass=false)
 Builds no connections starting at the given lanes. More...
 
bool setConnection (int lane, NBEdge *destEdge, int destLane, Lane2LaneInfoType type, bool mayUseSameDestination=false, bool mayDefinitelyPass=false, bool keepClear=true, double contPos=UNSPECIFIED_CONTPOS, double visibility=UNSPECIFIED_VISIBILITY_DISTANCE, double speed=UNSPECIFIED_SPEED, const PositionVector &customShape=PositionVector::EMPTY)
 Adds a connection to a certain lane of a certain edge. More...
 
void insertConnection (NBEdge::Connection connection)
 insert a previously created NBEdge::connection More...
 
std::vector< ConnectiongetConnectionsFromLane (int lane) const
 Returns connections from a given lane. More...
 
Connection getConnection (int fromLane, const NBEdge *to, int toLane) const
 Returns the specified connection This method goes through "myConnections" and returns the specified one. More...
 
ConnectiongetConnectionRef (int fromLane, const NBEdge *to, int toLane)
 Returns reference to the specified connection This method goes through "myConnections" and returns the specified one. More...
 
bool hasConnectionTo (NBEdge *destEdge, int destLane, int fromLane=-1) const
 Retrieves info about a connection to a certain lane of a certain edge. More...
 
bool isConnectedTo (const NBEdge *e) const
 Returns the information whethe a connection to the given edge has been added (or computed) More...
 
const std::vector< Connection > & getConnections () const
 Returns the connections. More...
 
std::vector< Connection > & getConnections ()
 Returns the connections. More...
 
const EdgeVectorgetConnectedSorted ()
 Returns the list of outgoing edges without the turnaround sorted in clockwise direction. More...
 
EdgeVector getConnectedEdges () const
 Returns the list of outgoing edges unsorted. More...
 
EdgeVector getIncomingEdges () const
 Returns the list of incoming edges unsorted. More...
 
std::vector< int > getConnectionLanes (NBEdge *currentOutgoing) const
 Returns the list of lanes that may be used to reach the given edge. More...
 
void sortOutgoingConnectionsByAngle ()
 sorts the outgoing connections by their angle relative to their junction More...
 
void sortOutgoingConnectionsByIndex ()
 sorts the outgoing connections by their from-lane-index and their to-lane-index More...
 
void remapConnections (const EdgeVector &incoming)
 Remaps the connection in a way that allows the removal of it. More...
 
void removeFromConnections (NBEdge *toEdge, int fromLane=-1, int toLane=-1, bool tryLater=false, const bool adaptToLaneRemoval=false)
 Removes the specified connection(s) More...
 
bool removeFromConnections (NBEdge::Connection connectionToRemove)
 remove an existent connection of edge More...
 
void invalidateConnections (bool reallowSetting=false)
 invalidate current connections of edge More...
 
void replaceInConnections (NBEdge *which, NBEdge *by, int laneOff)
 replace in current connections of edge More...
 
void replaceInConnections (NBEdge *which, const std::vector< NBEdge::Connection > &origConns)
 replace in current connections of edge More...
 
void copyConnectionsFrom (NBEdge *src)
 copy connections from antoher edge More...
 
void shiftToLanesToEdge (NBEdge *to, int laneOff)
 modifify the toLane for all connections to the given edge More...
 
void moveConnectionToLeft (int lane)
 
void moveConnectionToRight (int lane)
 
bool canMoveConnection (const Connection &con, int newFromLane) const
 whether the connection can originate on newFromLane More...
 

Detailed Description

The representation of a single edge during network building.

Definition at line 70 of file NBEdge.h.

Member Enumeration Documentation

◆ EdgeBuildingStep

Current state of the edge within the building process.

As the network is build in a cascaded way, considering loaded information, a counter holding the current step is needed. This is done by using this enumeration.

Enumerator
INIT_REJECT_CONNECTIONS 

The edge has been loaded and connections shall not be added.

INIT 

The edge has been loaded, nothing is computed yet.

EDGE2EDGES 

The relationships between edges are computed/loaded.

LANES2EDGES 

Lanes to edges - relationships are computed/loaded.

LANES2LANES_RECHECK 

Lanes to lanes - relationships are computed; should be recheked.

LANES2LANES_DONE 

Lanes to lanes - relationships are computed; no recheck is necessary/wished.

LANES2LANES_USER 

Lanes to lanes - relationships are loaded; no recheck is necessary/wished.

Definition at line 87 of file NBEdge.h.

◆ JunctionPriority

junction priority values set by setJunctionPriority

Enumerator
MINOR_ROAD 
PRIORITY_ROAD 
ROUNDABOUT 

Definition at line 280 of file NBEdge.h.

◆ Lane2LaneInfoType

Modes of setting connections between lanes.

Enumerator
L2L_COMPUTED 

The connection was computed.

L2L_USER 

The connection was given by the user.

L2L_VALIDATED 

The connection was computed and validated.

Definition at line 108 of file NBEdge.h.

Constructor & Destructor Documentation

◆ NBEdge() [1/4]

NBEdge::NBEdge ( const std::string &  id,
NBNode from,
NBNode to,
std::string  type,
double  speed,
int  nolanes,
int  priority,
double  width,
double  offset,
const std::string &  streetName = "",
LaneSpreadFunction  spread = LANESPREAD_RIGHT 
)

Constructor.

Use this if no edge geometry is given.

Parameters
[in]idThe id of the edge
[in]fromThe node the edge starts at
[in]toThe node the edge ends at
[in]typeThe type of the edge (my be =="")
[in]speedThe maximum velocity allowed on this edge
[in]nolanesThe number of lanes this edge has
[in]priorityThis edge's priority
[in]widthThis edge's lane width
[in]offsetAdditional offset to the destination node
[in]streetNameThe street name (need not be unique)
[in]spreadHow the lateral offset of the lanes shall be computed
See also
init
LaneSpreadFunction

Definition at line 251 of file NBEdge.cpp.

References init().

Referenced by splitGeometry().

◆ NBEdge() [2/4]

NBEdge::NBEdge ( const std::string &  id,
NBNode from,
NBNode to,
std::string  type,
double  speed,
int  nolanes,
int  priority,
double  width,
double  offset,
PositionVector  geom,
const std::string &  streetName = "",
const std::string &  origID = "",
LaneSpreadFunction  spread = LANESPREAD_RIGHT,
bool  tryIgnoreNodePositions = false 
)

Constructor.

Use this if the edge's geometry is given.

Parameters
[in]idThe id of the edge
[in]fromThe node the edge starts at
[in]toThe node the edge ends at
[in]typeThe type of the edge (may be =="")
[in]speedThe maximum velocity allowed on this edge
[in]nolanesThe number of lanes this edge has
[in]priorityThis edge's priority
[in]widthThis edge's lane width
[in]offsetAdditional offset to the destination node
[in]geomThe edge's geomatry
[in]streetNameThe street name (need not be unique)
[in]origIDThe original ID in the source network (need not be unique)
[in]spreadHow the lateral offset of the lanes shall be computed
[in]tryIgnoreNodePositionsDoes not add node geometries if geom.size()>=2
See also
init
LaneSpreadFunction

Definition at line 274 of file NBEdge.cpp.

References init().

◆ NBEdge() [3/4]

NBEdge::NBEdge ( const std::string &  id,
NBNode from,
NBNode to,
NBEdge tpl,
const PositionVector geom = PositionVector(),
int  numLanes = -1 
)

Constructor.

Use this to copy attribuets from another edge

Parameters
[in]idThe id of the edge
[in]fromThe node the edge starts at
[in]toThe node the edge ends at
[in]tplThe template edge to copy attributes from
[in]geomThe geometry to use (may be empty)
[in]numLanesThe number of lanes of the new edge (copy from tpl by default)

Definition at line 299 of file NBEdge.cpp.

References getLaneSpeed(), getNumLanes(), getPermissions(), init(), MIN2(), myGeom, myLanes, myTo, setEndOffset(), setLaneWidth(), setPermissions(), and setSpeed().

◆ ~NBEdge()

NBEdge::~NBEdge ( )

Destructor.

Definition at line 469 of file NBEdge.cpp.

◆ NBEdge() [4/4]

NBEdge::NBEdge ( const NBEdge s)
private

invalidated copy constructor

Member Function Documentation

◆ addBikeLane()

void NBEdge::addBikeLane ( double  width)

add a bicycle lane of the given width and shift existing connctions

Definition at line 3164 of file NBEdge.cpp.

References addRestrictedLane(), and SVC_BICYCLE.

Referenced by getTypeID(), NIImporter_OpenStreetMap::insertEdge(), and NIXMLEdgesHandler::myEndElement().

◆ addCrossingPointsAsIncomingWithGivenOutgoing()

void NBEdge::addCrossingPointsAsIncomingWithGivenOutgoing ( NBEdge o,
PositionVector into 
)

add crossing points as incoming with given outgoing

Referenced by getTypeID().

◆ addEdge2EdgeConnection()

bool NBEdge::addEdge2EdgeConnection ( NBEdge dest)

Adds a connection to another edge.

If the given edge does not start at the node this edge ends on, false is returned.

All other cases return true. Though, a connection may not been added if this edge is in step "INIT_REJECT_CONNECTIONS". Also, this method assures that a connection to an edge is set only once, no multiple connections to next edge are stored.

After a first connection to an edge was set, the process step is set to "EDGE2EDGES".

Note
Passing 0 implicitly removes all existing connections
Parameters
[in]destThe connection's destination edge
Returns
Whether the connection was valid

Definition at line 897 of file NBEdge.cpp.

References EDGE2EDGES, INIT_REJECT_CONNECTIONS, invalidateConnections(), myConnections, myFrom, myStep, and myTo.

Referenced by addLane2LaneConnection(), NIImporter_OpenStreetMap::RelationHandler::applyRestriction(), getLaneSpreadFunction(), NBEdgeCont::joinSameNodeConnectingEdges(), NIXMLConnectionsHandler::myStartElement(), NIImporter_VISUM::parse_Turns(), and remapConnections().

◆ addGeometryPoint()

void NBEdge::addGeometryPoint ( int  index,
const Position p 
)

Adds a further geometry point.

Some importer do not know an edge's geometry when it is initialised. This method allows to insert further geometry points after the edge has been built.

Parameters
[in]indexThe position at which the point shall be added
[in]pThe point to add

Definition at line 790 of file NBEdge.cpp.

References PositionVector::insert_noDoublePos(), and myGeom.

Referenced by getGeometry(), and NIImporter_VISUM::parse_EdgePolys().

◆ addLane()

void NBEdge::addLane ( int  index,
bool  recompute = true 
)

◆ addLane2LaneConnection()

bool NBEdge::addLane2LaneConnection ( int  fromLane,
NBEdge dest,
int  toLane,
Lane2LaneInfoType  type,
bool  mayUseSameDestination = false,
bool  mayDefinitelyPass = false,
bool  keepClear = true,
double  contPos = UNSPECIFIED_CONTPOS,
double  visibility = UNSPECIFIED_VISIBILITY_DISTANCE,
double  speed = UNSPECIFIED_SPEED,
const PositionVector customShape = PositionVector::EMPTY 
)

Adds a connection between the specified this edge's lane and an approached one.

If the given edge does not start at the node this edge ends on, false is returned.

All other cases return true. Though, a connection may not been added if this edge is in step "INIT_REJECT_CONNECTIONS". Before the lane-to-lane connection is set, a connection between edges is established using "addEdge2EdgeConnection". Then, "setConnection" is called for inserting the lane-to-lane connection.

Parameters
[in]fromLaneThe connection's starting lane (of this edge)
[in]destThe connection's destination edge
[in]toLaneThe connection's destination lane
[in]typeThe connections's type
[in]mayUseSameDestinationWhether this connection may be set though connecting an already connected lane
[in]mayDefinitelyPassWhether this connection is definitely undistrubed (special case for on-ramps)
Returns
Whether the connection was added / exists
See also
addEdge2EdgeConnection
setConnection
Todo:
Check difference between "setConnection" and "addLane2LaneConnection"

Definition at line 921 of file NBEdge.cpp.

References addEdge2EdgeConnection(), INIT_REJECT_CONNECTIONS, myFrom, myStep, myTo, and setConnection().

Referenced by NIImporter_SUMO::_loadNetwork(), addLane2LaneConnections(), NIVissimConnection::buildEdgeConnections(), getLaneSpreadFunction(), NBNodeCont::joinNodeClusters(), NIImporter_OpenDrive::loadNetwork(), moveOutgoingConnectionsFrom(), NIXMLEdgesHandler::myEndElement(), NIImporter_VISUM::parse_LanesConnections(), NIXMLConnectionsHandler::parseLaneBound(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), and NBEdgeCont::splitAt().

◆ addLane2LaneConnections()

bool NBEdge::addLane2LaneConnections ( int  fromLane,
NBEdge dest,
int  toLane,
int  no,
Lane2LaneInfoType  type,
bool  invalidatePrevious = false,
bool  mayDefinitelyPass = false 
)

Builds no connections starting at the given lanes.

If "invalidatePrevious" is true, a call to "invalidateConnections(true)" is done. This method loops through the given connections to set, calling "addLane2LaneConnection" for each.

Parameters
[in]fromLaneThe first of the connections' starting lanes (of this edge)
[in]destThe connections' destination edge
[in]toLaneThe first of the connections' destination lanes
[in]noThe number of connections to set
[in]typeThe connections' type
[in]invalidatePreviousWhether previously set connection shall be deleted
[in]mayDefinitelyPassWhether these connections are definitely undistrubed (special case for on-ramps)
Returns
Whether the connections were added / existed
See also
addLane2LaneConnection
invalidateConnections

Definition at line 947 of file NBEdge.cpp.

References addLane2LaneConnection(), and invalidateConnections().

Referenced by NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBNode::computeLanes2Lanes(), and getLaneSpreadFunction().

◆ addRestrictedLane()

void NBEdge::addRestrictedLane ( double  width,
SUMOVehicleClass  vclass 
)
private

◆ addSidewalk()

void NBEdge::addSidewalk ( double  width)

add a pedestrian sidewalk of the given width and shift existing connctions

Definition at line 3152 of file NBEdge.cpp.

References addRestrictedLane(), and SVC_PEDESTRIAN.

Referenced by getTypeID(), NBEdgeCont::guessSidewalks(), NIImporter_OpenStreetMap::insertEdge(), and NIXMLEdgesHandler::myEndElement().

◆ addSign()

void NBEdge::addSign ( NBSign  sign)
inline

add Sign

Definition at line 1209 of file NBEdge.h.

References cutAtIntersection(), mySigns, resetNodeBorder(), and setNodeBorder().

Referenced by NBEdgeCont::generateStreetSigns().

◆ addStraightConnections()

void NBEdge::addStraightConnections ( const EdgeVector outgoing,
const std::vector< int > &  availableLanes,
const std::vector< int > *  priorities 
)
private

◆ addTo()

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

Adds this object to the given container.

Parameters

Definition at line 128 of file Named.h.

References Named::StoringVisitor::add().

◆ allowVehicleClass()

void NBEdge::allowVehicleClass ( int  lane,
SUMOVehicleClass  vclass 
)

set allowed class for the given lane or for all lanes if -1 is given

Definition at line 2872 of file NBEdge.cpp.

References myLanes.

Referenced by NINavTeqHelper::addVehicleClasses(), NINavTeqHelper::addVehicleClassesV6(), getTypeID(), and preferVehicleClass().

◆ append()

◆ appendTurnaround()

void NBEdge::appendTurnaround ( bool  noTLSControlled,
bool  checkPermissions 
)

Add a connection to the previously computed turnaround, if wished.

If a turning direction exists (myTurnDestination!=0) and either the edge is not controlled by a tls or noTLSControlled is false, a connection to the edge stored in myTurnDestination is added (from the leftmost lane of this edge to the leftmost lane of myTurnDestination).

Parameters
[in]noTLSControlledWhether the turnaround shall not be connected if this edge is controlled by a tls

Definition at line 2422 of file NBEdge.cpp.

References getNumLanes(), getPermissions(), NBNode::getType(), NBNode::isTLControlled(), L2L_VALIDATED, myLanes, myTo, myTurnDestination, NODETYPE_RAIL_CROSSING, setConnection(), and SVC_PEDESTRIAN.

Referenced by getTypeID().

◆ buildInnerEdges()

◆ canMoveConnection()

bool NBEdge::canMoveConnection ( const Connection con,
int  newFromLane 
) const
private

whether the connection can originate on newFromLane

Definition at line 1357 of file NBEdge.cpp.

References getPermissions(), SVC_PEDESTRIAN, NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.

Referenced by moveConnectionToLeft(), and moveConnectionToRight().

◆ checkGeometry()

void NBEdge::checkGeometry ( const double  maxAngle,
const double  minRadius,
bool  fix 
)

Check the angles of successive geometry segments.

Parameters
[in]maxAngleThe maximum angle allowed
[in]minRadiusThe minimum turning radius allowed at the start and end
[in]fixWhether to prune geometry points to avoid sharp turns at start and end

Definition at line 851 of file NBEdge.cpp.

References PositionVector::angleAt2D(), GeomHelper::angleDiff(), DEG2RAD, Named::getID(), M_PI, myGeom, RAD2DEG, toString(), WRITE_MESSAGE, and WRITE_WARNING.

Referenced by getLaneSpreadFunction().

◆ clearControllingTLInformation()

void NBEdge::clearControllingTLInformation ( )

clears tlID for all connections

Definition at line 2579 of file NBEdge.cpp.

References myConnections.

Referenced by getTypeID().

◆ clearParameter()

void Parameterised::clearParameter ( )
inherited

Clears the parameter map.

Definition at line 97 of file Parameterised.cpp.

References Parameterised::myMap.

◆ computeAngle()

◆ computeEdge2Edges()

bool NBEdge::computeEdge2Edges ( bool  noLeftMovers)

computes the edge (step1: computation of approached edges)

Definition at line 1874 of file NBEdge.cpp.

References EDGE2EDGES, NBNode::getOutgoingEdges(), NBNode::isLeftMover(), myConnections, myStep, and myTo.

Referenced by getTypeID().

◆ computeEdgeShape()

void NBEdge::computeEdgeShape ( )

Recomputeds the lane shapes to terminate at the node shape For every lane the intersection with the fromNode and toNode is calculated and the lane shorted accordingly. The edge length is then set to the average of all lane lenghts (which may differ). This average length is used as the lane length when writing the network.

Note
All lanes of an edge in a sumo net must have the same nominal length but may differ in actual geomtric length.
Depends on previous call to NBNodeCont::computeNodeShapes

Definition at line 696 of file NBEdge.cpp.

References computeAngle(), cutAtIntersection(), myLanes, and myLength.

Referenced by getGeometry().

◆ computeLanes2Edges()

bool NBEdge::computeLanes2Edges ( )

computes the edge, step2: computation of which lanes approach the edges)

Definition at line 1893 of file NBEdge.cpp.

References divideOnEdges(), EDGE2EDGES, getConnectedSorted(), LANES2EDGES, myConnections, and myStep.

Referenced by getTypeID().

◆ computeLaneShape()

PositionVector NBEdge::computeLaneShape ( int  lane,
double  offset 
) const
private

Computes the shape for the given lane.

Definition at line 1697 of file NBEdge.cpp.

References getLaneID(), PositionVector::move2side(), myGeom, and WRITE_WARNING.

Referenced by computeLaneShapes().

◆ computeLaneShapes()

◆ computePrioritySum()

int NBEdge::computePrioritySum ( const std::vector< int > &  priorities)
staticprivate

computes the sum of the given list's entries (sic!)

Definition at line 2412 of file NBEdge.cpp.

Referenced by divideSelectedLanesOnEdges().

◆ connections_sorter()

bool NBEdge::connections_sorter ( const Connection c1,
const Connection c2 
)
static

connections_sorter sort by fromLane, toEdge and toLane

Definition at line 3055 of file NBEdge.cpp.

References NBEdge::Connection::fromLane, NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.

Referenced by sortOutgoingConnectionsByIndex().

◆ copyConnectionsFrom()

void NBEdge::copyConnectionsFrom ( NBEdge src)

copy connections from antoher edge

Definition at line 1350 of file NBEdge.cpp.

References myConnections, and myStep.

Referenced by getConnections(), and NBEdgeCont::splitAt().

◆ cutAtIntersection()

◆ decLaneNo()

void NBEdge::decLaneNo ( int  by)

decrement lane

Definition at line 2853 of file NBEdge.cpp.

References deleteLane(), LANES2LANES_USER, myLanes, and myStep.

Referenced by getTypeID(), and NIXMLEdgesHandler::myEndElement().

◆ declareConnectionsAsLoaded()

void NBEdge::declareConnectionsAsLoaded ( EdgeBuildingStep  step = LANES2LANES_USER)
inline

declares connections as fully loaded. This is needed to avoid recomputing connections if an edge has no connections intentionally.

Definition at line 1191 of file NBEdge.h.

References buildInnerEdges(), and myStep.

Referenced by NIImporter_SUMO::_loadNetwork(), NBNodeCont::joinNodeClusters(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), and GNEEdge::setAttribute().

◆ deleteLane()

void NBEdge::deleteLane ( int  index,
bool  recompute = true 
)

◆ disableConnection4TLS()

void NBEdge::disableConnection4TLS ( int  fromLane,
NBEdge toEdge,
int  toLane 
)

◆ disallowVehicleClass()

void NBEdge::disallowVehicleClass ( int  lane,
SUMOVehicleClass  vclass 
)

set disallowed class for the given lane or for all lanes if -1 is given

Definition at line 2885 of file NBEdge.cpp.

References myLanes.

Referenced by addRestrictedLane(), getTypeID(), and NIImporter_DlrNavteq::EdgesHandler::report().

◆ dismissVehicleClassInformation()

void NBEdge::dismissVehicleClassInformation ( )

dimiss vehicle class information

Definition at line 3046 of file NBEdge.cpp.

References myLanes, and SVCAll.

Referenced by NBEdgeCont::insert(), and isInnerEdge().

◆ divideOnEdges()

void NBEdge::divideOnEdges ( const EdgeVector outgoing)
private

◆ divideSelectedLanesOnEdges()

void NBEdge::divideSelectedLanesOnEdges ( const EdgeVector outgoing,
const std::vector< int > &  availableLanes,
const std::vector< int > *  priorities 
)
private

◆ expandableBy()

bool NBEdge::expandableBy ( NBEdge possContinuation,
std::string &  reason 
) const

Check if Node is expandable.

!! if (myAllowedOnLanes!=possContinuation->myAllowedOnLanes || myNotAllowedOnLanes!=possContinuation->myNotAllowedOnLanes) { return false; }

Definition at line 2637 of file NBEdge.cpp.

References EDGE2EDGES, NBNode::FORWARD, getConnectedEdges(), getConnectionLanes(), getFirstNonPedestrianLaneIndex(), getPriority(), INIT, INIT_REJECT_CONNECTIONS, LANES2EDGES, LANES2LANES_DONE, LANES2LANES_RECHECK, LANES2LANES_USER, MAX2(), myConnections, myFrom, myLanes, myLaneSpreadFunction, mySpeed, myStep, myTo, and toString().

Referenced by getTypeID().

◆ extendGeometryAtNode()

void NBEdge::extendGeometryAtNode ( const NBNode node,
double  maxExtent 
)

◆ firstIntersection()

double NBEdge::firstIntersection ( const PositionVector v1,
const PositionVector v2,
double  width2 
)
staticprivate

compute the first intersection point between the given lane geometries considering their rspective widths

Definition at line 1565 of file NBEdge.cpp.

References PositionVector::intersectsAtLengths2D(), PositionVector::length(), MIN2(), PositionVector::move2side(), and POSITION_EPS.

Referenced by buildInnerEdges().

◆ getAngleAtNode()

double NBEdge::getAngleAtNode ( const NBNode *const  node) const

Returns the angle of the edge's geometry at the given node.

The angle is signed, regards direction, and starts at 12 o'clock (north->south), proceeds positive clockwise.

Parameters
[in]nodeThe node for which the edge's angle shall be returned
Returns
This edge's angle at the given node

Definition at line 1611 of file NBEdge.cpp.

References PositionVector::angleAt2D(), GeomHelper::legacyDegree(), myFrom, myGeom, and myTo.

Referenced by NBNode::computeLanes2Lanes(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NBRampsComputer::fulfillsRampConstraints(), NBNode::geometryLike(), NBNodesEdgesSorter::edge_by_junction_angle_sorter::getConvAngle(), getCrossingAngle(), NBNode::getDirection(), getTypeID(), NBEdgeCont::guessRoundabouts(), NBNode::isLeftMover(), NBNodeCont::joinJunctions(), NBRequest::laneConflict(), and NBEdgePriorityComputer::setPriorityJunctionPriorities().

◆ getAngleAtNodeToCenter()

double NBEdge::getAngleAtNodeToCenter ( const NBNode *const  node) const

Returns the angle of from the node shape center to where the edge meets the node shape.

The angle is signed, disregards direction, and starts at 12 o'clock (north->south), proceeds positive clockwise.

Parameters
[in]nodeThe node for which the edge's angle shall be returned
Returns
This edge's angle at the given node shape

Definition at line 1623 of file NBEdge.cpp.

References myEndAngle, myFrom, myStartAngle, and myTo.

Referenced by getTypeID(), and NBContHelper::edge_by_angle_to_nodeShapeCentroid_sorter::operator()().

◆ getCCWBoundaryLine()

PositionVector NBEdge::getCCWBoundaryLine ( const NBNode n) const

get the outer boundary of this edge when going counter-clock-wise around the given node

Definition at line 2617 of file NBEdge.cpp.

References NBNode::BACKWARD, NBNode::FORWARD, getFirstAllowedLaneIndex(), getLaneWidth(), PositionVector::move2side(), myFrom, and myLanes.

Referenced by NBEdgeCont::checkOverlap(), and getTypeID().

◆ getConnectedEdges()

◆ getConnectedSorted()

const EdgeVector * NBEdge::getConnectedSorted ( )

Returns the list of outgoing edges without the turnaround sorted in clockwise direction.

Returns
Connected edges, sorted clockwise

Definition at line 1097 of file NBEdge.cpp.

References NBNode::getOutgoingEdges(), myConnections, myConnectionsToDelete, myTo, and myTurnDestination.

Referenced by computeLanes2Edges(), and getConnections().

◆ getConnection()

NBEdge::Connection NBEdge::getConnection ( int  fromLane,
const NBEdge to,
int  toLane 
) const

Returns the specified connection This method goes through "myConnections" and returns the specified one.

See also
NBEdge::Connection

Definition at line 1049 of file NBEdge.cpp.

References Named::getID(), myConnections, and toString().

Referenced by NBRequest::getFoesString(), getLaneSpreadFunction(), NBRequest::getResponseString(), and NBRequest::mustBrake().

◆ getConnectionLanes()

std::vector< int > NBEdge::getConnectionLanes ( NBEdge currentOutgoing) const

Returns the list of lanes that may be used to reach the given edge.

Returns
Lanes approaching the given edge

Definition at line 1159 of file NBEdge.cpp.

References myConnections, and myTurnDestination.

Referenced by NBNode::computeLanes2Lanes(), NBNode::ApproachingDivider::execute(), expandableBy(), and getConnections().

◆ getConnectionRef()

NBEdge::Connection & NBEdge::getConnectionRef ( int  fromLane,
const NBEdge to,
int  toLane 
)

Returns reference to the specified connection This method goes through "myConnections" and returns the specified one.

See also
NBEdge::Connection

Definition at line 1063 of file NBEdge.cpp.

References Named::getID(), myConnections, and toString().

Referenced by getLaneSpreadFunction(), and GNEConnection::getNBEdgeConnection().

◆ getConnections() [1/2]

◆ getConnections() [2/2]

◆ getConnectionsFromLane()

std::vector< NBEdge::Connection > NBEdge::getConnectionsFromLane ( int  lane) const

Returns connections from a given lane.

This method goes through "myConnections" and copies those which are starting at the given lane.

Parameters
[in]laneThe lane which connections shall be returned
Returns
The connections from the given lane
See also
NBEdge::Connection

Definition at line 1037 of file NBEdge.cpp.

References myConnections.

Referenced by NIVissimTL::NIVissimTLSignal::addTo(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedTLDef::collectLinks(), NBOwnTLDef::computeLogicAndConts(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), GNELane::drawLane2LaneConnections(), GNELane::drawLinkNo(), GNELane::drawTLSLinkNo(), getLaneSpreadFunction(), GNEConnectorFrame::handleLaneClick(), GNEConnectorFrame::initTargets(), moveOutgoingConnectionsFrom(), NBRequest::writeCrossingResponse(), and NBRequest::writeLaneResponse().

◆ getCrossingAngle()

double NBEdge::getCrossingAngle ( NBNode node)

return the angle for computing pedestrian crossings at the given node

Definition at line 3111 of file NBEdge.cpp.

References gDebugFlag1, getAngleAtNode(), getFromNode(), and Named::getID().

Referenced by NBNode::checkCrossing(), and getLanes().

◆ getCWBoundaryLine()

PositionVector NBEdge::getCWBoundaryLine ( const NBNode n) const

get the outer boundary of this edge when going clock-wise around the given node

Definition at line 2597 of file NBEdge.cpp.

References NBNode::BACKWARD, NBNode::FORWARD, getFirstAllowedLaneIndex(), getLaneWidth(), PositionVector::move2side(), myFrom, and myLanes.

Referenced by getTypeID().

◆ getDouble()

double Parameterised::getDouble ( const std::string &  key,
const double  defaultValue 
) const
inherited

Returns the value for a given key converted to a double.

Parameters
[in]keyThe key to ask for
[in]defaultValueThe default value to return if no value is stored under the key
Returns
The value stored under the key

Definition at line 87 of file Parameterised.cpp.

References TplConvert::_2double(), and Parameterised::myMap.

Referenced by MSDevice_Battery::buildVehicleDevices().

◆ getEndAngle()

double NBEdge::getEndAngle ( ) const
inline

Returns the angle at the end of the edge (relative to the node shape center) The angle is computed in computeAngle()

Returns
This edge's end angle

Definition at line 451 of file NBEdge.h.

References getShapeEndAngle(), getShapeStartAngle(), and myEndAngle.

Referenced by NBContHelper::relative_incoming_edge_sorter::operator()(), and NBNode::rightTurnConflict().

◆ getEndOffset() [1/2]

double NBEdge::getEndOffset ( ) const
inline

Returns the offset to the destination node.

Returns
The offset to the destination node

Definition at line 547 of file NBEdge.h.

References myEndOffset.

Referenced by NIImporter_SUMO::_loadNetwork(), buildInnerEdges(), GNEEdge::getAttribute(), getEndOffset(), and NWWriter_XML::writeEdgesAndConnections().

◆ getEndOffset() [2/2]

double NBEdge::getEndOffset ( int  lane) const

Returns the offset to the destination node a the specified lane.

Returns
The offset to the destination node

Definition at line 2944 of file NBEdge.cpp.

References getEndOffset(), myLanes, and UNSPECIFIED_OFFSET.

◆ getFinalLength()

◆ getFirstAllowedLaneIndex()

int NBEdge::getFirstAllowedLaneIndex ( int  direction) const

return the first lane that permits at least 1 vClass or the last lane if search direction of there is no such lane

Parameters
[in]directionThe direction in which the lanes shall be checked

Definition at line 3084 of file NBEdge.cpp.

References NBNode::BACKWARD, NBNode::FORWARD, and myLanes.

Referenced by getCCWBoundaryLine(), getCWBoundaryLine(), and getLanes().

◆ getFirstNonPedestrianLane()

NBEdge::Lane NBEdge::getFirstNonPedestrianLane ( int  direction) const

get first non-pedestrian lane

Definition at line 3127 of file NBEdge.cpp.

References getFirstNonPedestrianLaneIndex(), Named::getID(), and myLanes.

Referenced by getLanes().

◆ getFirstNonPedestrianLaneIndex()

int NBEdge::getFirstNonPedestrianLaneIndex ( int  direction,
bool  exclusive = false 
) const

return the first lane with permissions other than SVC_PEDESTRIAN and 0

Parameters
[in]directionThe direction in which the lanes shall be checked
[in]exclusiveWhether lanes that allow pedestrians along with other classes shall be counted as non-pedestrian

Definition at line 3067 of file NBEdge.cpp.

References NBNode::BACKWARD, NBNode::FORWARD, myLanes, SVC_PEDESTRIAN, and SVCAll.

Referenced by NBTrafficLightDefinition::collectEdges(), NBNode::computeLanes2Lanes(), expandableBy(), getFirstNonPedestrianLane(), and getLanes().

◆ getFromNode()

NBNode* NBEdge::getFromNode ( ) const
inline

Returns the origin node of the edge.

Returns
The node this edge starts at

Definition at line 426 of file NBEdge.h.

References myFrom.

Referenced by NBLoadedSUMOTLDef::addConnection(), NIXMLConnectionsHandler::addCrossing(), NIVissimDisturbance::addToNode(), NBLoadedTLDef::addToSignalGroup(), NIXMLConnectionsHandler::addWalkingArea(), NBRampsComputer::buildOffRamp(), NBNode::buildWalkingAreas(), NBNode::checkCrossing(), NBEdgeCont::checkOverlap(), NBRampsComputer::computeRamps(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NIVissimDistrictConnection::dict_BuildDistricts(), NBRampsComputer::fulfillsRampConstraints(), NBNodeCont::generateNodeClusters(), NBNodesEdgesSorter::edge_by_junction_angle_sorter::getConvAngle(), getCrossingAngle(), NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt(), getFinalLength(), NWWriter_DlrNavteq::getGraphLength(), NIImporter_VISUM::getNamedEdgeContinuating(), NBPTStopCont::getReverseEdge(), NBNode::guessCrossings(), NBEdgeCont::guessOpposites(), NBEdgeCont::guessRoundabouts(), NBNodeCont::guessTLs(), NBOwnTLDef::hasCrossing(), NBEdgeCont::insert(), GNENet::insertEdge(), NBNode::isNearDistrict(), NBNodeCont::joinJunctions(), NBNodeCont::joinNodeClusters(), NBRequest::laneConflict(), NIImporter_ArcView::load(), NIXMLEdgesHandler::myEndElement(), NBContHelper::relative_outgoing_edge_sorter::operator()(), NBContHelper::edge_by_angle_to_nodeShapeCentroid_sorter::operator()(), NBNode::edge_by_direction_sorter::operator()(), NIImporter_VISUM::parse_Lanes(), NBEdgeCont::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBNodeCont::removeComponents(), NBNodeCont::removeIsolatedRoads(), NBEdgeCont::removeUnwishedEdges(), GNEEdge::setAttribute(), NIXMLEdgesHandler::setNodes(), GNEEdge::smoothShape(), GNEEdge::straightenElevation(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_DlrNavteq::writeLinksUnsplitted(), and NWWriter_OpenDrive::writeNetwork().

◆ getGeometry()

const PositionVector& NBEdge::getGeometry ( ) const
inline

Returns the geometry of the edge.

Returns
The edge's geometry

Definition at line 602 of file NBEdge.h.

References addGeometryPoint(), computeEdgeShape(), extendGeometryAtNode(), getInnerGeometry(), getLaneShape(), hasDefaultGeometry(), hasDefaultGeometryEndpointAtNode(), hasDefaultGeometryEndpoints(), myGeom, setGeometry(), setLaneSpreadFunction(), shiftPositionAtNode(), and shortenGeometryAtNode().

Referenced by NIXMLEdgesHandler::addEdge(), GNENet::addReversedEdge(), NIXMLEdgesHandler::addSplit(), NBNodeShapeComputer::badIntersection(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBEdgeCont::checkOverlap(), GNEEdge::commitShapeChange(), NBPTStopCont::computeCrossProductEdgePosition(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), GNEEdge::drawGL(), NBPTStopCont::findAccessEdgesForRailStops(), GNEEdge::getAttribute(), NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt(), NWWriter_DlrNavteq::getGraphLength(), GNEEdge::getSplitPos(), GNEEdge::getVertexIndex(), NBEdgeCont::ignoreFilterMatch(), GNEEdge::isInverted(), isNearEnough2BeJoined2(), GNEEdge::isValid(), NBRampsComputer::moveRampRight(), NIXMLEdgesHandler::myEndElement(), NBContHelper::relative_outgoing_edge_sorter::operator()(), NBContHelper::straightness_sorter::operator()(), NBContHelper::relative_incoming_edge_sorter::operator()(), NIImporter_VISUM::parse_Lanes(), NIImporter_OpenStreetMap::reconstructLayerElevation(), GNENet::remapEdge(), GNENet::replaceJunctionByGeometry(), GNEEdge::setAttribute(), GNEEdge::setEndpoint(), shiftPositionAtNode(), GNEEdge::smooth(), GNEEdge::smoothElevation(), NBEdgeCont::splitAt(), GNENet::splitEdge(), GNEEdge::straightenElevation(), GNEEdge::updateJunctionPosition(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_DlrNavteq::writeLinksUnsplitted(), and NWWriter_DlrNavteq::writeNodesUnsplitted().

◆ getID()

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

Returns the id.

Returns
The stored id

Definition at line 65 of file Named.h.

References Named::myID.

Referenced by NIImporter_SUMO::_loadNetwork(), MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaders(), LaneStoringVisitor::add(), MSPModel_Striping::add(), MSVehicleTransfer::add(), PCPolyContainer::add(), MSDetectorControl::add(), Named::StoringVisitor::add(), ShapeContainer::add(), IntermodalRouter< E, L, N, V >::addAccess(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), MSLane::addApproachingLane(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), NIXMLConnectionsHandler::addCrossing(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), RONet::addEdge(), NBParkingCont::addEdges2Keep(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), addRestrictedLane(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), ROVehicle::addStop(), MSRouteHandler::addStop(), MSVehicle::addStop(), MSNet::addStoppingPlace(), addStraightConnections(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), MSVehicle::addTraciStopAtStoppingPlace(), AGActivityTripWriter::addTrip(), NIXMLConnectionsHandler::addWalkingArea(), append(), NBPTStopCont::assignAndCreatNewPTStopAsNeeded(), NBPTStopCont::assignPTStopToEdgeOfClosestPlatform(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSTransportable::Stage_Waiting::beginEventOutput(), MSTransportable::Stage_Driving::beginEventOutput(), MSPModel_Striping::blockedAtDist(), MSLink::blockedAtTime(), MSLink::blockedByFoe(), NLEdgeControlBuilder::build(), NIVisumTL::build(), RODFNet::buildApproachList(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), NBNode::buildCrossings(), NBNode::buildCrossingsAndWalkingAreas(), NIImporter_VISUM::buildDistrictNode(), NLDetectorBuilder::buildE2Detector(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), GNETLSEditorFrame::buildIinternalLanes(), buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSSimpleTrafficLightLogic::changeStepAndDuration(), MSEdge::checkAndRegisterBiDirEdge(), MSLane::checkForPedestrians(), checkGeometry(), NBEdgeCont::checkGrade(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), NBEdgeCont::checkOverlap(), MSDevice_Battery::checkParam(), MSE2Collector::checkPositioning(), MSVehicle::checkRewindLinkLanes(), MSSwarmTrafficLightLogic::choosePolicy(), MSDevice_SSM::classifyEncounter(), NBTrafficLightLogic::closeBuilding(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedSUMOTLDef::collectEdges(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), computeAngle(), computeLaneShapes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNode::computeNodeShape(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSSOTLE2Sensors::countVehicles(), MSDevice_SSM::createEncounters(), GUINet::createTLWrapper(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSLane::detectPedestrianJunctionCollision(), NIVissimDistrictConnection::dict_BuildDistricts(), divideOnEdges(), divideSelectedLanesOnEdges(), MSTransportable::Stage_Waiting::endEventOutput(), MSTransportable::Stage_Driving::endEventOutput(), MSE3Collector::enter(), MSVehicle::enterLaneAtMove(), 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(), libsumo::Helper::findCloserLane(), MSDevice_SSM::findFoeConflictLane(), libsumo::Simulation::findIntermodalRoute(), MSDevice_SSM::findSurroundingVehicles(), MSDevice_SSM::flushConflicts(), NBTrafficLightDefinition::forbids(), NBRampsComputer::fulfillsRampConstraints(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSPModel_Striping::getArbitraryPath(), GNEConnection::getAttribute(), MSVehicle::getBackPosition(), MSVehicle::getBackPositionOnLane(), libsumo::Vehicle::getBestLanes(), NBOwnTLDef::getBestPair(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), getConnection(), getConnectionRef(), libsumo::TrafficLight::getControlledLinks(), getCrossingAngle(), RODFNet::getDetectorEdge(), libsumo::Lane::getEdgeID(), MSMeanData::getEdgeID(), getFirstNonPedestrianLane(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), libsumo::InductionLoop::getLaneID(), libsumo::LaneArea::getLaneID(), libsumo::Vehicle::getLaneID(), MSLane::getLastVehicleInformation(), MSVehicle::getLatOffset(), MSLane::getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLane::getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), libsumo::Lane::getLinks(), MSLane::getLinkTo(), MSTLLogicControl::TLSLogicVariants::getLogicInstantiatingOff(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSLane::getOppositePos(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIMEInductLoop::MyWrapper::getParameterWindow(), GUIVehicle::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), MSLane::getPartialBehind(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBPTStopCont::getReverseStop(), libsumo::Person::getRoadID(), libsumo::Vehicle::getRoadID(), libsumo::Vehicle::getRouteID(), MSNet::getStoppingPlaceID(), MSDevice_SSM::getUpstreamVehicles(), MSDevice_SSM::getVehiclesOnJunction(), MSTransportable::Stage_Driving::getWaitingDescription(), MSVehicleControl::getWaitingVehicle(), MSLink::getZipperSpeed(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBEdgeCont::guessSidewalks(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), MSLane::handleCollisionBetween(), NBEdgeCont::ignoreFilterMatch(), MSVehicle::ignoreRed(), MSDeterministicHiLevelTrafficLightLogic::init(), MSRailSignal::init(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), init(), MSE2Collector::initAuxiliaries(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NBEdgeCont::insert(), MSEdge::insertVehicle(), MSLane::integrateNewVehicle(), IntermodalNetwork< E, L, N, V >::IntermodalNetwork(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isDestination(), RODFNet::isFalseSource(), MSLane::isInsertionSuccess(), RODFNet::isSource(), MSSOTLTrafficLightLogic::isThresholdPassed(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), MSAbstractLaneChangeModel::laneChangeOutput(), MSE3Collector::leave(), MSE3Collector::leaveFront(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), MSPedestrianPushButton::loadCrossingEdgeMap(), NIImporter_OpenDrive::loadNetwork(), MSPedestrianPushButton::loadPushButtons(), NBEdge::MainDirections::MainDirections(), ODDistrictCont::makeDistricts(), MSE2Collector::makeVehicleInfo(), GNEJunction::markAsModified(), MSSOTLE2Sensors::meanVehiclesSpeed(), METriggeredCalibrator::METriggeredCalibrator(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), NBRampsComputer::moveRampRight(), MSPModel_Striping::PState::moveToNextLane(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), MSCalibrator::MSCalibrator(), MSChargingStation::MSChargingStation(), MSDevice_Battery::MSDevice_Battery(), MSE2Collector::MSE2Collector(), NBLoadedTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSCalibrator::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSPModel_Striping::nextBlocking(), MSDevice_BTreceiver::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSDevice_Bluelight::notifyEnter(), MSDevice_Example::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSTriggeredRerouter::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSE2Collector::notifyEnter(), MSDevice_SSM::notifyEnter(), MSDevice_Transportable::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_Bluelight::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE2Collector::notifyLeave(), MSDevice_SSM::notifyLeave(), MSDevice_Example::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), MSE2Collector::notifyMove(), MSDevice_SSM::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), GUIViewTraffic::onGamingClick(), GNEViewNet::onLeftBtnPress(), MSLink::opened(), 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()(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NLTriggerBuilder::parseAndBuildCalibrator(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSVehicle::planMove(), MSVehicle::planMoveInternal(), MSLane::planMovements(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), prepareEdgePriorities(), AGStreet::print(), MSDevice_SSM::processEncounters(), MSVehicle::processLinkAproaches(), MSVehicle::processNextStop(), TraCIServerAPI_Vehicle::processSet(), NIXMLNodesHandler::processTrafficLightDefinitions(), NWWriter_SUMO::prohibitionConnection(), MSDelayBasedTrafficLightLogic::proposeProlongation(), MSPModel_Striping::PState::PState(), NBEdgeCont::recheckLanes(), recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBLoadedSUMOTLDef::reconstructLogic(), NBNodeCont::remapIDs(), NBEdgeCont::remapIDs(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), MSLink::removeApproaching(), NBNodeCont::removeIsolatedRoads(), MSVehicle::removePassedDriveItems(), MSCalibrator::removePending(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::rename(), NBEdgeCont::rename(), GNENet::renameEdge(), GNENet::renameJunction(), RORouteDef::repairCurrentRoute(), NBConnection::replaceFrom(), MSVehicle::replaceParkingArea(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), MSBaseVehicle::reroute(), MSTriggeredRerouter::rerouteParkingArea(), MSLane::resetManeuverReservation(), MSLane::resetPartialOccupation(), restoreRestrictedLane(), GNEEdge::retrieveGNEConnection(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), NBPTLineCont::reviseStops(), MSPerson::MSPersonStage_Walking::routeOutput(), MSPerson::MSPersonStage_Driving::routeOutput(), RONet::saveAndRemoveRoutesUntil(), MSDevice_Vehroutes::saveState(), MSDevice::saveState(), MSDevice_Tripinfo::saveState(), MSBaseVehicle::saveState(), MSLane::saveState(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSLink::setApproaching(), NBNodeCont::setAsTLControlled(), GNEEdge::setAttribute(), MSChargingStation::setChargeDelay(), MSChargingStation::setChargingPower(), setControllingTLInformation(), MSChargingStation::setEfficency(), GNEJunction::setLogicValid(), MSLane::setManeuverReservation(), MSDevice_Battery::setMaximumBatteryCapacity(), setNodeBorder(), NIXMLEdgesHandler::setNodes(), MSLane::setPartialOccupation(), MSDevice_Battery::setPowerMax(), MSLink::setRequestInformation(), MSTLLogicControl::TLSLogicVariants::setStateInstantiatingOnline(), MSDevice_Battery::setStoppingTreshold(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), shiftPositionAtNode(), NBEdgeCont::splitAt(), IntermodalRouter< E, L, N, V >::splitEdge(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MELoop::teleportVehicle(), METriggeredCalibrator::tryEmit(), MSSOTLTrafficLightLogic::trySwitch(), MSDevice_SSM::update(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateCFRelated(), MSSOTLTrafficLightLogic::updateCTS(), GNETLSEditorFrame::updateDescription(), MSVehicle::updateDriveItems(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSSwarmTrafficLightLogic::updateSensitivities(), MSAbstractLaneChangeModel::updateTargetLane(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), MSPModel_Striping::PState::walk(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), NBParking::write(), MSBatteryExport::write(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), MSLink::writeApproaching(), NBSign::writeAsPOI(), NWWriter_DlrNavteq::writeConnectedLanes(), 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_OpenDrive::writeInternalEdge(), writeInterval(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_OpenDrive::writeNormalEdge(), NWWriter_DlrNavteq::writeProhibitedManoeuvres(), NWWriter_SUMO::writeRoundabout(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_DlrNavteq::writeTrafficSignals(), MSFCDExport::writeTransportable(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), SUMOPolygon::writeXML(), PointOfInterest::writeXML(), MSRouteProbe::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSE2Collector::writeXMLOutput(), and RONet::~RONet().

◆ getIDSecure()

◆ getIncomingEdges()

EdgeVector NBEdge::getIncomingEdges ( ) const

Returns the list of incoming edges unsorted.

Returns
Connected predecessor edges

Definition at line 1146 of file NBEdge.cpp.

References NBNode::getIncomingEdges(), and myFrom.

Referenced by NIXMLEdgesHandler::deleteEdge(), getConnections(), NBNode::removeSelfLoops(), and NWWriter_OpenDrive::writeNetwork().

◆ getInnerGeometry()

◆ getJunctionPriority()

int NBEdge::getJunctionPriority ( const NBNode *const  node) const

Returns the junction priority (normalised for the node currently build)

If the given node is neither the edge's start nor the edge's ending node, the behaviour is undefined.

Parameters
[in]nodeThe node for which the edge's priority shall be returned
Returns
The edge's priority at the given node
Todo:
Maybe the edge priority whould be stored in the node

Definition at line 1591 of file NBEdge.cpp.

References myFrom, myFromJunctionPriority, and myToJunctionPriority.

Referenced by buildInnerEdges(), NBEdgeCont::generateStreetSigns(), NBNode::getDirection(), NWWriter_DlrNavteq::getFormOfWay(), NBOwnTLDef::getToPrio(), isInnerEdge(), NBEdge::MainDirections::MainDirections(), NBNode::needsCont(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), and NBRequest::setBlocking().

◆ getLaneID()

◆ getLaneIDInsecure()

std::string NBEdge::getLaneIDInsecure ( int  lane) const

get Lane ID (Insecure)

Definition at line 2789 of file NBEdge.cpp.

References Named::myID, and toString().

Referenced by getTypeID(), and setConnection().

◆ getLanes()

◆ getLaneShape()

◆ getLaneSpeed()

double NBEdge::getLaneSpeed ( int  lane) const

get lane speed

Definition at line 1647 of file NBEdge.cpp.

References myLanes.

Referenced by GNELane::getAttribute(), GNELane::getColorValue(), GNELane::getSpeed(), getTypeID(), and NBEdge().

◆ getLaneSpreadFunction()

◆ getLaneStruct() [1/2]

◆ getLaneStruct() [2/2]

const Lane& NBEdge::getLaneStruct ( int  lane) const
inline

Definition at line 1184 of file NBEdge.h.

References myLanes.

◆ getLaneWidth() [1/2]

◆ getLaneWidth() [2/2]

double NBEdge::getLaneWidth ( int  lane) const

Returns the width of the lane of this edge.

Returns
The width of the lane of this edge

Definition at line 2927 of file NBEdge.cpp.

References getLaneWidth(), myLanes, SUMO_const_laneWidth, and UNSPECIFIED_WIDTH.

◆ getLength()

◆ getLoadedLength()

double NBEdge::getLoadedLength ( ) const
inline

Returns the length was set explicitly or the computed length if it wasn't set.

Todo:
consolidate use of myLength and myLoaded length
Returns
The edge's specified length

Definition at line 489 of file NBEdge.h.

References getFinalLength(), myLength, and myLoadedLength.

Referenced by NIXMLEdgesHandler::addEdge(), NBNodeCont::generateNodeClusters(), GNELane::getColorValue(), getFinalLength(), GNELane::getLaneParametricLength(), NBNode::isLongEnough(), NBNodeCont::joinJunctions(), NBNodeCont::joinSimilarEdges(), NBEdgeCont::recheckLanes(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().

◆ getMap()

◆ getMaxLaneOffset()

double NBEdge::getMaxLaneOffset ( )

get max lane offset

Definition at line 2497 of file NBEdge.cpp.

References myLanes, and SUMO_const_laneWidthAndOffset.

Referenced by getTypeID().

◆ getNumLanes()

int NBEdge::getNumLanes ( ) const
inline

Returns the number of lanes.

Returns
This edge's number of lanes

Definition at line 412 of file NBEdge.h.

References myLanes.

Referenced by NBLoadedTLDef::SignalGroup::addConnection(), NIXMLEdgesHandler::addEdge(), GNEEdge::addLane(), NIXMLEdgesHandler::addLane(), NIXMLEdgesHandler::addSplit(), addStraightConnections(), NIVissimTL::NIVissimTLSignal::addTo(), appendTurnaround(), NBNode::ApproachingDivider::ApproachingDivider(), NIVissimConnection::buildEdgeConnections(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBNode::checkCrossing(), NBEdgeCont::checkGrade(), NWWriter_OpenDrive::checkLaneGeometries(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedTLDef::collectLinks(), computeAngle(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBOwnTLDef::computeLogicAndConts(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), GNENet::deleteLane(), divideSelectedLanesOnEdges(), NBRampsComputer::fulfillsRampConstraints(), GNEEdge::getAttribute(), GNELane::getColorValue(), NWWriter_OpenDrive::getLeftLaneBorder(), getPermissionVariants(), NWWriter_DlrNavteq::getRoadClass(), GNEEdge::GNEEdge(), NBEdgeCont::guessOpposites(), NBRampsComputer::hasWrongMode(), NBNode::isSimpleContinuation(), NBNodeCont::joinNodeClusters(), moveOutgoingConnectionsFrom(), NIXMLEdgesHandler::myEndElement(), NIXMLEdgesHandler::myStartElement(), NBEdge(), NBContHelper::edge_by_priority_sorter::operator()(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIVissimExtendedEdgePoint::recheckLanes(), NBEdgeCont::recheckLanes(), recheckLanes(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), NBEdgePriorityComputer::samePriority(), setConnection(), NBLoadedSUMOTLDef::setTLControllingInformation(), shiftPositionAtNode(), NBEdgeCont::splitAt(), GNEConnection::updateGeometry(), NBParking::write(), NBRequest::writeCrossingResponse(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_OpenDrive::writeInternalEdge(), NWWriter_DlrNavteq::writeLinksUnsplitted(), and NWWriter_OpenDrive::writeNormalEdge().

◆ getParameter()

const std::string Parameterised::getParameter ( const std::string &  key,
const std::string &  defaultValue = "" 
) const
inherited

Returns the value for a given key.

Parameters
[in]keyThe key to ask for
[in]defaultValueThe default value to return if no value is stored under the key
Returns
The value stored under the key

Definition at line 77 of file Parameterised.cpp.

References Parameterised::myMap.

Referenced by MSTLLogicControl::WAUTSwitchProcedure_Stretch::adaptLogic(), addRestrictedLane(), MSDevice_Battery::buildVehicleDevices(), MSDevice_Bluelight::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice::equippedByDefaultAssignmentOptions(), MSSOTLTrafficLightLogic::getDecayConstant(), MSDevice_SSM::getDetectionRange(), MSDevice_SSM::getExtraTime(), MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSSOTLTrafficLightLogic::getInputSensorsLength(), MSDevice_SSM::getMeasuresAndThresholds(), MSSOTLRequestPolicy::getMinDecisionalPhaseDuration(), MSSOTLRequestTrafficLightLogic::getMinDecisionalPhaseDuration(), MSSOTLTrafficLightLogic::getMode(), MSDevice_SSM::getOutputFilename(), MSSOTLTrafficLightLogic::getOutputSensorsLength(), libsumo::Edge::getParameter(), libsumo::Polygon::getParameter(), libsumo::Route::getParameter(), libsumo::POI::getParameter(), libsumo::TrafficLight::getParameter(), libsumo::VehicleType::getParameter(), libsumo::Person::getParameter(), libsumo::Lane::getParameter(), libsumo::Vehicle::getParameter(), MSSOTLTrafficLightLogic::getSpeedThreshold(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchAreaNo(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchBereichDef(), MSSOTLTrafficLightLogic::getThreshold(), MSTriggeredRerouter::getWeight(), PushButtonLogic::init(), MSSOTLPhasePolicy::init(), SigmoidLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), NIImporter_OpenStreetMap::insertEdge(), MSSOTLTrafficLightLogic::isDecayThresholdActivated(), MSSOTLTrafficLightLogic::isPushButtonPressed(), libsumo::Helper::moveToXYMap(), MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(), MSDelayBasedTrafficLightLogic::MSDelayBasedTrafficLightLogic(), MSSOTLPolicy::MSSOTLPolicy(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), MSSwarmTrafficLightLogic::MSSwarmTrafficLightLogic(), MSSOTLPolicyDesirability::readParameter(), MSDevice_SSM::requestsTrajectories(), NBEdgeCont::splitAt(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic(), MSDevice_SSM::useGeoCoords(), and NWWriter_DlrNavteq::writeLinksUnsplitted().

◆ getPermissions()

SVCPermissions NBEdge::getPermissions ( int  lane = -1) const

get the union of allowed classes over all lanes or for a specific lane

Definition at line 3025 of file NBEdge.cpp.

References myLanes.

Referenced by NWWriter_OpenDrive::addPedestrianConnection(), GNENet::addReversedEdge(), addStraightConnections(), appendTurnaround(), NBNode::ApproachingDivider::ApproachingDivider(), canMoveConnection(), NBTrafficLightDefinition::collectAllLinks(), NBNode::computeLanes2Lanes(), divideOnEdges(), divideSelectedLanesOnEdges(), GNELane::drawAsRailway(), GNELane::drawAsWaterway(), GNELane::drawMarkings(), NBPTStopCont::findAccessEdgesForRailStops(), NBNodeCont::generateNodeClusters(), GNELane::getAttribute(), GNEEdge::getAttribute(), GNELane::getColorValue(), NWWriter_DlrNavteq::getFormOfWay(), NBNode::getLinkState(), getPermissionVariants(), getTypeID(), NBEdgeCont::guessSidewalks(), NBRampsComputer::hasWrongMode(), NBEdgeCont::ignoreFilterMatch(), NIImporter_OpenStreetMap::insertEdge(), GNELane::isRestricted(), NBNodeCont::joinJunctions(), NBNodeCont::joinSimilarEdges(), NBRequest::mergeConflict(), NBEdge(), NBContHelper::edge_by_angle_to_nodeShapeCentroid_sorter::operator()(), recheckLanes(), NIImporter_DlrNavteq::EdgesHandler::report(), GNENet::restrictLane(), shiftPositionAtNode(), NBParking::write(), NWWriter_DlrNavteq::writeConnectedLanes(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_OpenDrive::writeInternalEdge(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNormalEdge(), and NWWriter_DlrNavteq::writeProhibitedManoeuvres().

◆ getPermissionVariants()

std::set< SVCPermissions > NBEdge::getPermissionVariants ( int  iStart,
int  iEnd 
) const

return all permission variants within the specified lane range [iStart, iEnd[

Definition at line 3098 of file NBEdge.cpp.

References getNumLanes(), getPermissions(), and toString().

Referenced by NBNode::computeLanes2Lanes(), and getLanes().

◆ getPriority()

◆ getShapeEndAngle()

double NBEdge::getShapeEndAngle ( ) const

Returns the angle at the end of the edge.

Note
only using edge shape
The angle is computed in computeAngle()
Returns
This edge's end angle

Definition at line 1762 of file NBEdge.cpp.

References ANGLE_LOOKAHEAD, GeomHelper::legacyDegree(), PositionVector::length(), PositionVector::length2D(), MIN2(), myGeom, and PositionVector::positionAtOffset2D().

Referenced by getEndAngle(), NBContHelper::straightness_sorter::operator()(), and NBContHelper::straightness_sorter::straightness_sorter().

◆ getShapeStartAngle()

double NBEdge::getShapeStartAngle ( ) const

Returns the angle at the start of the edge.

Note
only using edge shape
Returns
This edge's start angle

Definition at line 1754 of file NBEdge.cpp.

References ANGLE_LOOKAHEAD, GeomHelper::legacyDegree(), PositionVector::length2D(), MIN2(), myGeom, and PositionVector::positionAtOffset2D().

Referenced by getEndAngle(), NBContHelper::straightness_sorter::operator()(), and NBContHelper::straightness_sorter::straightness_sorter().

◆ getSidewalkID()

std::string NBEdge::getSidewalkID ( )

get the lane id for the canonical sidewalk lane

Definition at line 3136 of file NBEdge.cpp.

References getLaneID(), myLanes, and SVC_PEDESTRIAN.

Referenced by NBNode::buildWalkingAreas(), and getLanes().

◆ getSignalOffset()

double NBEdge::getSignalOffset ( ) const
inline

Returns the offset of a traffic signal from the end of this edge.

Definition at line 557 of file NBEdge.h.

References mySignalOffset.

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

◆ getSigns()

const std::vector<NBSign>& NBEdge::getSigns ( ) const
inline

get Signs

Definition at line 1204 of file NBEdge.h.

References mySigns.

Referenced by NWWriter_XML::writeStreetSigns().

◆ getSpeed()

◆ getStartAngle()

double NBEdge::getStartAngle ( ) const
inline

Returns the angle at the start of the edge (relative to the node shape center) The angle is computed in computeAngle()

Returns
This edge's start angle

Definition at line 442 of file NBEdge.h.

References myStartAngle.

Referenced by NBContHelper::relative_outgoing_edge_sorter::operator()(), and NBNode::rightTurnConflict().

◆ getStep()

EdgeBuildingStep NBEdge::getStep ( ) const
inline

The building step of this edge.

Returns
The current building step for this edge
Todo:
Recheck usage!
See also
EdgeBuildingStep

Definition at line 515 of file NBEdge.h.

References myStep.

Referenced by NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBNode::computeLanes2Lanes(), and NIXMLConnectionsHandler::myStartElement().

◆ getStreetName()

const std::string& NBEdge::getStreetName ( ) const
inline

◆ getToNode()

NBNode* NBEdge::getToNode ( ) const
inline

Returns the destination node of the edge.

Returns
The node this edge ends at

Definition at line 433 of file NBEdge.h.

References myTo.

Referenced by NIImporter_SUMO::_loadNetwork(), NBLoadedSUMOTLDef::addConnection(), NIXMLConnectionsHandler::addCrossing(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), NBLoadedTLDef::addToSignalGroup(), NIXMLConnectionsHandler::addWalkingArea(), NBNodeShapeComputer::badIntersection(), NBRampsComputer::buildOnRamp(), NBNode::checkCrossing(), NBEdgeCont::checkOverlap(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedTLDef::collectNodes(), NBRampsComputer::computeRamps(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), NIVissimDistrictConnection::dict_BuildDistricts(), GNELane::drawLane2LaneConnections(), GNELane::drawLinkNo(), NBRampsComputer::fulfillsRampConstraints(), NBNodeCont::generateNodeClusters(), NBEdgeCont::generateStreetSigns(), getFinalLength(), NWWriter_DlrNavteq::getFormOfWay(), NWWriter_DlrNavteq::getGraphLength(), NIImporter_VISUM::getNamedEdgeContinuating(), NBNode::getOppositeIncoming(), NBPTStopCont::getReverseEdge(), NBOwnTLDef::getToPrio(), NBEdgeCont::guessOpposites(), NBEdgeCont::guessRoundabouts(), NBNodeCont::guessTLs(), NBEdgeCont::insert(), GNENet::insertEdge(), NBNode::isLongEnough(), NBNode::isNearDistrict(), GNEConnection::isValid(), NBNodeCont::joinJunctions(), NBNodeCont::joinNodeClusters(), NBRequest::laneConflict(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIXMLEdgesHandler::myEndElement(), NIXMLConnectionsHandler::myStartElement(), NBContHelper::relative_incoming_edge_sorter::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBContHelper::edge_with_destination_finder::operator()(), NBContHelper::edge_by_angle_to_nodeShapeCentroid_sorter::operator()(), NIImporter_VISUM::parse_Lanes(), NIXMLConnectionsHandler::parseLaneBound(), NBEdgeCont::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBNodeCont::removeComponents(), NBNodeCont::removeIsolatedRoads(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), GNENet::replaceJunctionByGeometry(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NBNode::rightTurnConflict(), GNEConnection::setAttribute(), GNEEdge::setAttribute(), NIXMLEdgesHandler::setNodes(), GNEEdge::smoothShape(), GNEEdge::straightenElevation(), NBNodesEdgesSorter::swapWhenReversed(), GNEConnection::updateGeometry(), GNEConnection::updateLinkState(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_OpenDrive::writeInternalEdge(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), and NWWriter_SUMO::writeRoundabout().

◆ getTotalAngle()

double NBEdge::getTotalAngle ( ) const
inline

Returns the angle at the start of the edge.

Note
The angle is computed in computeAngle()
Returns
This edge's angle

Definition at line 473 of file NBEdge.h.

References myTotalAngle.

Referenced by NBContHelper::same_connection_edge_sorter::getMinMaxRelAngles(), and NBContHelper::edge_similar_direction_sorter::operator()().

◆ getTotalWidth()

double NBEdge::getTotalWidth ( ) const

◆ getTurnDestination()

◆ getTypeID()

const std::string& NBEdge::getTypeID ( ) const
inline

get ID of type

Definition at line 982 of file NBEdge.h.

References NBEdge::Lane::accelRamp, addBikeLane(), addCrossingPointsAsIncomingWithGivenOutgoing(), addLane(), addSidewalk(), allowVehicleClass(), append(), appendTurnaround(), clearControllingTLInformation(), computeEdge2Edges(), computeLanes2Edges(), decLaneNo(), deleteLane(), disableConnection4TLS(), disallowVehicleClass(), expandableBy(), getAngleAtNode(), getAngleAtNodeToCenter(), getCCWBoundaryLine(), getCWBoundaryLine(), getLaneID(), getLaneIDInsecure(), getLaneSpeed(), getMaxLaneOffset(), getPermissions(), getTurnDestination(), hasAccelLane(), hasCustomLaneShape(), hasLaneParams(), hasLaneSpecificEndOffset(), hasLaneSpecificPermissions(), hasLaneSpecificSpeed(), hasLaneSpecificWidth(), hasPermissions(), hasSignalisedConnectionTo(), incLaneNo(), isNearEnough2BeJoined2(), lanesWereAssigned(), markAsInLane2LaneState(), mayBeTLSControlled(), moveOutgoingConnectionsFrom(), myType, needsLaneSpecificOutput(), NBEdge::Lane::permissions, preferVehicleClass(), recheckLanes(), restoreBikelane(), restoreSidewalk(), setAcceleration(), setControllingTLInformation(), setEndOffset(), setLaneShape(), setLaneWidth(), setOrigID(), setPermissions(), setPreferredVehicleClass(), setSpeed(), NBEdge::Lane::shape, NBEdge::Lane::speed, tryGetNodeAtPosition(), and NBEdge::Lane::width.

Referenced by NIXMLEdgesHandler::addEdge(), GNEEdge::getAttribute(), NWWriter_DlrNavteq::getBrunnelType(), NWWriter_DlrNavteq::getFormOfWay(), NWWriter_DlrNavteq::getRoadClass(), NBEdgeCont::ignoreFilterMatch(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().

◆ hasAccelLane()

bool NBEdge::hasAccelLane ( ) const

whether one of the lanes is an acceleration lane

Definition at line 1828 of file NBEdge.cpp.

References myLanes.

Referenced by getTypeID(), and needsLaneSpecificOutput().

◆ hasConnectionTo()

bool NBEdge::hasConnectionTo ( NBEdge destEdge,
int  destLane,
int  fromLane = -1 
) const

Retrieves info about a connection to a certain lane of a certain edge.

Turnaround edge is ignored!

Parameters
[in]destEdgeThe connection's destination edge
[in]destLaneThe connection's destination lane
[in]fromLaneIf a value >= 0 is given, only return true if a connection from the given lane exists
Returns
whether a connection to the specified lane exists

Definition at line 1078 of file NBEdge.cpp.

References myConnections.

Referenced by NIImporter_SUMO::_loadNetwork(), NBNode::buildWalkingAreas(), getLaneSpreadFunction(), GNEConnectorFrame::getLaneStatus(), NIXMLConnectionsHandler::myStartElement(), NIXMLConnectionsHandler::parseLaneBound(), recheckLanes(), NBLoadedSUMOTLDef::reconstructLogic(), and setConnection().

◆ hasCustomLaneShape()

bool NBEdge::hasCustomLaneShape ( ) const

whether one of the lanes has a custom shape

Definition at line 1839 of file NBEdge.cpp.

References myLanes.

Referenced by getTypeID(), and needsLaneSpecificOutput().

◆ hasDefaultGeometry()

bool NBEdge::hasDefaultGeometry ( ) const

Returns whether the geometry consists only of the node positions.

Definition at line 508 of file NBEdge.cpp.

References hasDefaultGeometryEndpoints(), and myGeom.

Referenced by NIXMLEdgesHandler::addEdge(), getGeometry(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().

◆ hasDefaultGeometryEndpointAtNode()

bool NBEdge::hasDefaultGeometryEndpointAtNode ( const NBNode node) const

Returns whether the geometry is terminated by the node positions This default may be violated by initializing with tryIgnoreNodePositions=true' or with setGeometry() non-default endpoints are useful to control the generated node shape.

Definition at line 521 of file NBEdge.cpp.

References NBNode::getPosition(), myFrom, myGeom, and myTo.

Referenced by getGeometry(), and GNENet::replaceJunctionByGeometry().

◆ hasDefaultGeometryEndpoints()

bool NBEdge::hasDefaultGeometryEndpoints ( ) const

Returns whether the geometry is terminated by the node positions This default may be violated by initializing with tryIgnoreNodePositions=true' or with setGeometry() non-default endpoints are useful to control the generated node shape.

Definition at line 514 of file NBEdge.cpp.

References NBNode::getPosition(), myFrom, myGeom, and myTo.

Referenced by getGeometry(), and hasDefaultGeometry().

◆ hasLaneParams()

bool NBEdge::hasLaneParams ( ) const

whether one of the lanes has parameters set

Definition at line 1850 of file NBEdge.cpp.

References myLanes.

Referenced by getTypeID(), and needsLaneSpecificOutput().

◆ hasLaneSpecificEndOffset()

bool NBEdge::hasLaneSpecificEndOffset ( ) const

whether lanes differ in offset

Definition at line 1817 of file NBEdge.cpp.

References myLanes.

Referenced by NIImporter_SUMO::_loadNetwork(), GNEEdge::getAttribute(), getTypeID(), needsLaneSpecificOutput(), and NWWriter_XML::writeEdgesAndConnections().

◆ hasLaneSpecificPermissions()

bool NBEdge::hasLaneSpecificPermissions ( ) const

whether lanes differ in allowed vehicle classes

Definition at line 1781 of file NBEdge.cpp.

References myLanes.

Referenced by GNEEdge::getAttribute(), getTypeID(), needsLaneSpecificOutput(), and NWWriter_XML::writeEdgesAndConnections().

◆ hasLaneSpecificSpeed()

bool NBEdge::hasLaneSpecificSpeed ( ) const

whether lanes differ in speed

Definition at line 1795 of file NBEdge.cpp.

References getSpeed(), and myLanes.

Referenced by GNEEdge::getAttribute(), getTypeID(), needsLaneSpecificOutput(), and NWWriter_XML::writeEdgesAndConnections().

◆ hasLaneSpecificWidth()

bool NBEdge::hasLaneSpecificWidth ( ) const

whether lanes differ in width

Definition at line 1806 of file NBEdge.cpp.

References myLanes.

Referenced by NIImporter_SUMO::_loadNetwork(), GNEEdge::getAttribute(), getTypeID(), needsLaneSpecificOutput(), and NWWriter_XML::writeEdgesAndConnections().

◆ hasLoadedLength()

bool NBEdge::hasLoadedLength ( ) const
inline

Returns whether a length was set explicitly.

Returns
Wether the edge's length was specified

Definition at line 499 of file NBEdge.h.

References myLoadedLength.

Referenced by NIXMLEdgesHandler::addEdge(), getFinalLength(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().

◆ hasPermissions()

bool NBEdge::hasPermissions ( ) const

whether at least one lane has restrictions

Definition at line 1770 of file NBEdge.cpp.

References myLanes, and SVCAll.

Referenced by getTypeID().

◆ hasSignalisedConnectionTo()

bool NBEdge::hasSignalisedConnectionTo ( const NBEdge *const  e) const

Check if edge has signalised connections.

Definition at line 2763 of file NBEdge.cpp.

References myConnections.

Referenced by buildInnerEdges(), NBRequest::forbids(), and getTypeID().

◆ incLaneNo()

void NBEdge::incLaneNo ( int  by)

◆ init()

void NBEdge::init ( int  noLanes,
bool  tryIgnoreNodePositions,
const std::string &  origID 
)
private

Initialization routines common to all constructors.

Checks whether the number of lanes>0, whether the junction's from- and to-nodes are given (!=0) and whether they are distict. Throws a ProcessError if any of these checks fails.

Adds the nodes positions to geometry if it shall not be ignored or if the geometry is empty.

Computes the angle and length, and adds this edge to its node as outgoing/incoming. Builds lane informations.

Parameters
[in]noLanesThe number of lanes this edge has
[in]tryIgnoreNodePositionsDoes not add node geometries if geom.size()>=2
[in]origIDThe original ID this edge had

Definition at line 401 of file NBEdge.cpp.

References PositionVector::add(), NBNode::addIncomingEdge(), NBNode::addOutgoingEdge(), computeAngle(), computeLaneShapes(), DEBUGCOND, Position::distanceTo(), Named::getID(), Named::getIDSecure(), NBNode::getIncomingEdges(), NBNode::getPosition(), myConnections, myFrom, myGeom, Named::myID, myLanes, myLength, myTo, POSITION_EPS, PositionVector::push_back_noDoublePos(), PositionVector::push_front_noDoublePos(), PositionVector::removeDoublePoints(), removeFromConnections(), and WRITE_WARNING.

Referenced by NBEdge(), and reinit().

◆ insertConnection()

void NBEdge::insertConnection ( NBEdge::Connection  connection)

insert a previously created NBEdge::connection

Definition at line 1031 of file NBEdge.cpp.

References myConnections.

Referenced by getLaneSpreadFunction().

◆ invalidateConnections()

void NBEdge::invalidateConnections ( bool  reallowSetting = false)

◆ isConnectedTo()

bool NBEdge::isConnectedTo ( const NBEdge e) const

Returns the information whethe a connection to the given edge has been added (or computed)

Turnaround edge is not ignored!

Parameters
[in]eThe destination edge
Returns
Whether a connection to the specified edge exists

Definition at line 1084 of file NBEdge.cpp.

References myConnections, and myTurnDestination.

Referenced by NBNode::computeLanes2Lanes(), getLaneSpreadFunction(), NIXMLConnectionsHandler::myStartElement(), and NWWriter_DlrNavteq::writeProhibitedManoeuvres().

◆ isInnerEdge()

bool NBEdge::isInnerEdge ( ) const
inline

Returns whether this edge was marked as being within an intersection.

Returns
Whether this edge was marked as being within an intersection

Definition at line 952 of file NBEdge.h.

References dismissVehicleClassInformation(), getJunctionPriority(), myAmInnerEdge, setJunctionPriority(), and setLoadedLength().

Referenced by NBNode::getLinkState().

◆ isMacroscopicConnector()

bool NBEdge::isMacroscopicConnector ( ) const
inline

Returns whether this edge was marked as a macroscopic connector.

Returns
Whether this edge was marked as a macroscopic connector

Definition at line 940 of file NBEdge.h.

References myAmMacroscopicConnector.

Referenced by NBRampsComputer::fulfillsRampConstraints(), and NWWriter_SUMO::writeEdge().

◆ isNearEnough2BeJoined2()

bool NBEdge::isNearEnough2BeJoined2 ( NBEdge e,
double  threshold 
) const

Check if edge is near enought to be joined to another edge.

Definition at line 2795 of file NBEdge.cpp.

References PositionVector::distances(), getGeometry(), VectorHelper< T >::maxValue(), and myGeom.

Referenced by getTypeID(), and NBNodeCont::joinSimilarEdges().

◆ isTurningDirectionAt()

bool NBEdge::isTurningDirectionAt ( const NBEdge *const  edge) const

◆ knowsParameter()

◆ lanesWereAssigned()

bool NBEdge::lanesWereAssigned ( ) const

Check if lanes were assigned.

Definition at line 2491 of file NBEdge.cpp.

References LANES2LANES_DONE, LANES2LANES_USER, and myStep.

Referenced by NIVissimTL::NIVissimTLSignal::addTo(), and getTypeID().

◆ markAsInLane2LaneState()

void NBEdge::markAsInLane2LaneState ( )

mark edge as in lane to state lane

Definition at line 2865 of file NBEdge.cpp.

References NBNode::getOutgoingEdges(), LANES2LANES_DONE, myStep, and myTo.

Referenced by getTypeID().

◆ mayBeTLSControlled()

bool NBEdge::mayBeTLSControlled ( int  fromLane,
NBEdge toEdge,
int  toLane 
) const

◆ mirrorX()

void NBEdge::mirrorX ( )

mirror coordinates along the x-axis

Definition at line 487 of file NBEdge.cpp.

References computeAngle(), PositionVector::mirrorX(), myConnections, myGeom, and myLanes.

◆ moveConnectionToLeft()

void NBEdge::moveConnectionToLeft ( int  lane)
private

a connection one place to the left;

Note
Attention! no checking for field validity

Definition at line 1366 of file NBEdge.cpp.

References canMoveConnection(), L2L_VALIDATED, myConnections, setConnection(), NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.

Referenced by recheckLanes().

◆ moveConnectionToRight()

void NBEdge::moveConnectionToRight ( int  lane)
private

a connection one place to the right; ! no checking for field validity

Definition at line 1381 of file NBEdge.cpp.

References canMoveConnection(), L2L_VALIDATED, myConnections, setConnection(), NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.

Referenced by recheckLanes().

◆ moveOutgoingConnectionsFrom()

void NBEdge::moveOutgoingConnectionsFrom ( NBEdge e,
int  laneOff 
)

◆ needsLaneSpecificOutput()

bool NBEdge::needsLaneSpecificOutput ( ) const

whether at least one lane has values differing from the edges values

Definition at line 1860 of file NBEdge.cpp.

References hasAccelLane(), hasCustomLaneShape(), hasLaneParams(), hasLaneSpecificEndOffset(), hasLaneSpecificPermissions(), hasLaneSpecificSpeed(), hasLaneSpecificWidth(), and myLanes.

Referenced by getTypeID(), and NWWriter_XML::writeEdgesAndConnections().

◆ operator=()

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

invalidated assignment operator

Referenced by NBEdge::ToEdgeConnectionsAdder::getBuiltConnections().

◆ preferVehicleClass()

void NBEdge::preferVehicleClass ( int  lane,
SUMOVehicleClass  vclass 
)

prefer certain vehicle class

Definition at line 2898 of file NBEdge.cpp.

References allowVehicleClass(), and myLanes.

Referenced by getTypeID().

◆ prepareEdgePriorities()

std::vector< int > * NBEdge::prepareEdgePriorities ( const EdgeVector outgoing)
private

◆ recheckLanes()

◆ reduceGeometry()

void NBEdge::reduceGeometry ( const double  minDist)

Removes points with a distance lesser than the given.

Parameters
[in]minDistThe minimum distance between two position to keep the second

Definition at line 845 of file NBEdge.cpp.

References myGeom, and PositionVector::removeDoublePoints().

Referenced by getLaneSpreadFunction().

◆ reinit()

void NBEdge::reinit ( NBNode from,
NBNode to,
const std::string &  type,
double  speed,
int  nolanes,
int  priority,
PositionVector  geom,
double  width,
double  offset,
const std::string &  streetName,
LaneSpreadFunction  spread = LANESPREAD_RIGHT,
bool  tryIgnoreNodePositions = false 
)

Resets initial values.

Parameters
[in]fromThe node the edge starts at
[in]toThe node the edge ends at
[in]typeThe type of the edge (may be =="")
[in]speedThe maximum velocity allowed on this edge
[in]nolanesThe number of lanes this edge has
[in]priorityThis edge's priority
[in]geomThe edge's geomatry
[in]widthThis edge's lane width
[in]offsetAdditional offset to the destination node
[in]streetNameThe street name (need not be unique)
[in]spreadHow the lateral offset of the lanes shall be computed
[in]tryIgnoreNodePositionsDoes not add node geometries if geom.size()>=2

Definition at line 333 of file NBEdge.cpp.

References StringUtils::convertUmlaute(), init(), MIN2(), myFrom, myGeom, myLanes, myLaneSpreadFunction, myLoadedLength, myPriority, myStreetName, myTo, myType, NBNode::removeEdge(), setEndOffset(), setLaneWidth(), setSpeed(), SUMO_PARAM_ORIGID, UNSPECIFIED_LOADED_LENGTH, UNSPECIFIED_OFFSET, UNSPECIFIED_SPEED, and UNSPECIFIED_WIDTH.

Referenced by NIXMLEdgesHandler::addEdge().

◆ reinitNodes()

void NBEdge::reinitNodes ( NBNode from,
NBNode to 
)

Resets nodes but keeps all other values the same (used when joining)

Parameters
[in]fromThe node the edge starts at
[in]toThe node the edge ends at

Definition at line 381 of file NBEdge.cpp.

References NBNode::addIncomingEdge(), NBNode::addOutgoingEdge(), computeAngle(), myFrom, Named::myID, myTo, and NBNode::removeEdge().

Referenced by GNENet::changeEdgeEndpoints(), and NBNodeCont::joinNodeClusters().

◆ remapConnections()

void NBEdge::remapConnections ( const EdgeVector incoming)

Remaps the connection in a way that allows the removal of it.

This edge (which is a self loop edge, in fact) connections are spread over the valid incoming edges

Todo:
recheck!

Definition at line 1185 of file NBEdge.cpp.

References addEdge2EdgeConnection(), EDGE2EDGES, getConnectedEdges(), myStep, and removeFromConnections().

Referenced by getConnections(), and NBNode::removeSelfLoops().

◆ removeFromConnections() [1/2]

void NBEdge::removeFromConnections ( NBEdge toEdge,
int  fromLane = -1,
int  toLane = -1,
bool  tryLater = false,
const bool  adaptToLaneRemoval = false 
)

Removes the specified connection(s)

Parameters
[in]toEdgeThe destination edge
[in]fromLaneThe lane from which connections shall be removed; -1 means remove all
[in]toLaneThe lane to which connections shall be removed; -1 means remove all
[in]tryLaterIf the connection does not exist, try again during recheckLanes()
[in]adaptToLaneRemovalwe are in the process of removing a complete lane, adapt all connections accordingly

Definition at line 1201 of file NBEdge.cpp.

References NBEdge::Connection::fromLane, NBNode::getControllingTLS(), NBConnection::getFromLane(), NBConnection::getTo(), NBConnection::getToLane(), NBNode::isTLControlled(), myConnections, myConnectionsToDelete, myPossibleTurnDestination, myTo, myTurnDestination, NBConnection::shiftLaneIndex(), NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.

Referenced by NIImporter_OpenStreetMap::RelationHandler::applyRestriction(), NIXMLEdgesHandler::deleteEdge(), getConnections(), init(), NBEdgeCont::markRoundabouts(), NIXMLConnectionsHandler::myStartElement(), recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), remapConnections(), GNEEdge::removeConnection(), replaceInConnections(), and NIImporter_DlrNavteq::ProhibitionHandler::report().

◆ removeFromConnections() [2/2]

bool NBEdge::removeFromConnections ( NBEdge::Connection  connectionToRemove)

remove an existent connection of edge

Definition at line 1253 of file NBEdge.cpp.

References NBEdge::Connection::fromLane, myConnections, NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.

◆ replaceInConnections() [1/2]

void NBEdge::replaceInConnections ( NBEdge which,
NBEdge by,
int  laneOff 
)

replace in current connections of edge

Definition at line 1280 of file NBEdge.cpp.

References myConnections, and myTurnDestination.

Referenced by getConnections(), and NBNode::replaceOutgoing().

◆ replaceInConnections() [2/2]

void NBEdge::replaceInConnections ( NBEdge which,
const std::vector< NBEdge::Connection > &  origConns 
)

replace in current connections of edge

Definition at line 1295 of file NBEdge.cpp.

References L2L_COMPUTED, myConnections, removeFromConnections(), and setConnection().

◆ resetNodeBorder()

void NBEdge::resetNodeBorder ( const NBNode node)

Definition at line 619 of file NBEdge.cpp.

References myFrom, myFromBorder, myTo, and myToBorder.

Referenced by addSign().

◆ reshiftPosition()

void NBEdge::reshiftPosition ( double  xoff,
double  yoff 
)

Applies an offset to the edge.

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

Definition at line 474 of file NBEdge.cpp.

References PositionVector::add(), computeAngle(), myConnections, myGeom, and myLanes.

◆ restoreBikelane()

void NBEdge::restoreBikelane ( std::vector< NBEdge::Lane oldLanes,
PositionVector  oldGeometry,
std::vector< NBEdge::Connection oldConnections 
)

restore an previously added BikeLane

Definition at line 3170 of file NBEdge.cpp.

References restoreRestrictedLane(), and SVC_BICYCLE.

Referenced by getTypeID().

◆ restoreRestrictedLane()

void NBEdge::restoreRestrictedLane ( SUMOVehicleClass  vclass,
std::vector< NBEdge::Lane oldLanes,
PositionVector  oldGeometry,
std::vector< NBEdge::Connection oldConnections 
)
private

◆ restoreSidewalk()

void NBEdge::restoreSidewalk ( std::vector< NBEdge::Lane oldLanes,
PositionVector  oldGeometry,
std::vector< NBEdge::Connection oldConnections 
)

restore an previously added sidewalk

Definition at line 3158 of file NBEdge.cpp.

References restoreRestrictedLane(), and SVC_PEDESTRIAN.

Referenced by getTypeID().

◆ setAcceleration()

void NBEdge::setAcceleration ( int  lane,
bool  accelRamp 
)

marks one lane as acceleration lane

Definition at line 2981 of file NBEdge.cpp.

References myLanes.

Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addLane(), NBRampsComputer::buildOnRamp(), getTypeID(), and GNELane::setAttribute().

◆ setAsMacroscopicConnector()

void NBEdge::setAsMacroscopicConnector ( )
inline

Definition at line 933 of file NBEdge.h.

References myAmMacroscopicConnector.

Referenced by NIImporter_VISUM::parse_Connectors().

◆ setConnection()

bool NBEdge::setConnection ( int  lane,
NBEdge destEdge,
int  destLane,
Lane2LaneInfoType  type,
bool  mayUseSameDestination = false,
bool  mayDefinitelyPass = false,
bool  keepClear = true,
double  contPos = UNSPECIFIED_CONTPOS,
double  visibility = UNSPECIFIED_VISIBILITY_DISTANCE,
double  speed = UNSPECIFIED_SPEED,
const PositionVector customShape = PositionVector::EMPTY 
)

Adds a connection to a certain lane of a certain edge.

Parameters
[in]laneThe connection's starting lane (of this edge)
[in]destEdgeThe connection's destination edge
[in]destLaneThe connection's destination lane
[in]typeThe connections's type
[in]mayUseSameDestinationWhether this connection may be set though connecting an already connected lane
[in]mayDefinitelyPassWhether this connection is definitely undistrubed (special case for on-ramps)
Todo:
Check difference between "setConnection" and "addLane2LaneConnection"

Definition at line 964 of file NBEdge.cpp.

References getLaneIDInsecure(), getNumLanes(), hasConnectionTo(), INIT_REJECT_CONNECTIONS, L2L_COMPUTED, L2L_USER, LANES2LANES_DONE, LANES2LANES_RECHECK, LANES2LANES_USER, myConnections, myLanes, myStep, and WRITE_WARNING.

Referenced by GNEEdge::addConnection(), addLane2LaneConnection(), appendTurnaround(), NBNode::computeLanes2Lanes(), getLaneSpreadFunction(), moveConnectionToLeft(), moveConnectionToRight(), and replaceInConnections().

◆ setControllingTLInformation()

◆ setEndOffset()

void NBEdge::setEndOffset ( int  lane,
double  offset 
)

set lane specific end-offset (negative lane implies set for all lanes)

Definition at line 2950 of file NBEdge.cpp.

References myEndOffset, and myLanes.

Referenced by NIImporter_SUMO::_loadNetwork(), GNEEdge::addLane(), NIXMLEdgesHandler::addLane(), getTypeID(), NBEdgeCont::joinSameNodeConnectingEdges(), NBEdge(), reinit(), GNELane::setAttribute(), and GNEEdge::setAttribute().

◆ setGeometry()

void NBEdge::setGeometry ( const PositionVector g,
bool  inner = false 
)

(Re)sets the edge's geometry

Replaces the edge's prior geometry by the given. Then, computes the geometries of all lanes using computeLaneShapes. Definitely not the best way to have it accessable from outside...

Parameters
[in]gThe edge's new geometry
[in]innerwhether g should be interpreted as inner points
Todo:
Recheck usage, disallow access
See also
computeLaneShapes

Definition at line 532 of file NBEdge.cpp.

References computeAngle(), computeLaneShapes(), and myGeom.

Referenced by NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), getGeometry(), NBRampsComputer::moveRampRight(), NIXMLEdgesHandler::myEndElement(), NIImporter_OpenStreetMap::reconstructLayerElevation(), GNEEdge::setAttribute(), and GNEEdge::setGeometry().

◆ setID()

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

◆ setIsInnerEdge()

void NBEdge::setIsInnerEdge ( )
inline

Marks this edge being within an intersection.

Definition at line 945 of file NBEdge.h.

References myAmInnerEdge.

Referenced by NBTrafficLightDefinition::collectEdges().

◆ setJunctionPriority()

void NBEdge::setJunctionPriority ( const NBNode *const  node,
int  prio 
)

Sets the junction priority of the edge.

Parameters
[in]nodeThe node for which the edge's priority is given
[in]prioThe edge's new priority at this node
Todo:
Maybe the edge priority whould be stored in the node

Definition at line 1601 of file NBEdge.cpp.

References myFrom, myFromJunctionPriority, and myToJunctionPriority.

Referenced by NBEdgePriorityComputer::extractAndMarkFirst(), isInnerEdge(), and NBEdgePriorityComputer::setPriorityJunctionPriorities().

◆ setLaneShape()

void NBEdge::setLaneShape ( int  lane,
const PositionVector shape 
)

sets a custom lane shape

Definition at line 2989 of file NBEdge.cpp.

References myLanes.

Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addLane(), getTypeID(), and GNELane::setAttribute().

◆ setLaneSpreadFunction()

void NBEdge::setLaneSpreadFunction ( LaneSpreadFunction  spread)

(Re)sets how the lanes lateral offset shall be computed

Parameters
[in]spreadThe type of lateral offset to apply
See also
LaneSpreadFunction

Definition at line 784 of file NBEdge.cpp.

References myLaneSpreadFunction.

Referenced by getGeometry(), NIImporter_ArcView::load(), NIImporter_VISUM::parse_Edges(), NBEdgeCont::recheckLaneSpread(), and GNEEdge::setAttribute().

◆ setLaneWidth()

void NBEdge::setLaneWidth ( int  lane,
double  width 
)

set lane specific width (negative lane implies set for all lanes)

Definition at line 2911 of file NBEdge.cpp.

References myLanes, and myLaneWidth.

Referenced by NIImporter_SUMO::_loadNetwork(), GNEEdge::addLane(), NIXMLEdgesHandler::addLane(), getTypeID(), NBEdgeCont::joinSameNodeConnectingEdges(), NBEdge(), reinit(), GNELane::setAttribute(), and GNEEdge::setAttribute().

◆ setLoadedLength()

void NBEdge::setLoadedLength ( double  val)

◆ setNodeBorder()

void NBEdge::setNodeBorder ( const NBNode node,
const Position p,
const Position p2,
bool  rectangularCut 
)

◆ setOrigID()

void NBEdge::setOrigID ( const std::string  origID)

set origID for all lanes

Definition at line 3282 of file NBEdge.cpp.

References myLanes, and SUMO_PARAM_ORIGID.

Referenced by getTypeID(), NBEdgeCont::remapIDs(), and NBEdgeCont::splitAt().

◆ setParameter()

◆ setPermissions()

◆ setPreferredVehicleClass()

void NBEdge::setPreferredVehicleClass ( SVCPermissions  permissions,
int  lane = -1 
)

set preferred Vehicle Class

Definition at line 3011 of file NBEdge.cpp.

References myLanes.

Referenced by GNEEdge::addLane(), NIXMLEdgesHandler::addLane(), and getTypeID().

◆ setSignalOffset()

void NBEdge::setSignalOffset ( double  offset)
inline

sets the offset of a traffic signal from the end of this edge

Definition at line 562 of file NBEdge.h.

References mySignalOffset.

◆ setSpeed()

void NBEdge::setSpeed ( int  lane,
double  speed 
)

set lane specific speed (negative lane implies set for all lanes)

Definition at line 2966 of file NBEdge.cpp.

References myLanes, and mySpeed.

Referenced by NIImporter_SUMO::_loadNetwork(), GNEEdge::addLane(), NIXMLEdgesHandler::addLane(), NIVissimEdge::buildNBEdge(), getTypeID(), NBEdge(), reinit(), GNELane::setAttribute(), GNEEdge::setAttribute(), and NBEdgeCont::splitAt().

◆ setStreetName()

void NBEdge::setStreetName ( const std::string &  name)
inline

sets the street name of this edge

Definition at line 540 of file NBEdge.h.

References myStreetName.

Referenced by GNEEdge::setAttribute().

◆ setTurningDestination()

void NBEdge::setTurningDestination ( NBEdge e,
bool  onlyPossible = false 
)

Sets the turing destination at the given edge.

Parameters
[in]eThe turn destination
[in]onlyPossibleIf true, only sets myPossibleTurnDestination

Definition at line 1638 of file NBEdge.cpp.

References myPossibleTurnDestination, and myTurnDestination.

Referenced by getConnections().

◆ shiftPositionAtNode()

void NBEdge::shiftPositionAtNode ( NBNode node,
NBEdge opposite 
)

◆ shiftToLanesToEdge()

void NBEdge::shiftToLanesToEdge ( NBEdge to,
int  laneOff 
)

modifify the toLane for all connections to the given edge

XXX could we repurpose the function replaceInConnections ?

Definition at line 3233 of file NBEdge.cpp.

References myConnections.

Referenced by getConnections().

◆ shortenGeometryAtNode()

void NBEdge::shortenGeometryAtNode ( const NBNode node,
double  reduction 
)

linearly extend the geometry at the given node

Definition at line 569 of file NBEdge.cpp.

References computeLaneShapes(), PositionVector::getSubpart2D(), PositionVector::length2D(), MIN2(), myFrom, myGeom, and POSITION_EPS.

Referenced by getGeometry().

◆ sortOutgoingConnectionsByAngle()

void NBEdge::sortOutgoingConnectionsByAngle ( )

sorts the outgoing connections by their angle relative to their junction

Definition at line 1173 of file NBEdge.cpp.

References myConnections.

Referenced by getConnections().

◆ sortOutgoingConnectionsByIndex()

void NBEdge::sortOutgoingConnectionsByIndex ( )

sorts the outgoing connections by their from-lane-index and their to-lane-index

Definition at line 1179 of file NBEdge.cpp.

References connections_sorter(), and myConnections.

Referenced by divideOnEdges(), and getConnections().

◆ splitGeometry()

bool NBEdge::splitGeometry ( NBEdgeCont ec,
NBNodeCont nc 
)

Splits this edge at geometry points.

Parameters
[in]ecThe edge cont to add new edges to
[in]ncThe node cont to add new nodes to
Returns
Whether the geometry was changed

Definition at line 800 of file NBEdge.cpp.

References NBNode::addIncomingEdge(), NBNode::getPosition(), INIT, NBNodeCont::insert(), NBEdgeCont::insert(), myFrom, myGeom, Named::myID, myLanes, myLaneSpreadFunction, myLaneWidth, myPriority, mySpeed, myStep, myStreetName, myTo, myType, NBEdge(), NBNode::removeEdge(), NBNodeCont::retrieve(), toString(), and UNSPECIFIED_OFFSET.

Referenced by getLaneSpreadFunction().

◆ startShapeAt()

◆ tryGetNodeAtPosition()

NBNode * NBEdge::tryGetNodeAtPosition ( double  pos,
double  tolerance = 5.0 
) const

Returns the node at the given edges length (using an epsilon)

Note
When no node is existing at the given position, 0 is returned The epsilon is a static member of NBEdge, should be setable via program options

Definition at line 2463 of file NBEdge.cpp.

References myFrom, myLength, and myTo.

Referenced by getTypeID().

◆ unsetParameter()

void Parameterised::unsetParameter ( const std::string &  key)
inherited

Removes a parameter.

Parameters
[in]keyThe parameter's name

Definition at line 57 of file Parameterised.cpp.

References Parameterised::myMap.

◆ updateParameter()

void Parameterised::updateParameter ( const std::map< std::string, std::string > &  mapArg)
inherited

Adds or updates all given parameters from the map.

Parameters
[in]mapArgThe keys/values to insert

Definition at line 63 of file Parameterised.cpp.

References Parameterised::myMap.

Referenced by NIImporter_SUMO::_loadNetwork(), PCLoaderOSM::addPOI(), PCLoaderOSM::addPolygon(), NLJunctionControlBuilder::closeJunction(), NBTrafficLightDefinition::compute(), and NIImporter_OpenStreetMap::insertEdge().

◆ writeParams()

Friends And Related Function Documentation

◆ GNEEdge

friend class GNEEdge
friend

Definition at line 75 of file NBEdge.h.

◆ GNEJunction

friend class GNEJunction
friend

Definition at line 76 of file NBEdge.h.

◆ GNELane

friend class GNELane
friend

used for visualization (NETEDIT)

Definition at line 74 of file NBEdge.h.

◆ NBEdgeCont

friend class NBEdgeCont
friend

Definition at line 71 of file NBEdge.h.

Field Documentation

◆ ANGLE_LOOKAHEAD

const double NBEdge::ANGLE_LOOKAHEAD = 10.0
static

◆ myAmInnerEdge

bool NBEdge::myAmInnerEdge
private

Information whether this is a junction-inner edge.

Definition at line 1435 of file NBEdge.h.

Referenced by isInnerEdge(), and setIsInnerEdge().

◆ myAmMacroscopicConnector

bool NBEdge::myAmMacroscopicConnector
private

Information whether this edge is a (macroscopic) connector.

Definition at line 1438 of file NBEdge.h.

Referenced by isMacroscopicConnector(), and setAsMacroscopicConnector().

◆ myConnections

◆ myConnectionsToDelete

std::vector<Connection> NBEdge::myConnectionsToDelete
private

List of connections marked for delayed removal.

Definition at line 1400 of file NBEdge.h.

Referenced by getConnectedSorted(), recheckLanes(), and removeFromConnections().

◆ myEndAngle

double NBEdge::myEndAngle
private

Definition at line 1384 of file NBEdge.h.

Referenced by computeAngle(), getAngleAtNodeToCenter(), and getEndAngle().

◆ myEndOffset

double NBEdge::myEndOffset
private

This edges's offset to the intersection begin (will be applied to all lanes)

Definition at line 1421 of file NBEdge.h.

Referenced by getEndOffset(), and setEndOffset().

◆ myFrom

◆ myFromBorder

PositionVector NBEdge::myFromBorder
private

intersection borders (because the node shape might be invalid)

Definition at line 1461 of file NBEdge.h.

Referenced by cutAtIntersection(), resetNodeBorder(), and setNodeBorder().

◆ myFromJunctionPriority

int NBEdge::myFromJunctionPriority
private

The priority normalised for the node the edge is outgoing of.

Definition at line 1409 of file NBEdge.h.

Referenced by getJunctionPriority(), and setJunctionPriority().

◆ myGeom

◆ myID

std::string Named::myID
protectedinherited

◆ myLanes

◆ myLaneSpreadFunction

LaneSpreadFunction NBEdge::myLaneSpreadFunction
private

The information about how to spread the lanes.

Definition at line 1418 of file NBEdge.h.

Referenced by addRestrictedLane(), computeAngle(), computeLaneShapes(), expandableBy(), getLaneSpreadFunction(), reinit(), setLaneSpreadFunction(), shiftPositionAtNode(), and splitGeometry().

◆ myLaneWidth

double NBEdge::myLaneWidth
private

This width of this edge's lanes.

Definition at line 1424 of file NBEdge.h.

Referenced by getLaneWidth(), setLaneWidth(), and splitGeometry().

◆ myLength

double NBEdge::myLength
private

The length of the edge.

Definition at line 1379 of file NBEdge.h.

Referenced by append(), computeEdgeShape(), getLength(), getLoadedLength(), init(), and tryGetNodeAtPosition().

◆ myLoadedLength

double NBEdge::myLoadedLength
private

An optional length to use (-1 if not valid)

Definition at line 1432 of file NBEdge.h.

Referenced by getLoadedLength(), hasLoadedLength(), reinit(), and setLoadedLength().

◆ myPossibleTurnDestination

NBEdge* NBEdge::myPossibleTurnDestination
private

The edge that would be the turn destination if there was one.

Definition at line 1406 of file NBEdge.h.

Referenced by append(), getTurnDestination(), isTurningDirectionAt(), removeFromConnections(), and setTurningDestination().

◆ myPriority

int NBEdge::myPriority
private

The priority of the edge.

Definition at line 1389 of file NBEdge.h.

Referenced by getPriority(), reinit(), GNEEdge::setAttribute(), and splitGeometry().

◆ mySignalOffset

double NBEdge::mySignalOffset
private

the offset of a traffic light signal from the end of this edge (-1 for None)

Definition at line 1457 of file NBEdge.h.

Referenced by append(), getSignalOffset(), and setSignalOffset().

◆ mySigns

std::vector<NBSign> NBEdge::mySigns
private

the street signs along this edge

Definition at line 1454 of file NBEdge.h.

Referenced by addSign(), and getSigns().

◆ mySpeed

double NBEdge::mySpeed
private

The maximal speed.

Definition at line 1392 of file NBEdge.h.

Referenced by expandableBy(), getSpeed(), setSpeed(), and splitGeometry().

◆ myStartAngle

double NBEdge::myStartAngle
private

The angles of the edge.

Definition at line 1383 of file NBEdge.h.

Referenced by computeAngle(), getAngleAtNodeToCenter(), and getStartAngle().

◆ myStep

◆ myStreetName

std::string NBEdge::myStreetName
private

The street name (or whatever arbitrary string you wish to attach)

Definition at line 1451 of file NBEdge.h.

Referenced by getStreetName(), reinit(), setStreetName(), and splitGeometry().

◆ myTLSDisabledConnections

std::vector<TLSDisabledConnection> NBEdge::myTLSDisabledConnections
private

vector with the disabled connections

Definition at line 1448 of file NBEdge.h.

Referenced by disableConnection4TLS(), mayBeTLSControlled(), and setControllingTLInformation().

◆ myTo

◆ myToBorder

PositionVector NBEdge::myToBorder
private

Definition at line 1462 of file NBEdge.h.

Referenced by append(), cutAtIntersection(), resetNodeBorder(), and setNodeBorder().

◆ myToJunctionPriority

int NBEdge::myToJunctionPriority
private

The priority normalised for the node the edge is incoming in.

Definition at line 1412 of file NBEdge.h.

Referenced by getJunctionPriority(), and setJunctionPriority().

◆ myTotalAngle

double NBEdge::myTotalAngle
private

Definition at line 1385 of file NBEdge.h.

Referenced by computeAngle(), and getTotalAngle().

◆ myTurnDestination

NBEdge* NBEdge::myTurnDestination
private

◆ myType

std::string NBEdge::myType
private

The type of the edge.

Definition at line 1373 of file NBEdge.h.

Referenced by getTypeID(), reinit(), GNEEdge::setAttribute(), and splitGeometry().

◆ UNSPECIFIED_CONTPOS

const double NBEdge::UNSPECIFIED_CONTPOS = -1
static

◆ UNSPECIFIED_INTERNAL_LANE_INDEX

const int NBEdge::UNSPECIFIED_INTERNAL_LANE_INDEX = -1
static

internal lane computation not yet done

Definition at line 277 of file NBEdge.h.

◆ UNSPECIFIED_LOADED_LENGTH

const double NBEdge::UNSPECIFIED_LOADED_LENGTH = -1
static

no length override given

Definition at line 269 of file NBEdge.h.

Referenced by NIImporter_SUMO::addEdge(), NIXMLEdgesHandler::addEdge(), GNEEdge::isValid(), and reinit().

◆ UNSPECIFIED_OFFSET

◆ UNSPECIFIED_SIGNAL_OFFSET

const double NBEdge::UNSPECIFIED_SIGNAL_OFFSET = -1
static

unspecified signal offset

Definition at line 272 of file NBEdge.h.

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

◆ UNSPECIFIED_SPEED

◆ UNSPECIFIED_VISIBILITY_DISTANCE

const double NBEdge::UNSPECIFIED_VISIBILITY_DISTANCE = -1
static

◆ UNSPECIFIED_WIDTH


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