|
SUMO - Simulation of Urban MObility
|
The representation of a single edge during network building. More...
#include <NBEdge.h>
Data Structures | |
| struct | Connection |
| A structure which describes a connection between edges or lanes. More... | |
| class | connections_finder |
| class | connections_fromlane_finder |
| class | connections_relative_edgelane_sorter |
| class | connections_toedge_finder |
| class | connections_toedgelane_finder |
| struct | Lane |
| An (internal) definition of a single lane of an edge. More... | |
| class | MainDirections |
| class | tls_disable_finder |
| struct | TLSDisabledConnection |
| class | ToEdgeConnectionsAdder |
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 | Lane2LaneInfoType { L2L_COMPUTED, L2L_USER, L2L_VALIDATED } |
Modes of setting connections between lanes. More... | |
Public Member Functions | |
| void | addCrossingPointsAsIncomingWithGivenOutgoing (NBEdge *o, PositionVector &into) |
| void | allowVehicleClass (int lane, SUMOVehicleClass vclass) |
| set allowed class for the given lane or for all lanes if -1 is given | |
| void | append (NBEdge *continuation) |
| void | appendTurnaround (bool noTLSControlled) |
| Add a connection to the previously computed turnaround, if wished. | |
| void | buildInnerEdges (const NBNode &n, unsigned int noInternalNoSplits, unsigned int &lno, unsigned int &splitNo) |
| void | clearControllingTLInformation () |
| clears tlID for all connections | |
| bool | computeEdge2Edges (bool noLeftMovers) |
| computes the edge (step1: computation of approached edges) | |
| bool | computeLanes2Edges () |
| computes the edge, step2: computation of which lanes approach the edges) | |
| void | computeTurningDirections () |
| computes which edge shall be the turn-around one, if any | |
| void | decLaneNo (unsigned int by, int dir=0) |
| void | declareConnectionsAsLoaded () |
| void | disableConnection4TLS (int fromLane, NBEdge *toEdge, int toLane) |
| void | disallowVehicleClass (int lane, SUMOVehicleClass vclass) |
| set disallowed class for the given lane or for all lanes if -1 is given | |
| void | dismissVehicleClassInformation () |
| bool | expandableBy (NBEdge *possContinuation) const |
| SUMOVehicleClasses | getAllowedVehicleClasses () const |
| get the union of allowed classes over all lanes | |
| SUMOVehicleClasses | getAllowedVehicleClasses (unsigned int lane) const |
| get allowed classed for the given lane | |
| SUMOReal | getAngle (const NBNode &atNode) const |
| PositionVector | getCCWBoundaryLine (const NBNode &n, SUMOReal offset) const |
| PositionVector | getCWBoundaryLine (const NBNode &n, SUMOReal offset) const |
| SUMOVehicleClasses | getDisallowedVehicleClasses (unsigned int lane) const |
| get disallowed classed for the given lane | |
| SUMOVehicleClasses | getDisallowedVehicleClasses () const |
| get the union of disallowed classes over all lanes | |
| const std::string & | getID () const |
| Returns the id. | |
| int | getJunctionPriority (const NBNode *const node) const |
| Returns the junction priority (normalised for the node currently build) | |
| std::string | getLaneID (unsigned int lane) const |
| SUMOReal | getLaneSpeed (unsigned int lane) const |
| const Lane & | getLaneStruct (unsigned int lane) const |
| Lane & | getLaneStruct (unsigned int lane) |
| SUMOReal | getMaxLaneOffset () |
| Position | getMaxLaneOffsetPositionAt (NBNode *node, SUMOReal width) const |
| Position | getMinLaneOffsetPositionAt (NBNode *node, SUMOReal width) const |
| SUMOReal | getNormedAngle () const |
| SUMOReal | getNormedAngle (const NBNode &atNode) const |
| NBEdge * | getTurnDestination () const |
| const std::string & | getTypeID () const |
| bool | hasLaneSpecificAllow () const |
| whether lanes differ in allowed vehicle classes | |
| bool | hasLaneSpecificDisallow () const |
| whether lanes differ in disallowed vehicle classes | |
| bool | hasLaneSpecificOffset () const |
| whether lanes differ in offset | |
| bool | hasLaneSpecificSpeed () const |
| whether lanes differ in speed | |
| bool | hasLaneSpecificWidth () const |
| whether lanes differ in width | |
| bool | hasRestrictions () const |
| whether at least one lane has restrictions | |
| bool | hasSignalisedConnectionTo (const NBEdge *const e) const |
| void | incLaneNo (unsigned int by) |
| bool | isNearEnough2BeJoined2 (NBEdge *e, SUMOReal threshold) const |
| bool | isTurningDirectionAt (const NBNode *n, const NBEdge *const edge) const |
| Returns whether the given edge is the opposite direction to this edge. | |
| bool | lanesWereAssigned () const |
| void | markAsInLane2LaneState () |
| bool | mayBeTLSControlled (int fromLane, NBEdge *toEdge, int toLane) const |
| void | moveOutgoingConnectionsFrom (NBEdge *e, unsigned int laneOff) |
| NBEdge (const std::string &id, NBNode *from, NBNode *to, std::string type, SUMOReal speed, unsigned int nolanes, int priority, SUMOReal width, SUMOReal offset, PositionVector geom, const std::string &streetName="", LaneSpreadFunction spread=LANESPREAD_RIGHT, bool tryIgnoreNodePositions=false) | |
| Constructor. | |
| NBEdge (const std::string &id, NBNode *from, NBNode *to, std::string type, SUMOReal speed, unsigned int nolanes, int priority, SUMOReal width, SUMOReal offset, const std::string &streetName="", LaneSpreadFunction spread=LANESPREAD_RIGHT) | |
| Constructor. | |
| NBEdge (const std::string &id, NBNode *from, NBNode *to, NBEdge *tpl) | |
| Constructor. | |
| bool | needsLaneSpecificOutput () const |
| whether at least one lane has values differing from the edges values | |
| void | preferVehicleClass (int lane, SUMOVehicleClass vclass) |
| bool | recheckLanes () |
| void | reinit (NBNode *from, NBNode *to, const std::string &type, SUMOReal speed, unsigned int nolanes, int priority, PositionVector geom, SUMOReal width, SUMOReal offset, const std::string &streetName, LaneSpreadFunction spread=LANESPREAD_RIGHT, bool tryIgnoreNodePositions=false) |
| Resets initial values. | |
| bool | setControllingTLInformation (const NBConnection &c, const std::string &tlID) |
| Returns if the link could be set as to be controlled. | |
| void | setID (const std::string &newID) |
| resets the id | |
| void | setJunctionPriority (const NBNode *const node, int prio) |
| Sets the junction priority of the edge. | |
| void | setLeftHanded () |
| Marks this edge to be left-handed. | |
| void | setLoadedLength (SUMOReal val) |
| void | setOffset (int lane, SUMOReal offset) |
| set lane specific end-offset (negative lane implies set for all lanes) | |
| void | setSpeed (int lane, SUMOReal offset) |
| set lane specific speed (negative lane implies set for all lanes) | |
| void | setTurningDestination (NBEdge *e) |
| void | setVehicleClasses (const SUMOVehicleClasses &allowed, const SUMOVehicleClasses &disallowed, int lane=-1) |
| set allowed/disallowed classes for the given lane or for all lanes if -1 is given | |
| void | setWidth (int lane, SUMOReal width) |
| set lane specific width (negative lane implies set for all lanes) | |
| NBNode * | tryGetNodeAtPosition (SUMOReal pos, SUMOReal tolerance=5.0) const |
| Returns the node at the given edges length (using an epsilon) 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. | |
| SUMOReal | width () const |
| ~NBEdge () | |
| Destructor. | |
Applying offset | |
| void | reshiftPosition (SUMOReal xoff, SUMOReal yoff) |
| Applies an offset to the edge. | |
Atomar getter methods | |
| unsigned int | getNumLanes () const |
| Returns the number of lanes. | |
| int | getPriority () const |
| Returns the priority of the edge. | |
| NBNode * | getFromNode () const |
| Returns the origin node of the edge. | |
| NBNode * | getToNode () const |
| Returns the destination node of the edge. | |
| SUMOReal | getAngle () const |
| Returns the angle of the edge. | |
| SUMOReal | getLength () const |
| Returns the computed length of the edge. | |
| SUMOReal | getLoadedLength () const |
| Returns the length was set explicitly or the computed length if it wasn't set. | |
| bool | hasLoadedLength () const |
| Returns whether a length was set explicitly. | |
| SUMOReal | getSpeed () const |
| Returns the speed allowed on this edge. | |
| EdgeBuildingStep | getStep () const |
| The building step of this edge. | |
| SUMOReal | getWidth () const |
| Returns the width of lanes of this edge. | |
| const std::string & | getStreetName () const |
| Returns the street name of this edge. | |
| void | setStreetName (const std::string &name) |
| sets the street name of this edge | |
| SUMOReal | getOffset () const |
| Returns the offset to the destination node. | |
| const std::string & | getTypeName () const |
| Returns the type name. | |
| const std::vector< NBEdge::Lane > & | getLanes () const |
| Returns the lane definitions. | |
Edge geometry access and computation | |
| const PositionVector & | getGeometry () const |
| Returns the geometry of the edge. | |
| const PositionVector | getInnerGeometry () const |
| Returns the geometry of the edge without the endpoints. | |
| bool | hasDefaultGeometry () const |
| Returns whether the geometry consists only of the node positions. | |
| 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. | |
| void | setGeometry (const PositionVector &g, bool inner=false) |
| (Re)sets the edge's geometry | |
| void | addGeometryPoint (int index, const Position &p) |
| Adds a further geometry point. | |
| 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. | |
| const PositionVector & | getLaneShape (unsigned int i) const |
| Returns the shape of the nth lane. | |
| void | setLaneSpreadFunction (LaneSpreadFunction spread) |
| (Re)sets how the lanes lateral offset shall be computed | |
| LaneSpreadFunction | getLaneSpreadFunction () const |
| Returns how this edge's lanes' lateral offset is computed. | |
| bool | splitGeometry (NBEdgeCont &ec, NBNodeCont &nc) |
| Splits this edge at geometry points. | |
Setting/getting special types | |
| void | setAsMacroscopicConnector () |
| Marks this edge as a macroscopic connector. | |
| bool | isMacroscopicConnector () const |
| Returns whether this edge was marked as a macroscopic connector. | |
| void | setIsInnerEdge () |
| Marks this edge being within an intersection. | |
| bool | isInnerEdge () const |
| Returns whether this edge was marked as being within an intersection. | |
Static Public Member Functions | |
| static bool | connections_sorter (const Connection &c1, const Connection &c2) |
| static std::pair< SUMOReal, SUMOReal > | laneOffset (const Position &from, const Position &to, SUMOReal lanewidth, unsigned int lane, size_t noLanes, LaneSpreadFunction lsf, bool leftHand) |
| Computes the offset from the edge shape on the current segment. | |
Static Public Attributes | |
| static const SUMOReal | UNSPECIFIED_LOADED_LENGTH = -1 |
| no length override given | |
| static const SUMOReal | UNSPECIFIED_OFFSET = 0 |
| unspecified lane offset | |
| static const SUMOReal | UNSPECIFIED_WIDTH = -1 |
| unspecified lane width | |
Protected Member Functions | |
| bool | acceptBeingTurning (NBEdge *e) |
Protected Attributes | |
| std::string | myID |
| The name of the object. | |
Private Member Functions | |
| PositionVector | computeLaneShape (unsigned int lane) throw (InvalidArgument) |
| Computes the shape for the given lane. | |
| void | computeLaneShapes () |
| unsigned int | computePrioritySum (std::vector< unsigned int > *priorities) |
| void | divideOnEdges (const EdgeVector *outgoing) |
| void | init (unsigned int noLanes, bool tryIgnoreNodePositions) |
| Initialization routines common to all constructors. | |
| std::pair< SUMOReal, SUMOReal > | laneOffset (const Position &from, const Position &to, SUMOReal lanewidth, unsigned int lane) throw (InvalidArgument) |
| Computes the offset from the edge shape on the current segment. | |
| NBEdge (const NBEdge &s) | |
| invalidated copy constructor | |
| NBEdge & | operator= (const NBEdge &s) |
| invalidated assignment operator | |
| std::vector< unsigned int > * | preparePriorities (const EdgeVector *outgoing) |
| PositionVector | startShapeAt (const PositionVector &laneShape, const NBNode *startNode, unsigned int laneIndex) const |
Private Attributes | |
| bool | myAmInnerEdge |
| Information whether this is a junction-inner edge. | |
| bool | myAmLeftHand |
| Whether this edge is a left-hand edge. | |
| bool | myAmMacroscopicConnector |
| Information whether this edge is a (macroscopic) connector. | |
| SUMOReal | myAngle |
| The angle of the edge. | |
| std::vector< Connection > | myConnections |
| List of connections to following edges. | |
| NBNode * | myFrom |
| The source and the destination node. | |
| int | myFromJunctionPriority |
| The priority normalised for the node the edge is outgoing of. | |
| PositionVector | myGeom |
| The geometry for the edge. | |
| std::vector< Lane > | myLanes |
| Lane information. | |
| LaneSpreadFunction | myLaneSpreadFunction |
| The information about how to spread the lanes. | |
| SUMOReal | myLength |
| The length of the edge. | |
| SUMOReal | myLoadedLength |
| An optional length to use (-1 if not valid) | |
| SUMOReal | myOffset |
| This edges's offset to the intersection begin (will be applied to all lanes) | |
| int | myPriority |
| The priority of the edge. | |
| SUMOReal | mySpeed |
| The maximal speed. | |
| EdgeBuildingStep | myStep |
| The building step. | |
| std::string | myStreetName |
| The street name (or whatever arbitrary string you wish to attach) | |
| std::vector < TLSDisabledConnection > | myTLSDisabledConnections |
| NBNode * | myTo |
| int | myToJunctionPriority |
| The priority normalised for the node the edge is incoming in. | |
| NBEdge * | myTurnDestination |
| The turn destination edge. | |
| std::string | myType |
| The type of the edge. | |
| SUMOReal | myWidth |
| This width of this edge's lanes. | |
Temporary variables for turning edge computation | |
| SUMOReal | myAmTurningWithAngle |
| Was assigned as a turn with this angle. | |
| NBEdge * | myAmTurningOf |
| Was assigned as a turning edge of this one. | |
Friends | |
| class | GNEEdge |
| class | GNELane |
| class | NBEdgeCont |
| class | NBEdgeSuccessorBuilder |
Setting and getting connections | |
| bool | addEdge2EdgeConnection (NBEdge *dest) |
| Adds a connection to another edge. | |
| bool | addLane2LaneConnection (unsigned int fromLane, NBEdge *dest, unsigned int toLane, Lane2LaneInfoType type, bool mayUseSameDestination=false, bool mayDefinitelyPass=false) |
| Adds a connection between the specified this edge's lane and an approached one. | |
| bool | addLane2LaneConnections (unsigned int fromLane, NBEdge *dest, unsigned int toLane, unsigned int no, Lane2LaneInfoType type, bool invalidatePrevious=false, bool mayDefinitelyPass=false) |
| Builds no connections starting at the given lanes. | |
| void | setConnection (unsigned int lane, NBEdge *destEdge, unsigned int destLane, Lane2LaneInfoType type, bool mayUseSameDestination=false, bool mayDefinitelyPass=false) |
| Adds a connection to a certain lane of a certain edge. | |
| std::vector< Connection > | getConnectionsFromLane (unsigned int lane) const |
| Returns connections from a given lane. | |
| bool | hasConnectionTo (NBEdge *destEdge, unsigned int destLane) const |
| Retrieves info about a connection to a certain lane of a certain edge. | |
| bool | isConnectedTo (NBEdge *e) |
| Returns the information whethe a connection to the given edge has been added (or computed) | |
| const std::vector< Connection > & | getConnections () const |
| Returns the connections. | |
| std::vector< Connection > & | getConnections () |
| Returns the connections. | |
| const EdgeVector * | getConnectedSorted () |
| Returns the list of outgoing edges without the turnaround sorted in clockwise direction. | |
| EdgeVector | getConnectedEdges () const |
| Returns the list of outgoing edges unsorted. | |
| std::vector< int > | getConnectionLanes (NBEdge *currentOutgoing) const |
| Returns the list of lanes that may be used to reach the given edge. | |
| void | sortOutgoingConnectionsByAngle () |
| sorts the outgoing connections by their angle relative to their junction | |
| void | sortOutgoingConnectionsByIndex () |
| sorts the outgoing connections by their from-lane-index and their to-lane-index | |
| void | remapConnections (const EdgeVector &incoming) |
| Remaps the connection in a way that allows the removal of it. | |
| void | removeFromConnections (NBEdge *toEdge, int fromLane=-1, int toLane=-1) |
| Removes the specified connection(s) | |
| void | invalidateConnections (bool reallowSetting=false) |
| void | replaceInConnections (NBEdge *which, NBEdge *by, unsigned int laneOff) |
| void | replaceInConnections (NBEdge *which, const std::vector< NBEdge::Connection > &origConns) |
| void | copyConnectionsFrom (NBEdge *src) |
| void | moveConnectionToLeft (unsigned int lane) |
| void | moveConnectionToRight (unsigned int lane) |
The representation of a single edge during network building.
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.
| NBEdge::NBEdge | ( | const std::string & | id, |
| NBNode * | from, | ||
| NBNode * | to, | ||
| std::string | type, | ||
| SUMOReal | speed, | ||
| unsigned int | nolanes, | ||
| int | priority, | ||
| SUMOReal | width, | ||
| SUMOReal | offset, | ||
| const std::string & | streetName = "", |
||
| LaneSpreadFunction | spread = LANESPREAD_RIGHT |
||
| ) |
Constructor.
Use this if no edge geometry is given.
| [in] | id | The id of the edge |
| [in] | from | The node the edge starts at |
| [in] | to | The node the edge ends at |
| [in] | type | The type of the edge (my be =="") |
| [in] | speed | The maximum velocity allowed on this edge |
| [in] | nolanes | The number of lanes this edge has |
| [in] | priority | This edge's priority |
| [in] | width | This edge's lane width |
| [in] | offset | Additional offset to the destination node |
| [in] | streetName | The street name (need not be unique) |
| [in] | spread | How the lateral offset of the lanes shall be computed |
Definition at line 162 of file NBEdge.cpp.
References init().
Referenced by splitGeometry().
| NBEdge::NBEdge | ( | const std::string & | id, |
| NBNode * | from, | ||
| NBNode * | to, | ||
| std::string | type, | ||
| SUMOReal | speed, | ||
| unsigned int | nolanes, | ||
| int | priority, | ||
| SUMOReal | width, | ||
| SUMOReal | offset, | ||
| PositionVector | geom, | ||
| const std::string & | streetName = "", |
||
| LaneSpreadFunction | spread = LANESPREAD_RIGHT, |
||
| bool | tryIgnoreNodePositions = false |
||
| ) |
Constructor.
Use this if the edge's geometry is given.
| [in] | id | The id of the edge |
| [in] | from | The node the edge starts at |
| [in] | to | The node the edge ends at |
| [in] | type | The type of the edge (may be =="") |
| [in] | speed | The maximum velocity allowed on this edge |
| [in] | nolanes | The number of lanes this edge has |
| [in] | priority | This edge's priority |
| [in] | width | This edge's lane width |
| [in] | offset | Additional offset to the destination node |
| [in] | geom | The edge's geomatry |
| [in] | streetName | The street name (need not be unique) |
| [in] | spread | How the lateral offset of the lanes shall be computed |
| [in] | tryIgnoreNodePositions | Does not add node geometries if geom.size()>=2 |
Definition at line 182 of file NBEdge.cpp.
References init().
Constructor.
Use this to copy attribuets from another edge
| [in] | id | The id of the edge |
| [in] | from | The node the edge starts at |
| [in] | to | The node the edge ends at |
| [in] | tpl | The template edge to copy attributes from |
Definition at line 203 of file NBEdge.cpp.
References getAllowedVehicleClasses(), getDisallowedVehicleClasses(), getLaneSpeed(), getNumLanes(), init(), setSpeed(), and setVehicleClasses().
| NBEdge::~NBEdge | ( | ) |
Destructor.
Definition at line 310 of file NBEdge.cpp.
| NBEdge::NBEdge | ( | const NBEdge & | s | ) | [private] |
invalidated copy constructor
Definition at line 1081 of file NBEdge.cpp.
References computeTurningDirections(), getAngle(), myAmTurningOf, myAmTurningWithAngle, NBHelpers::relAngle(), and SUMOReal.
Referenced by setTurningDestination().
| void NBEdge::addCrossingPointsAsIncomingWithGivenOutgoing | ( | NBEdge * | o, |
| PositionVector & | into | ||
| ) |
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".
| [in] | dest | The connection's destination edge |
Definition at line 501 of file NBEdge.cpp.
References EDGE2EDGES, INIT_REJECT_CONNECTIONS, invalidateConnections(), myConnections, myFrom, myStep, and myTo.
Referenced by addLane2LaneConnection(), NBEdgeCont::joinSameNodeConnectingEdges(), NIXMLConnectionsHandler::myStartElement(), and remapConnections().
| 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.
| [in] | index | The position at which the point shall be added |
| [in] | p | The point to add |
Definition at line 449 of file NBEdge.cpp.
References PositionVector::insertAt(), and myGeom.
Referenced by NIImporter_VISUM::parse_EdgePolys().
| bool NBEdge::addLane2LaneConnection | ( | unsigned int | fromLane, |
| NBEdge * | dest, | ||
| unsigned int | toLane, | ||
| Lane2LaneInfoType | type, | ||
| bool | mayUseSameDestination = false, |
||
| bool | mayDefinitelyPass = false |
||
| ) |
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.
| [in] | fromLane | The connection's starting lane (of this edge) |
| [in] | dest | The connection's destination edge |
| [in] | toLane | The connection's destination lane |
| [in] | type | The connections's type |
| [in] | mayUseSameDestination | Whether this connection may be set though connecting an already connected lane |
| [in] | mayDefinitelyPass | Whether this connection is definitely undistrubed (special case for on-ramps) |
Definition at line 525 of file NBEdge.cpp.
References addEdge2EdgeConnection(), INIT_REJECT_CONNECTIONS, myFrom, myStep, myTo, and setConnection().
Referenced by NIImporter_SUMO::_loadNetwork(), addLane2LaneConnections(), NIVissimConnection::buildEdgeConnections(), NBNodeCont::joinNodeClusters(), moveOutgoingConnectionsFrom(), NIXMLEdgesHandler::myEndElement(), NIImporter_VISUM::parse_LanesConnections(), NIXMLConnectionsHandler::parseLaneBound(), and NBEdgeCont::splitAt().
| bool NBEdge::addLane2LaneConnections | ( | unsigned int | fromLane, |
| NBEdge * | dest, | ||
| unsigned int | toLane, | ||
| unsigned 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.
| [in] | fromLane | The first of the connections' starting lanes (of this edge) |
| [in] | dest | The connections' destination edge |
| [in] | toLane | The first of the connections' destination lanes |
| [in] | no | The number of connections to set |
| [in] | type | The connections' type |
| [in] | invalidatePrevious | Whether previously set connection shall be deleted |
| [in] | mayDefinitelyPass | Whether these connections are definitely undistrubed (special case for on-ramps) |
Definition at line 547 of file NBEdge.cpp.
References addLane2LaneConnection(), and invalidateConnections().
Referenced by NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), and NBNode::computeLanes2Lanes().
| 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 1941 of file NBEdge.cpp.
References getLaneID(), myLanes, SUMO_ATTR_DISALLOW, toString(), and WRITE_WARNING.
Referenced by NIXMLEdgesHandler::addLane(), NINavTeqHelper::addVehicleClasses(), and setVehicleClasses().
| void NBEdge::append | ( | NBEdge * | continuation | ) |
Definition at line 1814 of file NBEdge.cpp.
References PositionVector::appendWithCrossingPoint(), myConnections, myGeom, myLanes, myLength, myStep, myTo, and myTurnDestination.
Referenced by NBNodeCont::removeUnwishedNodes().
| void NBEdge::appendTurnaround | ( | bool | noTLSControlled | ) |
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).
| [in] | noTLSControlled | Whether the turnaround shall not be connected if this edge is controlled by a tls |
Definition at line 1500 of file NBEdge.cpp.
References getNumLanes(), NBNode::isTLControlled(), L2L_VALIDATED, myLanes, myTo, myTurnDestination, and setConnection().
| void NBEdge::buildInnerEdges | ( | const NBNode & | n, |
| unsigned int | noInternalNoSplits, | ||
| unsigned int & | lno, | ||
| unsigned int & | splitNo | ||
| ) |
Definition at line 895 of file NBEdge.cpp.
References NBNode::computeInternalLaneShape(), Position::distanceTo(), NBNode::getDirection(), PositionVector::getEnd(), Named::getID(), NBNode::getIncomingEdges(), getLaneShape(), NBNode::getOppositeIncoming(), getSpeed(), getToNode(), PositionVector::intersects(), PositionVector::intersectsAtLengths2D(), PositionVector::length(), LINKDIR_LEFT, LINKDIR_PARTLEFT, LINKDIR_TURN, MIN2(), myConnections, NBNode::needsCont(), PI, PositionVector::size(), PositionVector::splitAt(), SUMOReal, and toString().
| void NBEdge::clearControllingTLInformation | ( | ) |
clears tlID for all connections
Definition at line 1698 of file NBEdge.cpp.
References myConnections.
computes the edge (step1: computation of approached edges)
Definition at line 1292 of file NBEdge.cpp.
References EDGE2EDGES, NBNode::getOutgoingEdges(), NBNode::isLeftMover(), myConnections, myStep, and myTo.
| 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.
Definition at line 360 of file NBEdge.cpp.
References Line::atan2DegreeAngle(), GeomHelper::getMinAngleDiff(), PositionVector::length(), myFrom, Named::myID, myLanes, myLength, myTo, POSITION_EPS, PositionVector::reverse(), PositionVector::size(), startShapeAt(), SUMOReal, and WRITE_MESSAGE.
| bool NBEdge::computeLanes2Edges | ( | ) |
computes the edge, step2: computation of which lanes approach the edges)
Definition at line 1313 of file NBEdge.cpp.
References divideOnEdges(), EDGE2EDGES, getConnectedSorted(), LANES2EDGES, myConnections, and myStep.
| PositionVector NBEdge::computeLaneShape | ( | unsigned int | lane | ) | throw (InvalidArgument) [private] |
Computes the shape for the given lane.
Definition at line 1127 of file NBEdge.cpp.
References Line::atan2DegreeAngle(), Line::extrapolateBy(), GeomHelper::getCWAngleDiff(), Line::intersects(), Line::intersectsAt(), PositionVector::push_back(), SUMO_const_laneWidthAndOffset, SUMOReal, WRITE_WARNING, Position::x(), Position::y(), and Position::z().
Referenced by computeLaneShapes().
| void NBEdge::computeLaneShapes | ( | ) | [private] |
Definition at line 1109 of file NBEdge.cpp.
References computeLaneShape(), Named::getID(), myFrom, myGeom, myLanes, myTo, and WRITE_WARNING.
Referenced by decLaneNo(), incLaneNo(), init(), and setGeometry().
| unsigned int NBEdge::computePrioritySum | ( | std::vector< unsigned int > * | priorities | ) | [private] |
computes the sum of the given list's entries (sic!)
Definition at line 1490 of file NBEdge.cpp.
Referenced by divideOnEdges().
| void NBEdge::computeTurningDirections | ( | ) |
computes which edge shall be the turn-around one, if any
Definition at line 1035 of file NBEdge.cpp.
References getAngle(), NBNode::getOutgoingEdges(), isConnectedTo(), myConnections, myTo, myTurnDestination, NBHelpers::relAngle(), setTurningDestination(), and SUMOReal.
Referenced by acceptBeingTurning().
| static bool NBEdge::connections_sorter | ( | const Connection & | c1, |
| const Connection & | c2 | ||
| ) | [inline, static] |
connections_sorter
Definition at line 1322 of file NBEdge.h.
References NBEdge::Connection::fromLane, Named::getID(), NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.
Referenced by sortOutgoingConnectionsByIndex().
| void NBEdge::copyConnectionsFrom | ( | NBEdge * | src | ) |
Definition at line 833 of file NBEdge.cpp.
References myConnections, and myStep.
Referenced by NBEdgeCont::splitAt().
| void NBEdge::decLaneNo | ( | unsigned int | by, |
| int | dir = 0 |
||
| ) |
Definition at line 1908 of file NBEdge.cpp.
References computeLaneShapes(), NBNode::getIncomingEdges(), NBNode::getOutgoingEdges(), invalidateConnections(), myFrom, myLanes, myTo, and removeFromConnections().
Referenced by NIXMLEdgesHandler::myEndElement().
| void NBEdge::declareConnectionsAsLoaded | ( | ) | [inline] |
Definition at line 957 of file NBEdge.h.
References LANES2LANES_USER, and myStep.
Referenced by NIImporter_SUMO::_loadNetwork().
| void NBEdge::disableConnection4TLS | ( | int | fromLane, |
| NBEdge * | toEdge, | ||
| int | toLane | ||
| ) |
Definition at line 1706 of file NBEdge.cpp.
References NBEdge::TLSDisabledConnection::fromLane, myTLSDisabledConnections, NBEdge::TLSDisabledConnection::to, and NBEdge::TLSDisabledConnection::toLane.
Referenced by NIXMLConnectionsHandler::parseLaneBound().
| 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 1962 of file NBEdge.cpp.
References getLaneID(), myLanes, SUMO_ATTR_ALLOW, toString(), and WRITE_WARNING.
Referenced by NIXMLEdgesHandler::addLane(), and setVehicleClasses().
| void NBEdge::dismissVehicleClassInformation | ( | ) |
| void NBEdge::divideOnEdges | ( | const EdgeVector * | outgoing | ) | [private] |
divides the lanes on the outgoing edges
Definition at line 1370 of file NBEdge.cpp.
References Bresenham::compute(), computePrioritySum(), NBEdge::ToEdgeConnectionsAdder::getBuiltConnections(), myAmLeftHand, myConnections, myLanes, preparePriorities(), and SUMOReal.
Referenced by computeLanes2Edges().
!! if (myAllowedOnLanes!=possContinuation->myAllowedOnLanes || myNotAllowedOnLanes!=possContinuation->myNotAllowedOnLanes) { return false; }
Definition at line 1752 of file NBEdge.cpp.
References EDGE2EDGES, getConnectedEdges(), getConnectionLanes(), getPriority(), INIT, INIT_REJECT_CONNECTIONS, LANES2EDGES, LANES2LANES_DONE, LANES2LANES_RECHECK, LANES2LANES_USER, myConnections, myLanes, mySpeed, and myStep.
| SUMOVehicleClasses NBEdge::getAllowedVehicleClasses | ( | ) | const |
get the union of allowed classes over all lanes
Definition at line 2057 of file NBEdge.cpp.
References myLanes.
Referenced by NIXMLEdgesHandler::addEdge(), NBEdgeCont::ignoreFilterMatch(), and NBEdge().
| SUMOVehicleClasses NBEdge::getAllowedVehicleClasses | ( | unsigned int | lane | ) | const |
get allowed classed for the given lane
Definition at line 2079 of file NBEdge.cpp.
References myLanes.
| SUMOReal NBEdge::getAngle | ( | ) | const [inline] |
Returns the angle of the edge.
The angle is computed within the constructor using NBHelpers::angle
Definition at line 356 of file NBEdge.h.
References myAngle.
Referenced by acceptBeingTurning(), NBNode::computeLanes2Lanes(), computeTurningDirections(), NBNode::getDirection(), NBContHelper::same_connection_edge_sorter::getMinMaxRelAngles(), getNormedAngle(), NBNode::isLeftMover(), isTurningDirectionAt(), NBEdge::connections_relative_edgelane_sorter::operator()(), NBContHelper::edge_similar_direction_sorter::operator()(), NBContHelper::relative_edge_sorter::operator()(), NBNode::setPriorityJunctionPriorities(), and setTurningDestination().
| SUMOReal NBEdge::getAngle | ( | const NBNode & | atNode | ) | const |
Definition at line 1054 of file NBEdge.cpp.
References Line::atan2DegreeAngle(), PositionVector::getBegLine(), PositionVector::getEndLine(), myFrom, myGeom, and myTo.
| PositionVector NBEdge::getCCWBoundaryLine | ( | const NBNode & | n, |
| SUMOReal | offset | ||
| ) | const |
Definition at line 1731 of file NBEdge.cpp.
References PositionVector::move2side(), myAmLeftHand, myFrom, and myLanes.
| EdgeVector NBEdge::getConnectedEdges | ( | ) | const |
Returns the list of outgoing edges unsorted.
Definition at line 678 of file NBEdge.cpp.
References myConnections.
Referenced by NIVissimDisturbance::addToNode(), expandableBy(), NBTrafficLightDefinition::forbids(), NBContHelper::same_connection_edge_sorter::getMinMaxRelAngles(), and remapConnections().
| const EdgeVector * NBEdge::getConnectedSorted | ( | ) |
Returns the list of outgoing edges without the turnaround sorted in clockwise direction.
Definition at line 650 of file NBEdge.cpp.
References NBNode::getOutgoingEdges(), myConnections, myTo, and myTurnDestination.
Referenced by computeLanes2Edges().
| std::vector< int > NBEdge::getConnectionLanes | ( | NBEdge * | currentOutgoing | ) | const |
Returns the list of lanes that may be used to reach the given edge.
Definition at line 690 of file NBEdge.cpp.
References myConnections, and myTurnDestination.
Referenced by NBNode::ApproachingDivider::execute(), and expandableBy().
| const std::vector<Connection>& NBEdge::getConnections | ( | ) | const [inline] |
Returns the connections.
Definition at line 667 of file NBEdge.h.
References myConnections.
Referenced by NIXMLTrafficLightsHandler::addTlConnection(), NBNodeCont::joinNodeClusters(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeNetwork(), and NWWriter_XML::writeTrafficLights().
| std::vector<Connection>& NBEdge::getConnections | ( | ) | [inline] |
Returns the connections.
Definition at line 675 of file NBEdge.h.
References myConnections.
| std::vector< NBEdge::Connection > NBEdge::getConnectionsFromLane | ( | unsigned int | lane | ) | const |
Returns connections from a given lane.
This method goes through "myConnections" and copies those which are starting at the given lane.
| [in] | lane | The lane which connections shall be returned |
Definition at line 619 of file NBEdge.cpp.
References myConnections.
Referenced by NIVissimTL::NIVissimTLSignal::addTo(), NBOwnTLDef::collectLinks(), NBLoadedTLDef::collectLinks(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), moveOutgoingConnectionsFrom(), NBOwnTLDef::myCompute(), and NBRequest::writeLaneResponse().
| PositionVector NBEdge::getCWBoundaryLine | ( | const NBNode & | n, |
| SUMOReal | offset | ||
| ) | const |
Definition at line 1716 of file NBEdge.cpp.
References PositionVector::move2side(), myAmLeftHand, myFrom, and myLanes.
| SUMOVehicleClasses NBEdge::getDisallowedVehicleClasses | ( | ) | const |
get the union of disallowed classes over all lanes
Definition at line 2068 of file NBEdge.cpp.
References myLanes.
Referenced by NIXMLEdgesHandler::addEdge(), and NBEdge().
| SUMOVehicleClasses NBEdge::getDisallowedVehicleClasses | ( | unsigned int | lane | ) | const |
get disallowed classed for the given lane
Definition at line 2086 of file NBEdge.cpp.
References myLanes.
| NBNode* NBEdge::getFromNode | ( | ) | const [inline] |
Returns the origin node of the edge.
Definition at line 336 of file NBEdge.h.
References myFrom.
Referenced by NBLoadedSUMOTLDef::addConnection(), NIVissimDisturbance::addToNode(), NBLoadedTLDef::addToSignalGroup(), NBNodeCont::buildOnRamp(), NIVissimDistrictConnection::dict_BuildDistricts(), NBNodeCont::generateNodeClusters(), NBContHelper::edge_by_junction_angle_sorter::getConvAngle(), NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt(), NIImporter_VISUM::getNamedEdgeContinuating(), NBNodeCont::guessRamps(), NBEdgeCont::guessRoundabouts(), NBEdgeCont::insert(), NBNode::isNearDistrict(), NBNodeCont::joinNodeClusters(), NIImporter_VISUM::parse_Lanes(), NBNodeCont::removeIsolatedRoads(), NBEdgeCont::removeUnwishedEdges(), NIXMLEdgesHandler::setNodes(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_OpenDrive::writeNetwork().
| const PositionVector& NBEdge::getGeometry | ( | ) | const [inline] |
Returns the geometry of the edge.
Definition at line 456 of file NBEdge.h.
References myGeom.
Referenced by NIXMLEdgesHandler::addEdge(), NIXMLEdgesHandler::addSplit(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt(), getInnerGeometry(), NBEdgeCont::ignoreFilterMatch(), isNearEnough2BeJoined2(), NBNodeCont::joinNodeClusters(), NIXMLEdgesHandler::myEndElement(), NIImporter_VISUM::parse_Lanes(), NBEdgeCont::splitAt(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_OpenDrive::writeNetwork().
| const std::string& Named::getID | ( | ) | const [inline, inherited] |
Returns the id.
Reimplemented in MS_E2_ZS_CollectorOverLanes.
Definition at line 61 of file Named.h.
References Named::myID.
Referenced by ShapeContainer::add(), MSDetectorControl::add(), RORouteDef_Alternatives::addAlternative(), MSNet::addBusStop(), NLHandler::addConnection(), NBLoadedSUMOTLDef::addConnection(), NIImporter_OpenDrive::addE2EConnectionsSecure(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), NIVisumTL::build(), MS_E2_ZS_CollectorOverLanes::buildCollector(), RORouteDef_Complete::buildCurrentRoute(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), buildInnerEdges(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), ODDistrictHandler::closeDistrict(), NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), connections_sorter(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSE3Collector::enter(), MSVTypeProbe::execute(), Command_SaveTLSSwitches::execute(), NBTrafficLightLogicCont::extract(), NBNodeCont::extract(), NBEdgeCont::extract(), MSNet::getBusStopID(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBEdgeCont::ignoreFilterMatch(), MSUnboundActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NIImporter_SUMO::initTrafficLightLogic(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBDistrictCont::insert(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), MSLane::moveCritical(), MSVehicle::MSVehicle(), RORDLoader_SUMOBase::myCharacters(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSTriggeredRerouter::myStartElement(), MSLaneSpeedTrigger::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), Named::ComparatorIdLess::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), NBLoadedTLDef::SignalGroup::patchTYellow(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_InductionLoop::processGet(), NWWriter_SUMO::prohibitionConnection(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), NBNodeCont::setAsTLControlled(), setControllingTLInformation(), MSLane::setCritical(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), RORDLoader_SUMOBase::startRoute(), startShapeAt(), NIXMLConnectionsHandler::validateLaneInfo(), MSInstantInductLoop::write(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), MSInductLoop::writeTypedXMLOutput(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
| const PositionVector NBEdge::getInnerGeometry | ( | ) | const |
Returns the geometry of the edge without the endpoints.
Definition at line 325 of file NBEdge.cpp.
References getGeometry(), PositionVector::pop_back(), and PositionVector::pop_front().
| 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.
| [in] | node | The node for which the edge's priority shall be returned |
Definition at line 1015 of file NBEdge.cpp.
References myFrom, myFromJunctionPriority, and myToJunctionPriority.
Referenced by NBOwnTLDef::getToPrio(), NBEdge::MainDirections::MainDirections(), NBNode::needsCont(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), and NBRequest::setBlocking().
| std::string NBEdge::getLaneID | ( | unsigned int | lane | ) | const |
Definition at line 1852 of file NBEdge.cpp.
References Named::myID, myLanes, and toString().
Referenced by allowVehicleClass(), disallowVehicleClass(), NIXMLConnectionsHandler::parseLaneBound(), setConnection(), startShapeAt(), and NWWriter_SUMO::writeEdge().
| const std::vector<NBEdge::Lane>& NBEdge::getLanes | ( | ) | const [inline] |
Returns the lane definitions.
Definition at line 443 of file NBEdge.h.
References myLanes.
Referenced by NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_OpenDrive::writeNetwork().
| const PositionVector & NBEdge::getLaneShape | ( | unsigned int | i | ) | const |
Returns the shape of the nth lane.
Definition at line 437 of file NBEdge.cpp.
References myLanes.
Referenced by buildInnerEdges(), and NBNode::computeInternalLaneShape().
| SUMOReal NBEdge::getLaneSpeed | ( | unsigned int | lane | ) | const |
Definition at line 1103 of file NBEdge.cpp.
References myLanes.
Referenced by NBEdge(), and NBEdgeCont::splitAt().
| LaneSpreadFunction NBEdge::getLaneSpreadFunction | ( | ) | const [inline] |
Returns how this edge's lanes' lateral offset is computed.
Definition at line 532 of file NBEdge.h.
References myLaneSpreadFunction.
Referenced by NIXMLEdgesHandler::addEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBNodeCont::joinNodeClusters(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().
| Lane& NBEdge::getLaneStruct | ( | unsigned int | lane | ) | [inline] |
Definition at line 946 of file NBEdge.h.
References myLanes.
Referenced by NBNode::computeInternalLaneShape().
| const Lane& NBEdge::getLaneStruct | ( | unsigned int | lane | ) | const [inline] |
| SUMOReal NBEdge::getLength | ( | ) | const [inline] |
Returns the computed length of the edge.
Definition at line 364 of file NBEdge.h.
References myLength.
Referenced by NBJoinedEdgesMap::init(), NIXMLEdgesHandler::myEndElement(), NIImporter_VISUM::parse_Lanes(), NBEdgeCont::retrievePossiblySplitted(), and NWWriter_OpenDrive::writeNetwork().
| SUMOReal NBEdge::getLoadedLength | ( | ) | const [inline] |
Returns the length was set explicitly or the computed length if it wasn't set.
Definition at line 373 of file NBEdge.h.
References myLength, and myLoadedLength.
Referenced by NIXMLEdgesHandler::addEdge(), NBNodeCont::joinSimilarEdges(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().
| SUMOReal NBEdge::getMaxLaneOffset | ( | ) |
Definition at line 1578 of file NBEdge.cpp.
References myLanes, SUMO_const_laneWidthAndOffset, and SUMOReal.
Definition at line 1603 of file NBEdge.cpp.
References PositionVector::length(), myFrom, myLanes, PositionVector::positionAtLengthPosition(), SUMO_const_halfLaneAndOffset, SUMOReal, GeomHelper::transfer_to_side(), and width().
Definition at line 1584 of file NBEdge.cpp.
References PositionVector::length(), myFrom, myLanes, PositionVector::positionAtLengthPosition(), SUMO_const_halfLaneAndOffset, SUMOReal, GeomHelper::transfer_to_side(), and width().
| SUMOReal NBEdge::getNormedAngle | ( | ) | const |
Definition at line 1878 of file NBEdge.cpp.
References myAngle, and SUMOReal.
Referenced by NBContHelper::edge_by_junction_angle_sorter::getConvAngle().
| SUMOReal NBEdge::getNormedAngle | ( | const NBNode & | atNode | ) | const |
Definition at line 1867 of file NBEdge.cpp.
References getAngle(), and SUMOReal.
| unsigned int NBEdge::getNumLanes | ( | ) | const [inline] |
Returns the number of lanes.
Definition at line 320 of file NBEdge.h.
References myLanes.
Referenced by NBLoadedTLDef::SignalGroup::addConnection(), NIXMLEdgesHandler::addEdge(), NIXMLEdgesHandler::addLane(), NIXMLEdgesHandler::addSplit(), NIVissimTL::NIVissimTLSignal::addTo(), appendTurnaround(), NIVissimConnection::buildEdgeConnections(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBNodeCont::checkHighwayRampOrder(), NBOwnTLDef::collectLinks(), NBLoadedTLDef::collectLinks(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), NBNode::isSimpleContinuation(), NBNodeCont::joinNodeClusters(), NBNodeCont::mayNeedOffRamp(), NBNodeCont::mayNeedOnRamp(), moveOutgoingConnectionsFrom(), NBOwnTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), NBEdge(), NBContHelper::edge_by_priority_sorter::operator()(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIVissimExtendedEdgePoint::recheckLanes(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), samePriority(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), NIXMLConnectionsHandler::validateLaneInfo(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_OpenDrive::writeNetwork().
| SUMOReal NBEdge::getOffset | ( | ) | const [inline] |
Returns the offset to the destination node.
Definition at line 427 of file NBEdge.h.
References myOffset.
Referenced by NIXMLEdgesHandler::addEdge(), hasLaneSpecificOffset(), NBNodeCont::joinNodeClusters(), and NWWriter_XML::writeEdgesAndConnections().
| int NBEdge::getPriority | ( | ) | const [inline] |
Returns the priority of the edge.
Definition at line 328 of file NBEdge.h.
References myPriority.
Referenced by NIXMLEdgesHandler::addEdge(), expandableBy(), NBNodeCont::joinNodeClusters(), NBContHelper::edge_by_priority_sorter::operator()(), samePriority(), NBEdgeCont::splitAt(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().
| SUMOReal NBEdge::getSpeed | ( | ) | const [inline] |
Returns the speed allowed on this edge.
Definition at line 389 of file NBEdge.h.
References mySpeed.
Referenced by NIXMLEdgesHandler::addEdge(), buildInnerEdges(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBNodeCont::checkHighwayRampOrder(), hasLaneSpecificSpeed(), NBEdgeCont::ignoreFilterMatch(), NBNodeCont::joinNodeClusters(), NBNodeCont::joinSimilarEdges(), NBNodeCont::mayNeedOffRamp(), NBNodeCont::mayNeedOnRamp(), NBNode::mustBrake(), NBContHelper::edge_by_priority_sorter::operator()(), samePriority(), and NWWriter_XML::writeEdgesAndConnections().
| EdgeBuildingStep NBEdge::getStep | ( | ) | const [inline] |
The building step of this edge.
Definition at line 399 of file NBEdge.h.
References myStep.
| const std::string& NBEdge::getStreetName | ( | ) | const [inline] |
Returns the street name of this edge.
Definition at line 414 of file NBEdge.h.
References myStreetName.
Referenced by NIXMLEdgesHandler::addEdge(), NBNodeCont::joinNodeClusters(), NBEdgeCont::splitAt(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_OpenDrive::writeNetwork().
| NBNode* NBEdge::getToNode | ( | ) | const [inline] |
Returns the destination node of the edge.
Definition at line 344 of file NBEdge.h.
References myTo.
Referenced by NIImporter_SUMO::_loadNetwork(), NBLoadedSUMOTLDef::addConnection(), NIVissimDisturbance::addToNode(), NBLoadedTLDef::addToSignalGroup(), buildInnerEdges(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBLoadedTLDef::collectNodes(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), NIVissimDistrictConnection::dict_BuildDistricts(), NBNodeCont::generateNodeClusters(), NIImporter_VISUM::getNamedEdgeContinuating(), NBNode::getOppositeIncoming(), NBOwnTLDef::getToPrio(), NBNodeCont::guessRamps(), NBEdgeCont::guessRoundabouts(), NBEdgeCont::insert(), NBNode::isNearDistrict(), NBNodeCont::joinNodeClusters(), NBNodeCont::joinSimilarEdges(), NBOwnTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), NIXMLConnectionsHandler::myStartElement(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBContHelper::edge_with_destination_finder::operator()(), NIImporter_VISUM::parse_Lanes(), NIXMLConnectionsHandler::parseLaneBound(), NBNodeCont::removeIsolatedRoads(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NIXMLEdgesHandler::setNodes(), NBNode::swapWhenReversed(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_OpenDrive::writeNetwork().
| NBEdge * NBEdge::getTurnDestination | ( | ) | const |
Definition at line 1846 of file NBEdge.cpp.
References myTurnDestination.
Referenced by NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBOwnTLDef::computeUnblockedWeightedStreamNumber(), NBEdgeCont::guessRoundabouts(), NBNode::isLeftMover(), moveConnectionToLeft(), and moveConnectionToRight().
| const std::string& NBEdge::getTypeID | ( | ) | const [inline] |
Definition at line 805 of file NBEdge.h.
References myType.
Referenced by NIXMLEdgesHandler::addEdge(), NBEdgeCont::ignoreFilterMatch(), NBNodeCont::joinNodeClusters(), and NWWriter_XML::writeEdgesAndConnections().
| const std::string& NBEdge::getTypeName | ( | ) | const [inline] |
Returns the type name.
Definition at line 435 of file NBEdge.h.
References myType.
Referenced by NWWriter_SUMO::writeEdge().
| SUMOReal NBEdge::getWidth | ( | ) | const [inline] |
Returns the width of lanes of this edge.
Definition at line 407 of file NBEdge.h.
References myWidth.
Referenced by NIXMLEdgesHandler::addEdge(), hasLaneSpecificWidth(), NBNodeCont::joinNodeClusters(), and NWWriter_XML::writeEdgesAndConnections().
Retrieves info about a connection to a certain lane of a certain edge.
Turnaround edge is ignored!
| [in] | destEdge | The connection's destination edge |
| [in] | destLane | The connection's destination lane |
Definition at line 631 of file NBEdge.cpp.
References myConnections.
Referenced by NIXMLConnectionsHandler::myStartElement(), NIXMLConnectionsHandler::parseLaneBound(), and setConnection().
| bool NBEdge::hasDefaultGeometry | ( | ) | const |
Returns whether the geometry consists only of the node positions.
Definition at line 334 of file NBEdge.cpp.
References hasDefaultGeometryEndpoints(), myGeom, and PositionVector::size().
Referenced by NIXMLEdgesHandler::addEdge(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().
| 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 340 of file NBEdge.cpp.
References PositionVector::getBegin(), PositionVector::getEnd(), NBNode::getPosition(), myFrom, myGeom, and myTo.
Referenced by hasDefaultGeometry().
| bool NBEdge::hasLaneSpecificAllow | ( | ) | const |
whether lanes differ in allowed vehicle classes
Definition at line 1224 of file NBEdge.cpp.
References myLanes.
| bool NBEdge::hasLaneSpecificDisallow | ( | ) | const |
whether lanes differ in disallowed vehicle classes
Definition at line 1238 of file NBEdge.cpp.
References myLanes.
| bool NBEdge::hasLaneSpecificOffset | ( | ) | const |
whether lanes differ in offset
Definition at line 1274 of file NBEdge.cpp.
References getOffset(), and myLanes.
Referenced by needsLaneSpecificOutput(), and NWWriter_XML::writeEdgesAndConnections().
| bool NBEdge::hasLaneSpecificSpeed | ( | ) | const |
whether lanes differ in speed
Definition at line 1263 of file NBEdge.cpp.
References getSpeed(), and myLanes.
Referenced by needsLaneSpecificOutput(), and NWWriter_XML::writeEdgesAndConnections().
| bool NBEdge::hasLaneSpecificWidth | ( | ) | const |
whether lanes differ in width
Definition at line 1252 of file NBEdge.cpp.
References getWidth(), and myLanes.
Referenced by needsLaneSpecificOutput(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_OpenDrive::writeNetwork().
| bool NBEdge::hasLoadedLength | ( | ) | const [inline] |
Returns whether a length was set explicitly.
Definition at line 381 of file NBEdge.h.
References myLoadedLength.
Referenced by NIXMLEdgesHandler::addEdge(), NWWriter_SUMO::writeEdge(), and NWWriter_XML::writeEdgesAndConnections().
| bool NBEdge::hasRestrictions | ( | ) | const |
whether at least one lane has restrictions
Definition at line 1213 of file NBEdge.cpp.
References myLanes.
Referenced by needsLaneSpecificOutput().
Definition at line 1835 of file NBEdge.cpp.
References myConnections.
Referenced by NBRequest::forbids().
| void NBEdge::incLaneNo | ( | unsigned int | by | ) |
Definition at line 1889 of file NBEdge.cpp.
References computeLaneShapes(), NBNode::getIncomingEdges(), invalidateConnections(), myFrom, myLanes, myOffset, mySpeed, myWidth, NBEdge::Lane::offset, NBEdge::Lane::speed, and NBEdge::Lane::width.
Referenced by NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NIXMLEdgesHandler::myEndElement(), and NIImporter_VISUM::parse_Lanes().
| void NBEdge::init | ( | unsigned int | noLanes, |
| bool | tryIgnoreNodePositions | ||
| ) | [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.
| [in] | noLanes | The number of lanes this edge has |
| [in] | tryIgnoreNodePositions | Does not add node geometries if geom.size()>=2 |
Definition at line 259 of file NBEdge.cpp.
References NBNode::addIncomingEdge(), NBNode::addOutgoingEdge(), NBHelpers::angle(), PositionVector::clear(), computeLaneShapes(), Position::distanceTo(), NBNode::getPosition(), myAngle, myFrom, myGeom, Named::myID, myLanes, myLength, myOffset, mySpeed, myTo, myWidth, NBEdge::Lane::offset, POSITION_EPS, PositionVector::push_back(), PositionVector::push_back_noDoublePos(), PositionVector::push_front(), PositionVector::push_front_noDoublePos(), PositionVector::removeDoublePoints(), PositionVector::size(), NBEdge::Lane::speed, NBEdge::Lane::width, WRITE_ERROR, Position::x(), and Position::y().
| void NBEdge::invalidateConnections | ( | bool | reallowSetting = false | ) |
Definition at line 752 of file NBEdge.cpp.
References INIT, INIT_REJECT_CONNECTIONS, myConnections, myStep, and myTurnDestination.
Referenced by addEdge2EdgeConnection(), addLane2LaneConnections(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), decLaneNo(), incLaneNo(), and NIXMLEdgesHandler::myEndElement().
Returns the information whethe a connection to the given edge has been added (or computed)
Turnaround edge is not ignored!
| [in] | e | The destination edge |
Definition at line 637 of file NBEdge.cpp.
References myConnections, and myTurnDestination.
Referenced by computeTurningDirections(), NIXMLConnectionsHandler::myStartElement(), and NBNode::removeSelfLoops().
| bool NBEdge::isInnerEdge | ( | ) | const [inline] |
Returns whether this edge was marked as being within an intersection.
Definition at line 770 of file NBEdge.h.
References myAmInnerEdge.
Referenced by NBNode::stateCode().
| bool NBEdge::isMacroscopicConnector | ( | ) | const [inline] |
Returns whether this edge was marked as a macroscopic connector.
Definition at line 755 of file NBEdge.h.
References myAmMacroscopicConnector.
Referenced by NBNodeCont::mayNeedOffRamp(), NBNodeCont::mayNeedOnRamp(), and NWWriter_SUMO::writeEdge().
Definition at line 1859 of file NBEdge.cpp.
References PositionVector::distances(), getGeometry(), and myGeom.
Referenced by NBNodeCont::joinSimilarEdges().
Returns whether the given edge is the opposite direction to this edge.
| [in] | n | The node at which this may be turnaround direction |
| [in] | edge | The edge which may be the turnaround direction |
Definition at line 1515 of file NBEdge.cpp.
References getAngle(), myFrom, myTo, myTurnDestination, and SUMOReal.
Referenced by NBNode::getDirection(), NBOwnTLDef::myCompute(), NBContHelper::opposite_finder::operator()(), NBRequest::setBlocking(), and NBNode::swapWhenReversed().
| std::pair< SUMOReal, SUMOReal > NBEdge::laneOffset | ( | const Position & | from, |
| const Position & | to, | ||
| SUMOReal | lanewidth, | ||
| unsigned int | lane, | ||
| size_t | noLanes, | ||
| LaneSpreadFunction | lsf, | ||
| bool | leftHand | ||
| ) | [static] |
Computes the offset from the edge shape on the current segment.
Definition at line 1190 of file NBEdge.cpp.
References GeomHelper::getNormal90D_CW(), LANESPREAD_RIGHT, and SUMOReal.
Referenced by NIImporter_SUMO::reconstructEdgeShape().
| std::pair< SUMOReal, SUMOReal > NBEdge::laneOffset | ( | const Position & | from, |
| const Position & | to, | ||
| SUMOReal | lanewidth, | ||
| unsigned int | lane | ||
| ) | throw (InvalidArgument) [private] |
Computes the offset from the edge shape on the current segment.
Definition at line 1182 of file NBEdge.cpp.
| bool NBEdge::lanesWereAssigned | ( | ) | const |
Definition at line 1572 of file NBEdge.cpp.
References LANES2LANES_DONE, LANES2LANES_USER, and myStep.
Referenced by NIVissimTL::NIVissimTLSignal::addTo().
| void NBEdge::markAsInLane2LaneState | ( | ) |
Definition at line 1934 of file NBEdge.cpp.
References NBNode::getOutgoingEdges(), LANES2LANES_DONE, myStep, and myTo.
Definition at line 1622 of file NBEdge.cpp.
References NBEdge::TLSDisabledConnection::fromLane, myTLSDisabledConnections, NBEdge::TLSDisabledConnection::to, and NBEdge::TLSDisabledConnection::toLane.
Referenced by NBOwnTLDef::collectLinks(), and NBOwnTLDef::myCompute().
| void NBEdge::moveConnectionToLeft | ( | unsigned int | lane | ) | [private] |
moves a connection one place to the left; Attention! no checking for field validity
Definition at line 840 of file NBEdge.cpp.
References getTurnDestination(), L2L_VALIDATED, myAmLeftHand, myConnections, setConnection(), NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.
Referenced by recheckLanes().
| void NBEdge::moveConnectionToRight | ( | unsigned int | lane | ) | [private] |
moves a connection one place to the right; Attention! no checking for field validity
Definition at line 863 of file NBEdge.cpp.
References getTurnDestination(), L2L_VALIDATED, myAmLeftHand, myConnections, setConnection(), NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.
Referenced by recheckLanes().
| void NBEdge::moveOutgoingConnectionsFrom | ( | NBEdge * | e, |
| unsigned int | laneOff | ||
| ) |
Definition at line 1557 of file NBEdge.cpp.
References addLane2LaneConnection(), getConnectionsFromLane(), getNumLanes(), L2L_COMPUTED, NBEdge::Connection::tlID, NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.
Referenced by NBEdgeCont::joinSameNodeConnectingEdges().
| bool NBEdge::needsLaneSpecificOutput | ( | ) | const |
whether at least one lane has values differing from the edges values
Definition at line 1285 of file NBEdge.cpp.
References hasLaneSpecificOffset(), hasLaneSpecificSpeed(), hasLaneSpecificWidth(), and hasRestrictions().
Referenced by NWWriter_XML::writeEdgesAndConnections().
| void NBEdge::preferVehicleClass | ( | int | lane, |
| SUMOVehicleClass | vclass | ||
| ) |
Definition at line 1983 of file NBEdge.cpp.
References myLanes.
Referenced by NIXMLEdgesHandler::addLane().
| std::vector< unsigned int > * NBEdge::preparePriorities | ( | const EdgeVector * | outgoing | ) | [private] |
recomputes the priorities and manipulates them for a distribution of lanes on edges which is more like in real-life
Definition at line 1448 of file NBEdge.cpp.
References NBEdge::MainDirections::DIR_FORWARD, NBEdge::MainDirections::DIR_RIGHTMOST, NBEdge::MainDirections::empty(), NBEdge::MainDirections::includes(), myLanes, and myTo.
Referenced by divideOnEdges().
| bool NBEdge::recheckLanes | ( | ) |
recheck whether all lanes within the edge are all right and optimises the connections once again
Definition at line 1337 of file NBEdge.cpp.
References LANES2LANES_DONE, LANES2LANES_USER, moveConnectionToLeft(), moveConnectionToRight(), myConnections, myLanes, and myStep.
| void NBEdge::reinit | ( | NBNode * | from, |
| NBNode * | to, | ||
| const std::string & | type, | ||
| SUMOReal | speed, | ||
| unsigned int | nolanes, | ||
| int | priority, | ||
| PositionVector | geom, | ||
| SUMOReal | width, | ||
| SUMOReal | offset, | ||
| const std::string & | streetName, | ||
| LaneSpreadFunction | spread = LANESPREAD_RIGHT, |
||
| bool | tryIgnoreNodePositions = false |
||
| ) |
Resets initial values.
| [in] | from | The node the edge starts at |
| [in] | to | The node the edge ends at |
| [in] | type | The type of the edge (may be =="") |
| [in] | speed | The maximum velocity allowed on this edge |
| [in] | nolanes | The number of lanes this edge has |
| [in] | priority | This edge's priority |
| [in] | geom | The edge's geomatry |
| [in] | width | This edge's lane width |
| [in] | offset | Additional offset to the destination node |
| [in] | streetName | The street name (need not be unique) |
| [in] | spread | How the lateral offset of the lanes shall be computed |
| [in] | tryIgnoreNodePositions | Does not add node geometries if geom.size()>=2 |
Definition at line 226 of file NBEdge.cpp.
References StringUtils::convertUmlaute(), init(), myFrom, myGeom, myLaneSpreadFunction, myLoadedLength, myOffset, myPriority, mySpeed, myStreetName, myTo, myType, myWidth, NBNode::removeEdge(), UNSPECIFIED_LOADED_LENGTH, and width().
Referenced by NIXMLEdgesHandler::addEdge(), and NBNodeCont::joinNodeClusters().
| 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
Definition at line 716 of file NBEdge.cpp.
References addEdge2EdgeConnection(), EDGE2EDGES, getConnectedEdges(), myStep, and removeFromConnections().
Referenced by NBNode::removeSelfLoops().
| void NBEdge::removeFromConnections | ( | NBEdge * | toEdge, |
| int | fromLane = -1, |
||
| int | toLane = -1 |
||
| ) |
Removes the specified connection(s)
| [in] | toEdge | The destination edge |
| [in] | fromLane | The lane from which connections shall be removed; -1 means remove all |
| [in] | toLane | The lane to which connections shall be removed; -1 means remove all |
Definition at line 732 of file NBEdge.cpp.
References NBEdge::Connection::fromLane, myConnections, myTurnDestination, NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.
Referenced by decLaneNo(), NIXMLConnectionsHandler::myStartElement(), remapConnections(), and replaceInConnections().
Definition at line 764 of file NBEdge.cpp.
References myConnections, myTurnDestination, and UNUSED_PARAMETER.
Referenced by NBNode::replaceOutgoing().
| void NBEdge::replaceInConnections | ( | NBEdge * | which, |
| const std::vector< NBEdge::Connection > & | origConns | ||
| ) |
Definition at line 779 of file NBEdge.cpp.
References L2L_COMPUTED, myConnections, removeFromConnections(), and setConnection().
| void NBEdge::reshiftPosition | ( | SUMOReal | xoff, |
| SUMOReal | yoff | ||
| ) |
Applies an offset to the edge.
| [in] | xoff | The x-offset to apply |
| [in] | yoff | The y-offset to apply |
Definition at line 315 of file NBEdge.cpp.
References myGeom, myLanes, and PositionVector::reshiftRotate().
| void NBEdge::setAsMacroscopicConnector | ( | ) | [inline] |
Marks this edge as a macroscopic connector.
Definition at line 747 of file NBEdge.h.
References myAmMacroscopicConnector.
Referenced by NIImporter_VISUM::parse_Connectors().
| void NBEdge::setConnection | ( | unsigned int | lane, |
| NBEdge * | destEdge, | ||
| unsigned int | destLane, | ||
| Lane2LaneInfoType | type, | ||
| bool | mayUseSameDestination = false, |
||
| bool | mayDefinitelyPass = false |
||
| ) |
Adds a connection to a certain lane of a certain edge.
| [in] | lane | The connection's starting lane (of this edge) |
| [in] | destEdge | The connection's destination edge |
| [in] | destLane | The connection's destination lane |
| [in] | type | The connections's type |
| [in] | mayUseSameDestination | Whether this connection may be set though connecting an already connected lane |
| [in] | mayDefinitelyPass | Whether this connection is definitely undistrubed (special case for on-ramps) |
Definition at line 564 of file NBEdge.cpp.
References getLaneID(), hasConnectionTo(), INIT_REJECT_CONNECTIONS, L2L_COMPUTED, L2L_USER, LANES2LANES_DONE, LANES2LANES_RECHECK, LANES2LANES_USER, myConnections, myLanes, myStep, and WRITE_ERROR.
Referenced by addLane2LaneConnection(), appendTurnaround(), NBNode::computeLanes2Lanes(), moveConnectionToLeft(), moveConnectionToRight(), and replaceInConnections().
| bool NBEdge::setControllingTLInformation | ( | const NBConnection & | c, |
| const std::string & | tlID | ||
| ) |
Returns if the link could be set as to be controlled.
Definition at line 1633 of file NBEdge.cpp.
References NBEdge::TLSDisabledConnection::fromLane, NBConnection::getFromLane(), Named::getID(), NBConnection::getTLIndex(), NBConnection::getTo(), NBConnection::getToLane(), myConnections, myLanes, myTLSDisabledConnections, NBEdge::Connection::tlID, NBEdge::Connection::tlLinkNo, NBEdge::TLSDisabledConnection::to, NBEdge::TLSDisabledConnection::toLane, and WRITE_WARNING.
Referenced by NBLoadedSUMOTLDef::addConnection(), NBLoadedSUMOTLDef::removeConnection(), NBOwnTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), and NBLoadedSUMOTLDef::setTLControllingInformation().
| 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...
| [in] | g | The edge's new geometry |
| [in] | inner | whether g should be interpreted as inner points |
Definition at line 347 of file NBEdge.cpp.
References computeLaneShapes(), PositionVector::getBegin(), PositionVector::getEnd(), myGeom, PositionVector::push_back(), and PositionVector::push_front().
Referenced by NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), NBNodeCont::joinNodeClusters(), and NIXMLEdgesHandler::myEndElement().
| void Named::setID | ( | const std::string & | newID | ) | [inline, inherited] |
| void NBEdge::setIsInnerEdge | ( | ) | [inline] |
Marks this edge being within an intersection.
Definition at line 762 of file NBEdge.h.
References myAmInnerEdge.
| void NBEdge::setJunctionPriority | ( | const NBNode *const | node, |
| int | prio | ||
| ) |
Sets the junction priority of the edge.
| [in] | node | The node for which the edge's priority is given |
| [in] | prio | The edge's new priority at this node |
Definition at line 1025 of file NBEdge.cpp.
References myFrom, myFromJunctionPriority, and myToJunctionPriority.
Referenced by NBNode::extractAndMarkFirst(), and NBNode::setPriorityJunctionPriorities().
| void NBEdge::setLaneSpreadFunction | ( | LaneSpreadFunction | spread | ) |
(Re)sets how the lanes lateral offset shall be computed
| [in] | spread | The type of lateral offset to apply |
Definition at line 443 of file NBEdge.cpp.
References myLaneSpreadFunction.
Referenced by NIImporter_VISUM::parse_Edges().
| void NBEdge::setLeftHanded | ( | ) | [inline] |
Marks this edge to be left-handed.
Definition at line 309 of file NBEdge.h.
References myAmLeftHand.
Referenced by NBEdgeCont::insert().
| void NBEdge::setLoadedLength | ( | SUMOReal | val | ) |
Definition at line 2093 of file NBEdge.cpp.
References myLoadedLength.
Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addEdge(), and NIImporter_MATSim::EdgesHandler::myStartElement().
| void NBEdge::setOffset | ( | int | lane, |
| SUMOReal | offset | ||
| ) |
set lane specific end-offset (negative lane implies set for all lanes)
Definition at line 2014 of file NBEdge.cpp.
References myLanes, and myOffset.
Referenced by NIImporter_SUMO::_loadNetwork(), and NIXMLEdgesHandler::addLane().
| void NBEdge::setSpeed | ( | int | lane, |
| SUMOReal | offset | ||
| ) |
set lane specific speed (negative lane implies set for all lanes)
Definition at line 2030 of file NBEdge.cpp.
References myLanes, and mySpeed.
Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addLane(), NIVissimEdge::buildNBEdge(), NBEdge(), and NBEdgeCont::splitAt().
| void NBEdge::setStreetName | ( | const std::string & | name | ) | [inline] |
| void NBEdge::setTurningDestination | ( | NBEdge * | e | ) |
Definition at line 1065 of file NBEdge.cpp.
References acceptBeingTurning(), getAngle(), myTurnDestination, NBHelpers::relAngle(), and SUMOReal.
Referenced by computeTurningDirections(), and NIImporter_VISUM::parse_Turns().
| void NBEdge::setVehicleClasses | ( | const SUMOVehicleClasses & | allowed, |
| const SUMOVehicleClasses & | disallowed, | ||
| int | lane = -1 |
||
| ) |
set allowed/disallowed classes for the given lane or for all lanes if -1 is given
Definition at line 2046 of file NBEdge.cpp.
References allowVehicleClass(), and disallowVehicleClass().
Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addEdge(), NIImporter_OpenStreetMap::insertEdge(), and NBEdge().
| void NBEdge::setWidth | ( | int | lane, |
| SUMOReal | width | ||
| ) |
set lane specific width (negative lane implies set for all lanes)
Definition at line 1998 of file NBEdge.cpp.
References myLanes, myWidth, and width().
Referenced by NIImporter_SUMO::_loadNetwork(), and NIXMLEdgesHandler::addLane().
| void NBEdge::sortOutgoingConnectionsByAngle | ( | ) |
sorts the outgoing connections by their angle relative to their junction
Definition at line 704 of file NBEdge.cpp.
References myConnections, and myTo.
| void NBEdge::sortOutgoingConnectionsByIndex | ( | ) |
sorts the outgoing connections by their from-lane-index and their to-lane-index
Definition at line 710 of file NBEdge.cpp.
References connections_sorter(), and myConnections.
Referenced by NWWriter_XML::writeEdgesAndConnections(), and NWWriter_SUMO::writeNetwork().
| bool NBEdge::splitGeometry | ( | NBEdgeCont & | ec, |
| NBNodeCont & | nc | ||
| ) |
Splits this edge at geometry points.
| [in] | ec | The edge cont to add new edges to |
| [in] | nc | The node cont to add new nodes to |
Definition at line 455 of file NBEdge.cpp.
References NBNode::addIncomingEdge(), PositionVector::clear(), NBNode::getPosition(), INIT, NBEdgeCont::insert(), NBNodeCont::insert(), myFrom, myGeom, Named::myID, myLanes, myLaneSpreadFunction, myPriority, mySpeed, myStep, myStreetName, myTo, myType, myWidth, NBEdge(), PositionVector::push_back(), NBNode::removeEdge(), NBNodeCont::retrieve(), PositionVector::size(), toString(), and UNSPECIFIED_OFFSET.
| PositionVector NBEdge::startShapeAt | ( | const PositionVector & | laneShape, |
| const NBNode * | startNode, | ||
| unsigned int | laneIndex | ||
| ) | const [private] |
returns a modified version of laneShape which starts at the outside of startNode. laneShape may be shorted or extended
Definition at line 393 of file NBEdge.cpp.
References PositionVector::eraseAt(), Line::extrapolateBy(), PositionVector::getBegLine(), Named::getID(), getLaneID(), Line::getPositionAtDistance(), NBNode::getShape(), PositionVector::getSubpart(), PositionVector::intersects(), Line::intersectsAtLengths2D(), PositionVector::intersectsAtLengths2D(), PositionVector::length(), Line::p1(), Line::p2(), PositionVector::push_front_noDoublePos(), and SUMOReal.
Referenced by computeEdgeShape().
| NBNode * NBEdge::tryGetNodeAtPosition | ( | SUMOReal | pos, |
| SUMOReal | tolerance = 5.0 |
||
| ) | const |
| SUMOReal NBEdge::width | ( | ) | const |
Definition at line 1746 of file NBEdge.cpp.
References myLanes, SUMO_const_laneOffset, SUMO_const_laneWidth, and SUMOReal.
Referenced by getMaxLaneOffsetPositionAt(), getMinLaneOffsetPositionAt(), reinit(), and setWidth().
friend class GNELane [friend] |
friend class NBEdgeCont [friend] |
friend class NBEdgeSuccessorBuilder [friend] |
bool NBEdge::myAmInnerEdge [private] |
Information whether this is a junction-inner edge.
Definition at line 1180 of file NBEdge.h.
Referenced by isInnerEdge(), and setIsInnerEdge().
bool NBEdge::myAmLeftHand [private] |
Whether this edge is a left-hand edge.
Definition at line 1167 of file NBEdge.h.
Referenced by divideOnEdges(), getCCWBoundaryLine(), getCWBoundaryLine(), moveConnectionToLeft(), moveConnectionToRight(), and setLeftHanded().
bool NBEdge::myAmMacroscopicConnector [private] |
Information whether this edge is a (macroscopic) connector.
Definition at line 1183 of file NBEdge.h.
Referenced by isMacroscopicConnector(), and setAsMacroscopicConnector().
NBEdge* NBEdge::myAmTurningOf [private] |
Was assigned as a turning edge of this one.
Definition at line 1176 of file NBEdge.h.
Referenced by acceptBeingTurning().
SUMOReal NBEdge::myAmTurningWithAngle [private] |
Was assigned as a turn with this angle.
Definition at line 1174 of file NBEdge.h.
Referenced by acceptBeingTurning().
SUMOReal NBEdge::myAngle [private] |
The angle of the edge.
Definition at line 1124 of file NBEdge.h.
Referenced by getAngle(), getNormedAngle(), and init().
std::vector<Connection> NBEdge::myConnections [private] |
List of connections to following edges.
Definition at line 1135 of file NBEdge.h.
Referenced by addEdge2EdgeConnection(), append(), buildInnerEdges(), clearControllingTLInformation(), computeEdge2Edges(), computeLanes2Edges(), computeTurningDirections(), copyConnectionsFrom(), divideOnEdges(), expandableBy(), getConnectedEdges(), getConnectedSorted(), getConnectionLanes(), getConnections(), getConnectionsFromLane(), hasConnectionTo(), hasSignalisedConnectionTo(), invalidateConnections(), isConnectedTo(), moveConnectionToLeft(), moveConnectionToRight(), recheckLanes(), removeFromConnections(), replaceInConnections(), setConnection(), setControllingTLInformation(), sortOutgoingConnectionsByAngle(), and sortOutgoingConnectionsByIndex().
NBNode* NBEdge::myFrom [private] |
The source and the destination node.
Definition at line 1118 of file NBEdge.h.
Referenced by addEdge2EdgeConnection(), addLane2LaneConnection(), computeEdgeShape(), computeLaneShapes(), decLaneNo(), NBEdgeCont::extract(), getAngle(), getCCWBoundaryLine(), getCWBoundaryLine(), getFromNode(), getJunctionPriority(), getMaxLaneOffsetPositionAt(), getMinLaneOffsetPositionAt(), hasDefaultGeometryEndpoints(), incLaneNo(), init(), isTurningDirectionAt(), reinit(), NBEdgeCont::retrievePossiblySplitted(), setJunctionPriority(), NBEdgeCont::splitAt(), splitGeometry(), and tryGetNodeAtPosition().
int NBEdge::myFromJunctionPriority [private] |
The priority normalised for the node the edge is outgoing of.
Definition at line 1141 of file NBEdge.h.
Referenced by getJunctionPriority(), and setJunctionPriority().
PositionVector NBEdge::myGeom [private] |
The geometry for the edge.
Definition at line 1147 of file NBEdge.h.
Referenced by addGeometryPoint(), append(), computeLaneShapes(), getAngle(), getGeometry(), hasDefaultGeometry(), hasDefaultGeometryEndpoints(), init(), isNearEnough2BeJoined2(), reinit(), reshiftPosition(), setGeometry(), and splitGeometry().
std::string Named::myID [protected, inherited] |
The name of the object.
Reimplemented in MS_E2_ZS_CollectorOverLanes.
Definition at line 83 of file Named.h.
Referenced by NLDetectorBuilder::addE3Entry(), NLDetectorBuilder::addE3Exit(), RORouteDef_OrigDest::buildCurrentRoute(), RORouteDef_Complete::buildCurrentRoute(), RORouteDef_Alternatives::buildCurrentRoute(), computeEdgeShape(), Named::getID(), getLaneID(), init(), MSRoute::release(), Named::setID(), splitGeometry(), MSXMLRawOut::writeLane(), NBNode::writeLogic(), MSMeanData::writeXMLOutput(), and MSE3Collector::writeXMLOutput().
std::vector<Lane> NBEdge::myLanes [private] |
Lane information.
Definition at line 1161 of file NBEdge.h.
Referenced by allowVehicleClass(), append(), appendTurnaround(), computeEdgeShape(), computeLaneShapes(), decLaneNo(), disallowVehicleClass(), dismissVehicleClassInformation(), divideOnEdges(), expandableBy(), getAllowedVehicleClasses(), getCCWBoundaryLine(), getCWBoundaryLine(), getDisallowedVehicleClasses(), getLaneID(), getLanes(), getLaneShape(), getLaneSpeed(), getLaneStruct(), getMaxLaneOffset(), getMaxLaneOffsetPositionAt(), getMinLaneOffsetPositionAt(), getNumLanes(), hasLaneSpecificAllow(), hasLaneSpecificDisallow(), hasLaneSpecificOffset(), hasLaneSpecificSpeed(), hasLaneSpecificWidth(), hasRestrictions(), incLaneNo(), init(), preferVehicleClass(), preparePriorities(), recheckLanes(), reshiftPosition(), setConnection(), setControllingTLInformation(), setOffset(), setSpeed(), setWidth(), NBEdgeCont::splitAt(), splitGeometry(), and width().
The information about how to spread the lanes.
Definition at line 1150 of file NBEdge.h.
Referenced by getLaneSpreadFunction(), reinit(), setLaneSpreadFunction(), NBEdgeCont::splitAt(), and splitGeometry().
SUMOReal NBEdge::myLength [private] |
The length of the edge.
Definition at line 1121 of file NBEdge.h.
Referenced by append(), computeEdgeShape(), getLength(), getLoadedLength(), init(), and tryGetNodeAtPosition().
SUMOReal NBEdge::myLoadedLength [private] |
An optional length to use (-1 if not valid)
Definition at line 1164 of file NBEdge.h.
Referenced by getLoadedLength(), hasLoadedLength(), reinit(), and setLoadedLength().
SUMOReal NBEdge::myOffset [private] |
This edges's offset to the intersection begin (will be applied to all lanes)
Definition at line 1153 of file NBEdge.h.
Referenced by getOffset(), incLaneNo(), init(), reinit(), setOffset(), and NBEdgeCont::splitAt().
int NBEdge::myPriority [private] |
The priority of the edge.
Definition at line 1127 of file NBEdge.h.
Referenced by getPriority(), reinit(), and splitGeometry().
SUMOReal NBEdge::mySpeed [private] |
The maximal speed.
Definition at line 1130 of file NBEdge.h.
Referenced by expandableBy(), getSpeed(), incLaneNo(), init(), reinit(), setSpeed(), NBEdgeCont::splitAt(), and splitGeometry().
EdgeBuildingStep NBEdge::myStep [private] |
The building step.
Definition at line 1112 of file NBEdge.h.
Referenced by addEdge2EdgeConnection(), addLane2LaneConnection(), append(), computeEdge2Edges(), computeLanes2Edges(), copyConnectionsFrom(), declareConnectionsAsLoaded(), expandableBy(), getStep(), invalidateConnections(), lanesWereAssigned(), markAsInLane2LaneState(), recheckLanes(), remapConnections(), setConnection(), and splitGeometry().
std::string NBEdge::myStreetName [private] |
The street name (or whatever arbitrary string you wish to attach)
Definition at line 1195 of file NBEdge.h.
Referenced by getStreetName(), reinit(), setStreetName(), and splitGeometry().
std::vector<TLSDisabledConnection> NBEdge::myTLSDisabledConnections [private] |
Definition at line 1191 of file NBEdge.h.
Referenced by disableConnection4TLS(), mayBeTLSControlled(), and setControllingTLInformation().
NBNode * NBEdge::myTo [private] |
Definition at line 1118 of file NBEdge.h.
Referenced by addEdge2EdgeConnection(), addLane2LaneConnection(), append(), appendTurnaround(), computeEdge2Edges(), computeEdgeShape(), computeLaneShapes(), computeTurningDirections(), decLaneNo(), NBEdgeCont::extract(), getAngle(), getConnectedSorted(), getToNode(), hasDefaultGeometryEndpoints(), init(), isTurningDirectionAt(), markAsInLane2LaneState(), preparePriorities(), reinit(), NBEdgeCont::retrievePossiblySplitted(), sortOutgoingConnectionsByAngle(), NBEdgeCont::splitAt(), splitGeometry(), and tryGetNodeAtPosition().
int NBEdge::myToJunctionPriority [private] |
The priority normalised for the node the edge is incoming in.
Definition at line 1144 of file NBEdge.h.
Referenced by getJunctionPriority(), and setJunctionPriority().
NBEdge* NBEdge::myTurnDestination [private] |
The turn destination edge.
Definition at line 1138 of file NBEdge.h.
Referenced by append(), appendTurnaround(), computeTurningDirections(), getConnectedSorted(), getConnectionLanes(), getTurnDestination(), invalidateConnections(), isConnectedTo(), isTurningDirectionAt(), removeFromConnections(), replaceInConnections(), and setTurningDestination().
std::string NBEdge::myType [private] |
The type of the edge.
Definition at line 1115 of file NBEdge.h.
Referenced by getTypeID(), getTypeName(), reinit(), NBEdgeCont::splitAt(), and splitGeometry().
SUMOReal NBEdge::myWidth [private] |
This width of this edge's lanes.
Definition at line 1156 of file NBEdge.h.
Referenced by getWidth(), incLaneNo(), init(), reinit(), setWidth(), NBEdgeCont::splitAt(), and splitGeometry().
const SUMOReal NBEdge::UNSPECIFIED_LOADED_LENGTH = -1 [static] |
no length override given
Definition at line 193 of file NBEdge.h.
Referenced by NIXMLEdgesHandler::addEdge(), NIImporter_SUMO::addEdge(), and reinit().
const SUMOReal NBEdge::UNSPECIFIED_OFFSET = 0 [static] |
unspecified lane offset
Definition at line 191 of file NBEdge.h.
Referenced by NIImporter_SUMO::_loadNetwork(), NIXMLEdgesHandler::addEdge(), NIImporter_SUMO::addLane(), NIImporter_OpenStreetMap::insertEdge(), NBEdgeCont::joinSameNodeConnectingEdges(), NIImporter_VISUM::parse_Connectors(), NIImporter_VISUM::parse_Edges(), splitGeometry(), and NWWriter_XML::writeEdgesAndConnections().
const SUMOReal NBEdge::UNSPECIFIED_WIDTH = -1 [static] |
unspecified lane width
Definition at line 189 of file NBEdge.h.
Referenced by NIImporter_SUMO::_loadNetwork(), NIImporter_OpenStreetMap::_loadNetwork(), NIImporter_SUMO::addLane(), NBEdgeCont::joinSameNodeConnectingEdges(), NIImporter_VISUM::parse_Connectors(), NIImporter_VISUM::parse_Edges(), NWWriter_XML::writeEdgesAndConnections(), and NWWriter_SUMO::writeLane().