Eclipse SUMO - Simulation of Urban MObility
MSEdge Class Reference

A road/street connecting two junctions. More...

#include <MSEdge.h>

Inheritance diagram for MSEdge:
Collaboration diagram for MSEdge:

Data Structures

class  by_id_sorter
 Sorts edges by their ids. More...
 
class  transportable_by_position_sorter
 Sorts transportables by their positions. More...
 

Public Member Functions

virtual void addContainer (MSTransportable *container) const
 Add a container to myContainers. More...
 
virtual void addPerson (MSTransportable *p) const
 
void addTo (const StoringVisitor &cont) const
 Adds this object to the given container. More...
 
bool allowsLaneChanging () const
 
void buildLaneChanger ()
 Has to be called after all sucessors and predecessors have been set (after closeBuilding()) More...
 
bool canChangeToOpposite ()
 whether this edge allows changing to the opposite direction edge More...
 
virtual void changeLanes (SUMOTime t)
 Performs lane changing on this edge. More...
 
void clearParameter ()
 Clears the parameter map. More...
 
void closeBuilding ()
 
const std::vector< std::string > & getCrossingEdges () const
 Gets the crossed edge ids. More...
 
double getCurrentTravelTime (const double minSpeed=NUMERICAL_EPS) const
 Computes and returns the current travel time for this edge. More...
 
double getDistanceTo (const MSEdge *other, const bool doBoundaryEstimate=false) const
 optimistic air distance heuristic for use in routing More...
 
double getDouble (const std::string &key, const double defaultValue) const
 Returns the value for a given key converted to a double. More...
 
const std::string & getID () const
 Returns the id. More...
 
const MSEdgegetInternalFollowingEdge (const MSEdge *followerAfterInternal) const
 
double getInternalFollowingLengthTo (const MSEdge *followerAfterInternal) const
 returns the length of all internal edges on the junction until reaching the non-internal edge followerAfterInternal. More...
 
double getLength () const
 return the length of the edge More...
 
double getLengthGeometryFactor () const
 return shape.length() / myLength More...
 
double getMeanSpeed () const
 get the mean speed More...
 
double getMinimumTravelTime (const SUMOVehicle *const veh) const
 returns the minimum travel time for the given vehicle More...
 
const MSEdgegetNormalBefore () const
 if this edge is an internal edge, return its first normal predecessor, otherwise the edge itself More...
 
const MSEdgegetOppositeEdge () const
 Returns the opposite direction edge if on exists else a nullptr. More...
 
const std::string getParameter (const std::string &key, const std::string &defaultValue="") const
 Returns the value for a given key. More...
 
const std::map< std::string, std::string > & getParametersMap () const
 Returns the inner key/value map. More...
 
SVCPermissions getPermissions () const
 
double getRoutingSpeed () const
 Returns the averaged speed used by the routing device. More...
 
double getSpeedLimit () const
 Returns the speed limit of the edge The speed limit of the first lane is retured; should probably be the fastest edge. More...
 
const std::vector< double > getSubLaneSides () const
 Returns the right side offsets of this edge's sublanes. More...
 
double getVehicleMaxSpeed (const SUMOTrafficObject *const veh) const
 Returns the maximum speed the vehicle may use on this edge. More...
 
double getWidth () const
 Returns the edges's width (sum over all lanes) More...
 
bool hasLaneChanger () const
 
bool hasMinorLink () const
 whether any lane has a minor link More...
 
void initialize (const std::vector< MSLane *> *lanes)
 Initialize the edge. More...
 
bool isDelayed () const
 
bool isFringe () const
 return whether this edge is at the fringe of the network More...
 
bool isRoundabout () const
 
virtual bool isSelected () const
 whether this lane is selected in the GUI More...
 
bool knowsParameter (const std::string &key) const
 Returns whether the parameter is known. More...
 
virtual void lock () const
 grant exclusive access to the mesoscopic state More...
 
void markAsRoundabout ()
 
void markDelayed () const
 
 MSEdge (const std::string &id, int numericalID, const SumoXMLEdgeFunc function, const std::string &streetName, const std::string &edgeType, int priority, double distance)
 Constructor. More...
 
bool prohibits (const SUMOVehicle *const vehicle) const
 Returns whether the vehicle (class) is not allowed on the edge. More...
 
void rebuildAllowedLanes ()
 
void rebuildAllowedTargets (const bool updateVehicles=true)
 
void recalcCache ()
 Recalculates the cached values. More...
 
virtual void removeContainer (MSTransportable *container) const
 Remove container from myContainers. More...
 
virtual void removePerson (MSTransportable *p) const
 
void setCrossingEdges (const std::vector< std::string > &crossingEdges)
 Sets the crossed edge ids for a crossing edge. More...
 
void setID (const std::string &newID)
 resets the id More...
 
void setMaxSpeed (double val) const
 Sets a new maximum speed for all lanes (used by TraCI and MSCalibrator) More...
 
void setParameter (const std::string &key, const std::string &value)
 Sets a parameter. More...
 
virtual void unlock () const
 release exclusive access to the mesoscopic state 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 &device) const
 write Params in the given outputdevice More...
 
virtual ~MSEdge ()
 Destructor. More...
 
Access to the edge's lanes
MSLaneleftLane (const MSLane *const lane) const
 Returns the lane left to the one given, 0 if the given lane is leftmost. More...
 
MSLanerightLane (const MSLane *const lane) const
 Returns the lane right to the one given, 0 if the given lane is rightmost. More...
 
MSLaneparallelLane (const MSLane *const lane, int offset, bool includeOpposite=true) const
 Returns the lane with the given offset parallel to the given lane one or 0 if it does not exist. More...
 
const std::vector< MSLane * > & getLanes () const
 Returns this edge's lanes. More...
 
const std::set< MSTransportable * > & getPersons () const
 Returns this edge's persons set. More...
 
std::vector< MSTransportable * > getSortedPersons (SUMOTime timestep, bool includeRiding=false) const
 Returns this edge's persons sorted by pos. More...
 
std::vector< MSTransportable * > getSortedContainers (SUMOTime timestep, bool includeRiding=false) const
 Returns this edge's containers sorted by pos. More...
 
const std::vector< MSLane * > * allowedLanes (const MSEdge &destination, SUMOVehicleClass vclass=SVC_IGNORING) const
 Get the allowed lanes to reach the destination-edge. More...
 
const std::vector< MSLane * > * allowedLanes (SUMOVehicleClass vclass=SVC_IGNORING) const
 Get the allowed lanes for the given vehicle class. More...
 
Access to other edge attributes
SumoXMLEdgeFunc getFunction () const
 Returns the edge type (SumoXMLEdgeFunc) More...
 
bool isNormal () const
 return whether this edge is an internal edge More...
 
bool isInternal () const
 return whether this edge is an internal edge More...
 
bool isCrossing () const
 return whether this edge is a pedestrian crossing More...
 
void checkAndRegisterBiDirEdge (const std::string &bidiID="")
 check and register the opposite superposable edge if any More...
 
const MSEdgegetBidiEdge () const
 return opposite superposable/congruent edge, if it exist and 0 else More...
 
bool isWalkingArea () const
 return whether this edge is walking area More...
 
bool isTazConnector () const
 
int getNumericalID () const
 Returns the numerical id of the edge. More...
 
const std::string & getStreetName () const
 Returns the street name of the edge. More...
 
const std::string & getEdgeType () const
 Returns the type of the edge. More...
 
int getPriority () const
 Returns the priority of the edge. More...
 
double getDistance () const
 Returns the kilometrage/mileage at the start of the edge. More...
 
Access to succeeding/predecessing edges
void addSuccessor (MSEdge *edge, const MSEdge *via=nullptr)
 Adds an edge to the list of edges which may be reached from this edge and to the incoming of the other edge. More...
 
int getNumSuccessors () const
 Returns the number of edges that may be reached from this edge. More...
 
const MSEdgeVectorgetSuccessors (SUMOVehicleClass vClass=SVC_IGNORING) const
 Returns the following edges, restricted by vClass. More...
 
const MSConstEdgePairVectorgetViaSuccessors (SUMOVehicleClass vClass=SVC_IGNORING) const
 Returns the following edges with internal vias, restricted by vClass. More...
 
int getNumPredecessors () const
 Returns the number of edges this edge is connected to. More...
 
const MSEdgeVectorgetPredecessors () const
 
const MSJunctiongetFromJunction () const
 
const MSJunctiongetToJunction () const
 
void setJunctions (MSJunction *from, MSJunction *to)
 
Access to vaporizing interface
bool isVaporizing () const
 Returns whether vehicles on this edge shall be vaporized. More...
 
SUMOTime incVaporization (SUMOTime t)
 Enables vaporization. More...
 
SUMOTime decVaporization (SUMOTime t)
 Disables vaporization. More...
 
Methods releated to vehicle insertion
bool insertVehicle (SUMOVehicle &v, SUMOTime time, const bool checkOnly=false, const bool forceCheck=false) const
 Tries to insert the given vehicle into the network. More...
 
MSLanegetFreeLane (const std::vector< MSLane *> *allowed, const SUMOVehicleClass vclass, double departPos) const
 Finds the emptiest lane allowing the vehicle class. More...
 
MSLanegetDepartLane (MSVehicle &veh) const
 Finds a depart lane for the given vehicle parameters. More...
 
SUMOTime getLastFailedInsertionTime () const
 Returns the last time a vehicle could not be inserted. More...
 
void setLastFailedInsertionTime (SUMOTime time) const
 Sets the last time a vehicle could not be inserted. More...
 

Static Public Member Functions

static void clear ()
 Clears the dictionary. More...
 
static bool dictionary (const std::string &id, MSEdge *edge)
 Inserts edge into the static dictionary Returns true if the key id isn't already in the dictionary. Otherwise returns false. More...
 
static MSEdgedictionary (const std::string &id)
 Returns the MSEdge associated to the key id if exists, otherwise returns 0. More...
 
static int dictSize ()
 Returns the number of edges. More...
 
static const MSEdgeVectorgetAllEdges ()
 Returns all edges with a numerical id. 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 const Position getStopPosition (const SUMOVehicleParameter::Stop &stop)
 return the coordinates of the center of the given stop More...
 
static double getTravelTimeStatic (const MSEdge *const edge, const SUMOVehicle *const veh, double time)
 Returns the travel time for the given edge. More...
 
static void insertIDs (std::vector< std::string > &into)
 Inserts IDs of all known edges into the given vector. More...
 
Static parser helper
static void parseEdgesList (const std::string &desc, ConstMSEdgeVector &into, const std::string &rid)
 Parses the given string assuming it contains a list of edge ids divided by spaces. More...
 
static void parseEdgesList (const std::vector< std::string > &desc, ConstMSEdgeVector &into, const std::string &rid)
 Parses the given string vector assuming it edge ids. More...
 

Protected Member Functions

double getDepartPosBound (const MSVehicle &veh, bool upper=true) const
 return upper bound for the depart position on this edge More...
 

Protected Attributes

bool myAmDelayed
 whether this edge had a vehicle with less than max speed on it More...
 
bool myAmFringe
 whether this edge is at the network fringe More...
 
bool myAmRoundabout
 whether this edge belongs to a roundabout More...
 
Boundary myBoundary
 The bounding rectangle of end nodes incoming or outgoing edges for taz connectors or of my own start and end node for normal edges. More...
 
std::map< SUMOVehicleClass, MSEdgeVectormyClassesSuccessorMap
 The successors available for a given vClass. More...
 
std::map< SUMOVehicleClass, MSConstEdgePairVectormyClassesViaSuccessorMap
 The successors available for a given vClass. More...
 
std::set< MSTransportable * > myContainers
 Containers on the edge. More...
 
std::vector< std::string > myCrossingEdges
 The crossed edges id for a crossing edge. On not crossing edges it is empty. More...
 
const double myDistance
 the kilometrage/mileage at the start of the edge More...
 
std::string myEdgeType
 the type of the edge (optionally used during network creation) More...
 
double myEmptyTraveltime
 the traveltime on the empty edge (cached value for speedup) More...
 
std::set< int > myFailedInsertionMemory
 A cache for the rejected insertion attempts. Used to assure that no further insertion attempts are made on a lane where an attempt has already failed in the current time step if MSInsertionControl::myEagerInsertionCheck is off. More...
 
MSJunctionmyFromJunction
 the junctions for this edge More...
 
const SumoXMLEdgeFunc myFunction
 the purpose of the edge More...
 
std::string myID
 The name of the object. More...
 
MSLaneChangermyLaneChanger
 This member will do the lane-change. More...
 
const std::vector< MSLane * > * myLanes
 Container for the edge's lane; should be sorted: (right-hand-traffic) the more left the lane, the higher the container-index. More...
 
SUMOTime myLastFailedInsertionTime
 The time of last insertion failure. More...
 
double myLength
 the length of the edge (cached value for speedup) More...
 
const int myNumericalID
 This edge's numerical id. More...
 
std::set< MSTransportable * > myPersons
 Persons on the edge for drawing and pushbutton. More...
 
MSEdgeVector myPredecessors
 The preceeding edges. More...
 
const int myPriority
 the priority of the edge (used during network creation) More...
 
std::string myStreetName
 the real-world name of this edge (need not be unique) More...
 
std::vector< double > mySublaneSides
 the right side for each sublane on this edge More...
 
MSEdgeVector mySuccessors
 The succeeding edges. More...
 
double myTimePenalty
 flat penalty when computing traveltime More...
 
MSJunctionmyToJunction
 
int myVaporizationRequests
 Vaporizer counter. More...
 
MSConstEdgePairVector myViaSuccessors
 
double myWidth
 Edge width [m]. More...
 
Storages for allowed lanes (depending on vehicle classes)
AllowedLanesCont myAllowed
 Associative container from vehicle class to allowed-lanes. More...
 
AllowedLanesByTarget myAllowedTargets
 From target edge to lanes allowed to be used to reach it. More...
 
SVCPermissions myMinimumPermissions
 The intersection of lane permissions for this edge. More...
 
SVCPermissions myCombinedPermissions
 The union of lane permissions for this edge. More...
 

Private Types

typedef std::map< const MSEdge *, AllowedLanesContAllowedLanesByTarget
 Succeeding edges (keys) and allowed lanes to reach these edges (values). More...
 
typedef std::vector< std::pair< SVCPermissions, const std::vector< MSLane * > *> > AllowedLanesCont
 "Map" from vehicle class to allowed lanes More...
 

Private Member Functions

void addToAllowed (const SVCPermissions permissions, const std::vector< MSLane *> *allowedLanes, AllowedLanesCont &laneCont) const
 
bool isSuperposable (const MSEdge *other)
 
 MSEdge (const MSEdge &)
 Invalidated copy constructor. More...
 
MSEdgeoperator= (const MSEdge &)
 assignment operator. More...
 

Private Attributes

const MSEdgemyBidiEdge
 the oppositing superposble edge More...
 

Static edge container

typedef std::map< std::string, MSEdge *> DictType
 definition of the static dictionary type More...
 
static DictType myDict
 Static dictionary to associate string-ids with objects. More...
 
static MSEdgeVector myEdges
 Static list of edges. More...
 

Detailed Description

A road/street connecting two junctions.

A single connection between two junctions. Holds lanes which are reponsible for vehicle movements.

Definition at line 76 of file MSEdge.h.

Member Typedef Documentation

◆ AllowedLanesByTarget

typedef std::map<const MSEdge*, AllowedLanesCont> MSEdge::AllowedLanesByTarget
private

Succeeding edges (keys) and allowed lanes to reach these edges (values).

Definition at line 82 of file MSEdge.h.

◆ AllowedLanesCont

typedef std::vector<std::pair<SVCPermissions, const std::vector<MSLane*>* > > MSEdge::AllowedLanesCont
private

"Map" from vehicle class to allowed lanes

Definition at line 79 of file MSEdge.h.

◆ DictType

typedef std::map< std::string, MSEdge* > MSEdge::DictType
protected

definition of the static dictionary type

Definition at line 864 of file MSEdge.h.

Constructor & Destructor Documentation

◆ MSEdge() [1/2]

MSEdge::MSEdge ( const std::string &  id,
int  numericalID,
const SumoXMLEdgeFunc  function,
const std::string &  streetName,
const std::string &  edgeType,
int  priority,
double  distance 
)

Constructor.

After calling this constructor, the edge is not yet initialised completely. A call to "initialize" with proper values is needed for this.

Parameters
[in]idThe id of the edge
[in]numericalIDThe numerical id (index) of the edge
[in]functionA basic type of the edge
[in]streetNameThe street name for that edge

Definition at line 64 of file MSEdge.cpp.

◆ ~MSEdge()

MSEdge::~MSEdge ( )
virtual

Destructor.

Definition at line 89 of file MSEdge.cpp.

References myAllowed, myAllowedTargets, myLaneChanger, and myLanes.

◆ MSEdge() [2/2]

MSEdge::MSEdge ( const MSEdge )
private

Invalidated copy constructor.

Member Function Documentation

◆ addContainer()

virtual void MSEdge::addContainer ( MSTransportable container) const
inlinevirtual

Add a container to myContainers.

Reimplemented in GUIEdge.

Definition at line 621 of file MSEdge.h.

References myContainers.

Referenced by GUIEdge::addContainer(), MSContainer::MSContainerStage_Driving::proceed(), and MSTransportable::Stage_Waiting::proceed().

◆ addPerson()

virtual void MSEdge::addPerson ( MSTransportable p) const
inlinevirtual

◆ addSuccessor()

void MSEdge::addSuccessor ( MSEdge edge,
const MSEdge via = nullptr 
)

Adds an edge to the list of edges which may be reached from this edge and to the incoming of the other edge.

This is mainly used by the taz (district) parsing

Parameters
[in]edgeThe edge to add

Definition at line 983 of file MSEdge.cpp.

References Boundary::add(), getFromJunction(), MSJunction::getPosition(), getToJunction(), isTazConnector(), myBoundary, myPredecessors, mySuccessors, and myViaSuccessors.

Referenced by NLHandler::addDistrict(), and getCrossingEdges().

◆ addTo()

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

Adds this object to the given container.

Parameters

Definition at line 127 of file Named.h.

References Named::StoringVisitor::add().

◆ addToAllowed()

void MSEdge::addToAllowed ( const SVCPermissions  permissions,
const std::vector< MSLane *> *  allowedLanes,
AllowedLanesCont laneCont 
) const
private

Definition at line 246 of file MSEdge.cpp.

References allowedLanes().

Referenced by rebuildAllowedLanes(), and rebuildAllowedTargets().

◆ allowedLanes() [1/2]

const std::vector< MSLane * > * MSEdge::allowedLanes ( const MSEdge destination,
SUMOVehicleClass  vclass = SVC_IGNORING 
) const

Get the allowed lanes to reach the destination-edge.

If there is no such edge, get 0. Then you are on the wrong edge.

Parameters
[in]destinationThe edge to reach
[in]vclassThe vehicle class for which this information shall be returned
Returns
The lanes that may be used to reach the given edge, nullptr if no such lanes exist

Definition at line 398 of file MSEdge.cpp.

References myAllowedTargets.

Referenced by addToAllowed(), MSVehicleTransfer::checkInsertions(), getDepartLane(), getFreeLane(), libsumo::Vehicle::getNextTLS(), getPersons(), getSuccessors(), getViaSuccessors(), MESegment::MESegment(), MSLane::by_connections_to_sorter::operator()(), rebuildAllowedLanes(), rebuildAllowedTargets(), MSBaseVehicle::reroute(), and MSVehicle::updateBestLanes().

◆ allowedLanes() [2/2]

const std::vector< MSLane * > * MSEdge::allowedLanes ( SUMOVehicleClass  vclass = SVC_IGNORING) const

Get the allowed lanes for the given vehicle class.

If there is no such edge, get 0. Then you are on the wrong edge.

Parameters
[in]vclassThe vehicle class for which this information shall be returned
Returns
The lanes that may be used by the given vclass

Definition at line 412 of file MSEdge.cpp.

References myAllowed, myCombinedPermissions, myLanes, and myMinimumPermissions.

◆ allowsLaneChanging()

◆ buildLaneChanger()

void MSEdge::buildLaneChanger ( )

Has to be called after all sucessors and predecessors have been set (after closeBuilding())

Definition at line 205 of file MSEdge.cpp.

References allowsLaneChanging(), canChangeToOpposite(), MSGlobals::gLaneChangeDuration, MSGlobals::gLateralResolution, myLaneChanger, and myLanes.

◆ canChangeToOpposite()

bool MSEdge::canChangeToOpposite ( )

whether this edge allows changing to the opposite direction edge

Definition at line 1088 of file MSEdge.cpp.

References isInternal(), LINKDIR_STRAIGHT, and myLanes.

Referenced by buildLaneChanger(), and hasLaneChanger().

◆ changeLanes()

void MSEdge::changeLanes ( SUMOTime  t)
virtual

Performs lane changing on this edge.

Definition at line 699 of file MSEdge.cpp.

References MSLaneChanger::laneChange(), and myLaneChanger.

Referenced by MSEdgeControl::changeLanes(), MSLane::changeLanes(), and setLastFailedInsertionTime().

◆ checkAndRegisterBiDirEdge()

void MSEdge::checkAndRegisterBiDirEdge ( const std::string &  bidiID = "")

check and register the opposite superposable edge if any

Definition at line 1119 of file MSEdge.cpp.

References dictionary(), EDGEFUNC_NORMAL, getFunction(), Named::getID(), MSJunction::getOutgoing(), isSuperposable(), myBidiEdge, myFromJunction, myToJunction, WRITE_ERROR, and WRITE_WARNING.

Referenced by isCrossing().

◆ clear()

void MSEdge::clear ( )
static

Clears the dictionary.

Definition at line 843 of file MSEdge.cpp.

References myDict, and myEdges.

Referenced by MSNet::clearAll(), unlock(), and MSVehicle::updateBestLanes().

◆ clearParameter()

◆ closeBuilding()

void MSEdge::closeBuilding ( )
Todo:
Has to be called after all edges were built and all connections were set...; Still, is not very nice

Definition at line 166 of file MSEdge.cpp.

References MELoop::buildSegmentsFor(), MSLane::getEdge(), OptionsCont::getOptions(), MSGlobals::gMesoNet, MSGlobals::gUseMesoSim, LINKDIR_TURN, myAmFringe, myLanes, myPredecessors, mySuccessors, myViaSuccessors, rebuildAllowedLanes(), and recalcCache().

◆ decVaporization()

SUMOTime MSEdge::decVaporization ( SUMOTime  t)

Disables vaporization.

The internal vaporization counter is decreased what disables the vaporization if it was only once enabled. Called from the event handler.

Parameters
[in]tThe current time (unused)
Returns
Time to next call (always 0)
Exceptions
ProcessErrornot thrown by this method, just derived

Definition at line 437 of file MSEdge.cpp.

References myVaporizationRequests.

Referenced by NLTriggerBuilder::buildVaporizer(), and isVaporizing().

◆ dictionary() [1/2]

bool MSEdge::dictionary ( const std::string &  id,
MSEdge edge 
)
static

Inserts edge into the static dictionary Returns true if the key id isn't already in the dictionary. Otherwise returns false.

Definition at line 804 of file MSEdge.cpp.

References getNumericalID(), myDict, and myEdges.

Referenced by libsumo::Route::add(), libsumo::Person::add(), NLHandler::addConnection(), NLHandler::addDistrict(), NLHandler::addDistrictEdge(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeEffort::addEdgeWeight(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeTravelTime::addEdgeWeight(), GUINet::EdgeFloatTimeLineRetriever_GUI::addEdgeWeight(), MSRouteHandler::addPersonTrip(), NLHandler::addRoundabout(), MEVehicle::addStop(), libsumo::Person::appendDrivingStage(), NLEdgeControlBuilder::beginEdgeParsing(), NLTriggerBuilder::buildVaporizer(), libsumo::Vehicle::changeTarget(), checkAndRegisterBiDirEdge(), NLHandler::closeEdge(), libsumo::Person::convertTraCIStage(), libsumo::Simulation::findIntermodalRoute(), libsumo::Simulation::findRoute(), libsumo::Edge::getEdge(), libsumo::Helper::getEdge(), NLDetectorBuilder::getEdgeChecking(), libsumo::Helper::getLaneChecking(), MSDevice_Routing::getParameter(), MSDevice_FCD::initEdgeFilter(), MSPedestrianPushButton::loadPushButtons(), MSDevice_Vehroutes::loadState(), libsumo::Person::moveTo(), libsumo::Helper::moveToXYMap(), NLHandler::myEndElement(), MSRouteHandler::myStartElement(), MSTriggeredRerouter::myStartElement(), NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildRerouter(), parseEdgesList(), MSRouteHandler::parseFromViaTo(), MSBaseVehicle::reroute(), libsumo::Vehicle::setAdaptedTraveltime(), libsumo::Vehicle::setEffort(), MSDevice_Routing::setParameter(), libsumo::Vehicle::setStop(), and unlock().

◆ dictionary() [2/2]

MSEdge * MSEdge::dictionary ( const std::string &  id)
static

Returns the MSEdge associated to the key id if exists, otherwise returns 0.

Definition at line 820 of file MSEdge.cpp.

References myDict.

◆ dictSize()

int MSEdge::dictSize ( )
static

Returns the number of edges.

Definition at line 831 of file MSEdge.cpp.

References myDict.

Referenced by MSStateHandler::saveState(), and unlock().

◆ getAllEdges()

◆ getBidiEdge()

const MSEdge* MSEdge::getBidiEdge ( ) const
inline

◆ getCrossingEdges()

const std::vector<std::string>& MSEdge::getCrossingEdges ( ) const
inline

Gets the crossed edge ids.

Returns
The list of crossed edge ids in a crossing edge or an empty vector

Definition at line 304 of file MSEdge.h.

References addSuccessor(), and myCrossingEdges.

Referenced by MSPedestrianPushButton::loadCrossingEdgeMap().

◆ getCurrentTravelTime()

double MSEdge::getCurrentTravelTime ( const double  minSpeed = NUMERICAL_EPS) const

Computes and returns the current travel time for this edge.

The mean speed of all lanes is used to compute the travel time. To avoid infinite travel times, the given minimum speed is used.

Parameters
[in]minSpeedThe minimumSpeed to assume if traffic on this edge is stopped
Returns
The current effort (travel time) to pass the edge

Definition at line 787 of file MSEdge.cpp.

References getLength(), getMeanSpeed(), MAX2(), myAmDelayed, and myEmptyTraveltime.

Referenced by MSVehicleTransfer::checkInsertions(), libsumo::Edge::getTraveltime(), isVaporizing(), and MSFullExport::writeEdge().

◆ getDepartLane()

MSLane * MSEdge::getDepartLane ( MSVehicle veh) const

Finds a depart lane for the given vehicle parameters.

Depending on the depart lane procedure a depart lane is chosen. Repeated calls with the same vehicle may return different results if the procedure is "random" or "free". In case no appropriate lane was found, 0 is returned.

Parameters
[in]vehThe vehicle to get the depart lane for
Returns
a possible/chosen depart lane, 0 if no lane can be used

Definition at line 520 of file MSEdge.cpp.

References allowedLanes(), MSRoute::begin(), BEST_LANE_LOOKAHEAD, DEPART_LANE_ALLOWED_FREE, DEPART_LANE_BEST_FREE, DEPART_LANE_DEFAULT, DEPART_LANE_FIRST_ALLOWED, DEPART_LANE_FREE, DEPART_LANE_GIVEN, DEPART_LANE_RANDOM, SUMOVehicleParameter::departLane, SUMOVehicleParameter::departLaneProcedure, MSVehicle::getBestLanes(), getDepartPosBound(), getFreeLane(), MSBaseVehicle::getParameter(), RandHelper::getRandomFrom(), MSBaseVehicle::getRoute(), MSVehicleType::getVehicleClass(), MSBaseVehicle::getVehicleType(), MIN2(), myLanes, MSRoute::size(), and MSVehicle::updateBestLanes().

Referenced by getTravelTimeStatic(), and insertVehicle().

◆ getDepartPosBound()

◆ getDistance()

double MSEdge::getDistance ( ) const
inline

Returns the kilometrage/mileage at the start of the edge.

Definition at line 288 of file MSEdge.h.

References myDistance.

Referenced by GUILane::getColorValue(), GUILane::getParameterWindow(), and MSFCDExport::write().

◆ getDistanceTo()

double MSEdge::getDistanceTo ( const MSEdge other,
const bool  doBoundaryEstimate = false 
) const

optimistic air distance heuristic for use in routing

Parameters
[in]otherThe edge to which the distance shall be returned
[in]doBoundaryEstimatewhether the distance should be estimated by looking at the distance of the bounding boxes
Returns
The distance to the other edge

Definition at line 891 of file MSEdge.cpp.

References Boundary::distanceTo2D(), getLanes(), isTazConnector(), and myBoundary.

Referenced by getSubLaneSides().

◆ getDouble()

◆ getEdgeType()

const std::string& MSEdge::getEdgeType ( ) const
inline

Returns the type of the edge.

Definition at line 276 of file MSEdge.h.

References myEdgeType.

Referenced by GUILane::getParameterWindow(), and MSLane::initRestrictions().

◆ getFreeLane()

MSLane * MSEdge::getFreeLane ( const std::vector< MSLane *> *  allowed,
const SUMOVehicleClass  vclass,
double  departPos 
) const

Finds the emptiest lane allowing the vehicle class.

The emptiest lane is the one which vehicle insertion is most likely to succeed.

If there are no vehicles before departPos, then the lane with the largest gap between departPos and the last vehicle is Otheriwise the lane with lowes occupancy is selected If there is more than one, the first according to its index in the lane container is chosen.

If allowed==0, the lanes allowed for the given vehicle class will be used.

Parameters
[in]allowedThe lanes to choose from
[in]vclassThe vehicle class to look for
[in]departPosAn upper bound on vehicle depart position
Returns
the least occupied lane
See also
allowedLanes

Definition at line 444 of file MSEdge.cpp.

References allowedLanes(), MSVehicle::getPositionOnLane(), and myLength.

Referenced by MSVehicleTransfer::checkInsertions(), getDepartLane(), and getTravelTimeStatic().

◆ getFromJunction()

◆ getFunction()

SumoXMLEdgeFunc MSEdge::getFunction ( ) const
inline

Returns the edge type (SumoXMLEdgeFunc)

Returns
This edge's SumoXMLEdgeFunc
See also
SumoXMLEdgeFunc

Definition at line 223 of file MSEdge.h.

References myFunction.

Referenced by checkAndRegisterBiDirEdge(), GUIEdge::getColorValue(), and MSPModel_Striping::PState::moveToNextLane().

◆ getID()

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

Returns the id.

Returns
The stored id

Definition at line 77 of file Named.h.

Referenced by MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaders(), MSPModel_Remote::add(), MSPModel_Striping::add(), LaneStoringVisitor::add(), MSVehicleTransfer::add(), PCPolyContainer::add(), MSDetectorControl::add(), Named::StoringVisitor::add(), ShapeContainer::add(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), MSLane::addApproachingLane(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), RONet::addEdge(), NBParkingCont::addEdges2Keep(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), MSLane::addNeigh(), RONet::addNode(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), RONet::addRouteDef(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), ROVehicle::addStop(), MSRouteHandler::addStop(), MSVehicle::addStop(), MSNet::addStoppingPlace(), MSVehicle::addTraciStop(), MSVehicle::addTraciStopAtStoppingPlace(), AGActivityTripWriter::addTrip(), NIXMLConnectionsHandler::addWalkingArea(), libsumo::Helper::applySubscriptionFilters(), 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(), RODFNet::buildEdgeFlowMap(), GNETLSEditorFrame::buildIinternalLanes(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSRailSignal::DriveWay::buildRoute(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSVehicle::canReverse(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSSimpleTrafficLightLogic::changeStepAndDuration(), checkAndRegisterBiDirEdge(), MSRailSignal::DriveWay::checkCrossingFlanks(), MSLane::checkForPedestrians(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), MSDevice_Battery::checkParam(), MSE2Collector::checkPositioning(), MSVehicle::checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSSwarmTrafficLightLogic::choosePolicy(), MSDevice_SSM::classifyEncounter(), ShapeContainer::clearHighlights(), NBTrafficLightLogic::closeBuilding(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNode::computeNodeShape(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), NBOwnTLDef::corridorLike(), 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(), MSTransportable::Stage_Waiting::endEventOutput(), MSTransportable::Stage_Driving::endEventOutput(), MSE3Collector::enter(), MSVehicle::enterLaneAtMove(), METriggeredCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSCalibrator::execute(), MSTrafficLightLogic::SwitchCommand::execute(), MSPModel_Striping::MovePedestrians::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), libsumo::Helper::findCloserLane(), MSRailSignal::DriveWay::findFlankProtection(), MSDevice_SSM::findFoeConflictLane(), libsumo::Simulation::findIntermodalRoute(), MSDevice_SSM::findSurroundingVehicles(), MSDevice_SSM::flushConflicts(), NBTrafficLightDefinition::forbids(), NBNodeCont::generateNodeClusters(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSPModel_Striping::getArbitraryPath(), MSVehicle::getBackPosition(), MSVehicle::getBackPositionOnLane(), libsumo::Vehicle::getBestLanes(), NBOwnTLDef::getBestPair(), NBRailwayTopologyAnalyzer::getBrokenRailNodes(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), MSRailSignal::getClickableTLLinkID(), GUILane::getColorValue(), libsumo::TrafficLight::getControlledLinks(), MSLane::getCriticalLeader(), NBNodeShapeComputer::getDefaultRadius(), NBTrafficLightDefinition::getDescription(), MSLink::getDescription(), GUIPerson::getDestinationEdgeID(), RODFNet::getDetectorEdge(), libsumo::Lane::getEdgeID(), GUIMEVehicle::getEdgeID(), GUIPerson::getEdgeID(), MSMeanData::getEdgeID(), MSPModel_Remote::getFirstPedestrianLane(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), GUIPerson::getFromEdgeID(), MSCalibrator::getID(), MSRailSignal::LinkInfo::getID(), NBEdge::getID(), libsumo::LaneArea::getLaneID(), libsumo::InductionLoop::getLaneID(), libsumo::Vehicle::getLaneID(), MSParkingArea::getLastFreePosWithReservation(), MSLane::getLastVehicleInformation(), MSVehicle::getLatOffset(), MSLane::getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLane::getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), MSLane::getLinkTo(), MSTLLogicControl::TLSLogicVariants::getLogicInstantiatingOff(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSLane::getOppositePos(), libsumo::Simulation::getParameter(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIMEInductLoop::MyWrapper::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), GUILane::getParameterWindow(), MSLane::getPartialBehind(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), PolygonDynamics::getPolygonID(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), libsumo::Person::getRoadID(), libsumo::Vehicle::getRoadID(), MSLCM_LC2013::getRoundaboutDistBonus(), libsumo::Vehicle::getRouteID(), MSVehicle::getSafeFollowSpeed(), libsumo::Person::getStage(), MSContainer::MSContainerStage_Driving::getStageSummary(), MSPerson::MSPersonStage_Walking::getStageSummary(), MSContainer::MSContainerStage_Tranship::getStageSummary(), MSPerson::MSPersonStage_Driving::getStageSummary(), MSTransportable::Stage_Trip::getStageSummary(), MSPerson::MSPersonStage_Access::getStageSummary(), MSTransportable::Stage_Waiting::getStageSummary(), MSNet::getStoppingPlaceID(), MSLane::getSurroundingVehicles(), MSRailSignal::getTLLinkID(), MSLane::getUpcomingLinks(), MSDevice_SSM::getUpstreamVehicles(), MSPModel_Striping::getVehicleObstacles(), MSDevice_SSM::getVehiclesOnJunction(), MSTransportable::Stage_Driving::getWaitingDescription(), MSLink::getZipperSpeed(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), MSLane::handleCollisionBetween(), MSVehicle::haveValidStopEdges(), libsumo::POI::highlight(), MSVehicle::ignoreRed(), MSDeterministicHiLevelTrafficLightLogic::init(), MSRailSignal::init(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), MSE2Collector::initAuxiliaries(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), insertVehicle(), MSLane::integrateNewVehicles(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isDestination(), RODFNet::isFalseSource(), MSLane::isInsertionSuccess(), MSVehicle::isLeader(), MESegment::isOpen(), RODFNet::isSource(), NIImporter_VISUM::isSplitEdge(), MSSOTLTrafficLightLogic::isThresholdPassed(), MESegment::jamThresholdForSpeed(), NBNodeShapeComputer::joinSameDirectionEdges(), NBEdgeCont::joinSameNodeConnectingEdges(), MSAbstractLaneChangeModel::laneChangeOutput(), MSE3Collector::leave(), MSE3Collector::leaveFront(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), MSPedestrianPushButton::loadCrossingEdgeMap(), NIImporter_OpenDrive::loadNetwork(), MSPedestrianPushButton::loadPushButtons(), ODDistrictCont::makeDistricts(), MSE2Collector::makeVehicleInfo(), MSSOTLE2Sensors::meanVehiclesSpeed(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), 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(), NIImporter_SUMO::myEndElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), MSPModel_Striping::nextBlocking(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Example::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Bluelight::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSTriggeredRerouter::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSE2Collector::notifyEnter(), MSDevice_SSM::notifyEnter(), MSDevice_Transportable::notifyLeave(), MSDevice_Bluelight::notifyLeave(), MSDevice_Example::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE2Collector::notifyLeave(), MSDevice_SSM::notifyLeave(), MSDevice_Bluelight::notifyMove(), MSDevice_Example::notifyMove(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSE2Collector::notifyMove(), MSDevice_SSM::notifyMove(), GNETLSEditorFrame::TLSFile::onCmdLoadTLSProgram(), GNETLSEditorFrame::TLSFile::onCmdSaveTLSProgram(), GUIViewTraffic::onGamingClick(), MSLink::opened(), RORouteHandler::openRoute(), RODFNet::idComp::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBNode::nodes_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_Turns(), NLTriggerBuilder::parseAndBuildCalibrator(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSVehicle::planMove(), MSVehicle::planMoveInternal(), MSLane::planMovements(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), AGStreet::print(), MSDevice_SSM::processEncounters(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), MSVehicle::processNextStop(), NIXMLNodesHandler::processNodeType(), TraCIServerAPI_Vehicle::processSet(), MEVehicle::processStop(), NIXMLNodesHandler::processTrafficLightDefinitions(), MSDelayBasedTrafficLightLogic::proposeProlongation(), NBNodeCont::pruneClusterFringe(), MSPModel_Striping::PState::PState(), MSOffTrafficLightLogic::rebuildPhase(), NBEdge::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBLoadedSUMOTLDef::reconstructLogic(), MSLink::removeApproaching(), MSVehicle::removePassedDriveItems(), GNEJunction::removeTLSConnections(), NBNodeCont::rename(), GNENet::renameJunction(), RORouteDef::repairCurrentRoute(), GNEJunction::replaceIncomingConnections(), MSVehicle::replaceParkingArea(), MSVehicle::replaceRoute(), MSBaseVehicle::replaceRouteEdges(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NLEdgeControlBuilder::reportCurrentEdgeOrLane(), MSBaseVehicle::reroute(), GUIVehicle::rerouteDRTStop(), MSTriggeredRerouter::rerouteParkingArea(), MSVehicle::rerouteParkingArea(), MSLane::resetManeuverReservation(), MSLane::resetPartialOccupation(), RODFNet::revalidateFlows(), NBRailwayTopologyAnalyzer::reverseEdges(), MSPerson::MSPersonStage_Walking::routeOutput(), MSPerson::MSPersonStage_Driving::routeOutput(), RONet::saveAndRemoveRoutesUntil(), ROVehicle::saveAsXML(), MSTransportableDevice_Routing::saveState(), MSDevice_Routing::saveState(), MSDevice::saveState(), MSDevice_Vehroutes::saveState(), MSDevice_Tripinfo::saveState(), MSBaseVehicle::saveState(), MSLane::saveState(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSLink::setApproaching(), MSTransportable::Stage_Trip::setArrived(), NBNodeCont::setAsTLControlled(), GNEEdge::setAttribute(), MSChargingStation::setChargeDelay(), MSChargingStation::setChargingPower(), NLEdgeControlBuilder::setDefaultStopOffsets(), MSChargingStation::setEfficency(), MSLane::setManeuverReservation(), MSDevice_Battery::setMaximumBatteryCapacity(), NBEdge::setNodeBorder(), NIXMLEdgesHandler::setNodes(), NIImporter_OpenDrive::setNodeSecure(), MSLane::setPartialOccupation(), MSDevice_Battery::setPowerMax(), MSLink::setRequestInformation(), MSTLLogicControl::TLSLogicVariants::setStateInstantiatingOnline(), MSDevice_Battery::setStoppingTreshold(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdge::shiftPositionAtNode(), MSLane::sortManeuverReservations(), IntermodalNetwork< E, L, N, V >::splitEdge(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSStopOut::stopStarted(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MELoop::teleportVehicle(), NGNet::toNB(), MSSOTLTrafficLightLogic::trySwitch(), PolygonDynamics::update(), MSDevice_SSM::update(), MSDevice_SSM::updateAndWriteOutput(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateCFRelated(), MSSOTLTrafficLightLogic::updateCTS(), NLEdgeControlBuilder::updateCurrentLaneStopOffsets(), MSVehicle::updateDriveItems(), GNETLSEditorFrame::TLSJunction::updateJunctionDescription(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSSwarmTrafficLightLogic::updateSensitivities(), MSAbstractLaneChangeModel::updateTargetLane(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), NBNodeTypeComputer::validateRailCrossings(), 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(), MSRailSignal::writeBlocks(), NWWriter_DlrNavteq::writeConnectedLanes(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_OpenDrive::writeInternalEdge(), writeInterval(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), MSXMLRawOut::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_SUMO::writeRoundabout(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_DlrNavteq::writeTrafficSignals(), MSFCDExport::writeTransportable(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), PointOfInterest::writeXML(), SUMOPolygon::writeXML(), MSRouteProbe::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSE2Collector::writeXMLOutput(), and RONet::~RONet().

◆ getIDSecure()

template<class T >
static std::string Named::getIDSecure ( const T *  obj,
const std::string &  fallBack = "NULL" 
)
inlinestaticinherited

get an identifier for Named-like object which may be Null

Definition at line 70 of file Named.h.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChanger::changeOpposite(), MSVehicle::checkRewindLinkLanes(), DijkstraRouter< E, V, BASE >::compute(), AStarRouter< MSEdge, SUMOVehicle, SUMOAbstractRouterPermissions< MSEdge, SUMOVehicle > >::compute(), NBEdge::computeEdge2Edges(), NBEdge::computeLanes2Edges(), NBOwnTLDef::computeLogicAndConts(), MSLaneChanger::continueChange(), MSLane::detectCollisions(), MSRailSignal::DriveWay::findProtection(), MSCFModel_W99::followSpeed(), MSCFModel_CACC::followSpeed(), MSVehicle::getBackPositionOnLane(), NBOwnTLDef::getBestCombination(), NBOwnTLDef::getBestPair(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), NBEdge::Connection::getDescription(), MSLane::getFollowersOnConsecutive(), GUIVehicle::getLaneID(), MSVehicle::getLatOffset(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getRealLeader(), GUIVehicle::getShadowLaneID(), GUIVehicle::getTargetLaneID(), NBEdge::init(), MSLane::isInsertionSuccess(), MESegment::isOpen(), joinNamedToString(), joinNamedToStringSorting(), MSPModel_Striping::PState::moveToNextLane(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), operator<<(), NBEdge::recheckLanes(), MSTriggeredRerouter::rerouteParkingArea(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), toString(), MSLeaderInfo::toString(), MSLeaderDistanceInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), MSVehicle::updateBestLanes(), and MSAbstractLaneChangeModel::updateShadowLane().

◆ getInternalFollowingEdge()

const MSEdge * MSEdge::getInternalFollowingEdge ( const MSEdge followerAfterInternal) const
Todo:
extension: inner junctions are not filled

Definition at line 709 of file MSEdge.cpp.

References myLanes.

Referenced by getInternalFollowingLengthTo(), libsumo::Helper::moveToXYMap_matchingRoutePosition(), and setLastFailedInsertionTime().

◆ getInternalFollowingLengthTo()

double MSEdge::getInternalFollowingLengthTo ( const MSEdge followerAfterInternal) const

returns the length of all internal edges on the junction until reaching the non-internal edge followerAfterInternal.

Definition at line 726 of file MSEdge.cpp.

References getInternalFollowingEdge(), getLength(), and isInternal().

Referenced by MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::getUpstreamVehicles(), and setLastFailedInsertionTime().

◆ getLanes()

const std::vector<MSLane*>& MSEdge::getLanes ( ) const
inline

Returns this edge's lanes.

Returns
This edge's lanes

Definition at line 165 of file MSEdge.h.

References myLanes.

Referenced by MSVehicleTransfer::add(), NLHandler::addConnection(), GUIEdge::addRerouter(), MSRouteHandler::addStop(), MSVehicleControl::addVehicle(), libsumo::Helper::applySubscriptionFilters(), MELoop::buildSegmentsFor(), MSBaseVehicle::calculateArrivalParams(), MSEdgeControl::changeLanes(), MSLink::checkContOff(), MSVehicleTransfer::checkInsertions(), GUIEdge::closeTraffic(), MSLCM_SL2015::computeSublaneShift(), CState::computeTranshipTime(), GUILane::drawMarkings(), libsumo::Helper::findCloserLane(), MEVehicle::getAngle(), MSLane::getBidiLane(), GUIEdge::getColorValue(), getDistanceTo(), MSTransportable::Stage::getEdgeAngle(), GUILane::getEdgeLaneNumber(), MSTransportable::Stage::getEdgePosition(), MSRoutingEngine::getEffortExtra(), MSPModel_Remote::getFirstPedestrianLane(), MSLane::getFollowersOnConsecutive(), libsumo::Helper::getLaneChecking(), MSVehicle::getLaneIndex(), libsumo::Edge::getLaneNumber(), libsumo::Edge::getLastStepOccupancy(), getLengthGeometryFactor(), MESegment::getLink(), MESegment::getMaxPenaltySeconds(), getMeanSpeed(), MSPModel_Striping::getNextLane(), MSCFModel_CC::getParameter(), MSInsertionControl::getPendingEmits(), MEVehicle::getPosition(), MSPModel_NonInteracting::PState::getPosition(), GUIContainer::getPosition(), MSVehicle::getPosition(), GUIVehicle::getPreviousLane(), MSBaseVehicle::getRNG(), GUIEdge::getScaleValue(), GUIEdge::getSegmentAtPosition(), libsumo::Person::getSlope(), MEVehicle::getSlope(), MSTransportable::getSlope(), getSpeedLimit(), GUIEdge::getTotalLength(), MSDevice_SSM::getUpstreamVehicles(), getVehicleMaxSpeed(), GUICalibrator::GUICalibrator(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), MSPModel_Remote::handleWalkingArea(), MSVehicle::Influencer::influenceChangeDecision(), MSActuatedTrafficLightLogic::init(), GUINet::initGUIStructures(), MSPModel_Striping::initWalkingAreaPaths(), MSCalibrator::invalidJam(), MSPedestrianPushButton::isActiveForEdge(), GUISUMOViewParent::isSelected(), isSuperposable(), MESegment::MESegment(), libsumo::Helper::moveToXYMap(), MSCalibrator::MSCalibrator(), MSPerson::MSPersonStage_Access::MSPersonStage_Access(), MSRouteProbe::MSRouteProbe(), GUIMEInductLoop::MyWrapper::MyWrapper(), MSDevice_Bluelight::notifyMove(), NLTriggerBuilder::parseAndBuildCalibrator(), MSLCM_DK2008::patchSpeed(), MSLCM_SL2015::prepareStep(), TraCIServerAPI_Vehicle::processSet(), MSCalibrator::remainingVehicleCapacity(), libsumo::Edge::setAllowedSVCPermissions(), GUIEdge::setFunctionalColor(), libsumo::Vehicle::setStop(), libsumo::Edge::storeShape(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MESegment::useMultiQueue(), MSQueueExport::writeEdge(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), MSMeanData::writeEdge(), MSFCDExport::writeTransportable(), and MEInductLoop::writeXMLOutput().

◆ getLastFailedInsertionTime()

SUMOTime MSEdge::getLastFailedInsertionTime ( ) const
inline

Returns the last time a vehicle could not be inserted.

Returns
The current value

Definition at line 509 of file MSEdge.h.

References myLastFailedInsertionTime.

◆ getLength()

◆ getLengthGeometryFactor()

double MSEdge::getLengthGeometryFactor ( ) const

return shape.length() / myLength

Definition at line 923 of file MSEdge.cpp.

References getLanes(), and myLanes.

Referenced by getLength().

◆ getMeanSpeed()

◆ getMinimumTravelTime()

double MSEdge::getMinimumTravelTime ( const SUMOVehicle *const  veh) const
inline

returns the minimum travel time for the given vehicle

Definition at line 419 of file MSEdge.h.

References EDGEFUNC_CONNECTOR, getLength(), getVehicleMaxSpeed(), myEmptyTraveltime, myFunction, and myTimePenalty.

Referenced by MSRoutingEngine::getEffort(), and MSNet::getTravelTime().

◆ getNormalBefore()

const MSEdge * MSEdge::getNormalBefore ( ) const

if this edge is an internal edge, return its first normal predecessor, otherwise the edge itself

Definition at line 740 of file MSEdge.cpp.

References getPredecessors(), and isInternal().

Referenced by MSVehicle::addStop(), MSVehicle::isLeader(), libsumo::Vehicle::moveTo(), and setLastFailedInsertionTime().

◆ getNumericalID()

◆ getNumPredecessors()

int MSEdge::getNumPredecessors ( ) const
inline

Returns the number of edges this edge is connected to.

Returns
The number of edges following this edge

Definition at line 344 of file MSEdge.h.

References myPredecessors.

Referenced by NLEdgeControlBuilder::build(), and MSRouteHandler::parseFromViaTo().

◆ getNumSuccessors()

int MSEdge::getNumSuccessors ( ) const
inline

Returns the number of edges that may be reached from this edge.

Returns
The number of following edges

Definition at line 322 of file MSEdge.h.

References getSuccessors(), getViaSuccessors(), mySuccessors, and SVC_IGNORING.

Referenced by NLEdgeControlBuilder::build(), MESegment::MESegment(), MSRouteHandler::parseFromViaTo(), and MESegment::useMultiQueue().

◆ getOppositeEdge()

const MSEdge * MSEdge::getOppositeEdge ( ) const

Returns the opposite direction edge if on exists else a nullptr.

Definition at line 1096 of file MSEdge.cpp.

References myLanes.

Referenced by libsumo::Helper::applySubscriptionFilters(), MSDevice_SSM::findFoeConflictLane(), and hasLaneChanger().

◆ 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 71 of file Parameterised.cpp.

References Parameterised::myMap.

Referenced by MSTLLogicControl::WAUTSwitchProcedure_Stretch::adaptLogic(), NBEdge::addRestrictedLane(), FareModul::addStop(), NBEdge::append(), MSDevice_Battery::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice_Bluelight::buildVehicleDevices(), libsumo::Simulation::findIntermodalRoute(), MSDevice::getBoolParam(), NBRailwayTopologyAnalyzer::getBrokenRailNodes(), GNELane::getColorValue(), GUILane::getColorValue(), MSSOTLTrafficLightLogic::getDecayConstant(), MSDevice_SSM::getDetectionRange(), MSDevice_SSM::getExtraTime(), MSDevice::getFloatParam(), MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSSOTLTrafficLightLogic::getInputSensorsLength(), MSDevice_SSM::getMeasuresAndThresholds(), MSSOTLRequestPolicy::getMinDecisionalPhaseDuration(), MSSOTLTrafficLightLogic::getMode(), GUIBaseVehicle::getOptionalName(), MSDevice_ToC::getOutputFilename(), MSDevice_SSM::getOutputFilename(), MSSOTLTrafficLightLogic::getOutputSensorsLength(), libsumo::Route::getParameter(), libsumo::Polygon::getParameter(), libsumo::POI::getParameter(), libsumo::Person::getParameter(), libsumo::TrafficLight::getParameter(), libsumo::Edge::getParameter(), libsumo::Lane::getParameter(), libsumo::VehicleType::getParameter(), libsumo::Vehicle::getParameter(), libsumo::Simulation::getParameter(), MSSOTLTrafficLightLogic::getSpeedThreshold(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchAreaNo(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchBereichDef(), MSDevice::getStringParam(), MSSOTLTrafficLightLogic::getThreshold(), MSTriggeredRerouter::getWeight(), PushButtonLogic::init(), MSSOTLPhasePolicy::init(), SigmoidLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), GNEVehicleType::initRailVisualizationParameters(), MSVehicleType::initRailVisualizationParameters(), MSSOTLTrafficLightLogic::isDecayThresholdActivated(), MSSOTLTrafficLightLogic::isPushButtonPressed(), libsumo::Helper::moveToXYMap(), MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(), MSDelayBasedTrafficLightLogic::MSDelayBasedTrafficLightLogic(), MSSOTLPolicy::MSSOTLPolicy(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), MSSwarmTrafficLightLogic::MSSwarmTrafficLightLogic(), GNEVehicleType::overwriteVType(), MSDevice_SSM::requestsTrajectories(), NBEdgeCont::splitAt(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic(), MSDevice_SSM::useGeoCoords(), NWWriter_DlrNavteq::writeLinksUnsplitted(), and NWWriter_OpenDrive::writeRoadObjects().

◆ getParametersMap()

const std::map< std::string, std::string > & Parameterised::getParametersMap ( ) const
inherited

Returns the inner key/value map.

Definition at line 105 of file Parameterised.cpp.

References Parameterised::myMap.

Referenced by NIImporter_SUMO::_loadNetwork(), NBEdge::addLane(), GUIParameterTableWindow::closeBuilding(), NLHandler::closeEdge(), NBTrafficLightDefinition::compute(), GNEVehicleType::getGenericParameters(), GNELane::getGenericParameters(), GNEPoly::getGenericParameters(), GNEStop::getGenericParameters(), GNEPOI::getGenericParameters(), GNEJunction::getGenericParameters(), GNERide::getGenericParameters(), GNEPersonTrip::getGenericParameters(), GNEWalk::getGenericParameters(), GNEEdge::getGenericParameters(), GNERoute::getGenericParameters(), GNEPerson::getGenericParameters(), GNEAdditional::getGenericParameters(), GNEVehicle::getGenericParameters(), GNEVehicleType::getGenericParametersStr(), GNELane::getGenericParametersStr(), GNEPoly::getGenericParametersStr(), GNEStop::getGenericParametersStr(), GNEPOI::getGenericParametersStr(), GNEJunction::getGenericParametersStr(), GNERide::getGenericParametersStr(), GNEPersonTrip::getGenericParametersStr(), GNEWalk::getGenericParametersStr(), GNEEdge::getGenericParametersStr(), GNERoute::getGenericParametersStr(), GNEPerson::getGenericParametersStr(), GNEAdditional::getGenericParametersStr(), GNEVehicle::getGenericParametersStr(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIPolygon::getParameterWindow(), GUIJunctionWrapper::getParameterWindow(), GUIPointOfInterest::getParameterWindow(), GUILane::getParameterWindow(), GUIPerson::getTypeParameterWindow(), GUIContainer::getTypeParameterWindow(), GUIVehicle::getTypeParameterWindow(), GUIMEVehicle::getTypeParameterWindow(), NIImporter_OpenStreetMap::insertEdge(), NBLoadedSUMOTLDef::NBLoadedSUMOTLDef(), GUIParameterTableWindow::numParams(), GNEVehicleType::overwriteVType(), and TraCIServerAPI_TrafficLight::processGet().

◆ getPermissions()

◆ getPersons()

const std::set<MSTransportable*>& MSEdge::getPersons ( ) const
inline

◆ getPredecessors()

◆ getPriority()

int MSEdge::getPriority ( ) const
inline

Returns the priority of the edge.

Definition at line 282 of file MSEdge.h.

References myPriority.

Referenced by GUILane::getColorValue(), GUILane::getParameterWindow(), GUILane::getScaleValue(), and MSLane::outgoing_lane_priority_sorter::operator()().

◆ getRoutingSpeed()

double MSEdge::getRoutingSpeed ( ) const

Returns the averaged speed used by the routing device.

Definition at line 797 of file MSEdge.cpp.

References MSRoutingEngine::getAssumedSpeed().

Referenced by GUIEdge::getColorValue(), GUILane::getColorValue(), GUIEdge::getParameterWindow(), GUILane::getParameterWindow(), and getTravelTimeStatic().

◆ getSortedContainers()

std::vector< MSTransportable * > MSEdge::getSortedContainers ( SUMOTime  timestep,
bool  includeRiding = false 
) const

Returns this edge's containers sorted by pos.

Returns
This edge's containers sorted by pos

Definition at line 964 of file MSEdge.cpp.

References myContainers.

Referenced by getPersons(), and MSXMLRawOut::writeEdge().

◆ getSortedPersons()

std::vector< MSTransportable * > MSEdge::getSortedPersons ( SUMOTime  timestep,
bool  includeRiding = false 
) const

Returns this edge's persons sorted by pos.

Returns
This edge's persons sorted by pos

Definition at line 946 of file MSEdge.cpp.

References myLanes, and myPersons.

Referenced by LaneStoringVisitor::add(), MSLane::detectPedestrianJunctionCollision(), libsumo::Edge::getLastStepPersonIDs(), getPersons(), and MSXMLRawOut::writeEdge().

◆ getSpeedLimit()

◆ getStopPosition()

const Position MSEdge::getStopPosition ( const SUMOVehicleParameter::Stop stop)
static

return the coordinates of the center of the given stop

Definition at line 910 of file MSEdge.cpp.

References MSLane::dictionary(), SUMOVehicleParameter::Stop::endPos, SUMOVehicleParameter::Stop::lane, and SUMOVehicleParameter::Stop::startPos.

Referenced by getSubLaneSides().

◆ getStreetName()

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

Returns the street name of the edge.

Definition at line 270 of file MSEdge.h.

References myStreetName.

Referenced by GUIEdge::drawGL(), GUILane::getParameterWindow(), and libsumo::Edge::getStreetName().

◆ getSubLaneSides()

const std::vector<double> MSEdge::getSubLaneSides ( ) const
inline

◆ getSuccessors()

◆ getToJunction()

◆ getTravelTimeStatic()

static double MSEdge::getTravelTimeStatic ( const MSEdge *const  edge,
const SUMOVehicle *const  veh,
double  time 
)
inlinestatic

Returns the travel time for the given edge.

Parameters
[in]edgeThe edge for which the travel time shall be retrieved
[in]vehThe vehicle for which the travel time on this edge shall be retrieved
[in]timeThe time for which the travel time shall be returned [s]
Returns
The traveltime needed by the given vehicle to pass the edge at the given time

Definition at line 437 of file MSEdge.h.

References getDepartLane(), getFreeLane(), MSNet::getInstance(), getRoutingSpeed(), MSNet::getTravelTime(), and insertVehicle().

◆ getVehicleMaxSpeed()

double MSEdge::getVehicleMaxSpeed ( const SUMOTrafficObject *const  veh) const

Returns the maximum speed the vehicle may use on this edge.

Only the first lane is considered

Returns
The maximum velocity on this edge for the given vehicle

Definition at line 928 of file MSEdge.cpp.

References getLanes(), and myLanes.

Referenced by GUIMEVehicle::getColorValue(), getLength(), getMinimumTravelTime(), insertVehicle(), MSDevice_Tripinfo::notifyMoveInternal(), and MESegment::receive().

◆ getViaSuccessors()

const MSConstEdgePairVector & MSEdge::getViaSuccessors ( SUMOVehicleClass  vClass = SVC_IGNORING) const

Returns the following edges with internal vias, restricted by vClass.

Parameters
[in]vClassThe vClass for which to restrict the successors
Returns
The eligible following edges

Definition at line 1035 of file MSEdge.cpp.

References allowedLanes(), EDGEFUNC_CONNECTOR, MSNet::getInstance(), myClassesViaSuccessorMap, myFunction, myViaSuccessors, and SVC_IGNORING.

Referenced by getNumSuccessors().

◆ getWidth()

double MSEdge::getWidth ( ) const
inline

Returns the edges's width (sum over all lanes)

Returns
This edges's width

Definition at line 553 of file MSEdge.h.

References myWidth.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSLCM_SL2015::keepLatGap(), MSVehicle::planMoveInternal(), and MSLCM_SL2015::prepareStep().

◆ hasLaneChanger()

bool MSEdge::hasLaneChanger ( ) const
inline

◆ hasMinorLink()

bool MSEdge::hasMinorLink ( ) const

whether any lane has a minor link

Definition at line 1106 of file MSEdge.cpp.

References myLanes.

Referenced by hasLaneChanger().

◆ incVaporization()

SUMOTime MSEdge::incVaporization ( SUMOTime  t)

Enables vaporization.

The internal vaporization counter is increased enabling the vaporization. Called from the event handler.

Parameters
[in]tThe current time (unused)
Returns
Time to next call (always 0)
Exceptions
ProcessErrornot thrown by this method, just derived

Definition at line 430 of file MSEdge.cpp.

References myVaporizationRequests.

Referenced by NLTriggerBuilder::buildVaporizer(), and isVaporizing().

◆ initialize()

void MSEdge::initialize ( const std::vector< MSLane *> *  lanes)

Initialize the edge.

Parameters
[in]allowedInformation which edges may be reached from which lanes
[in]lanesList of this edge's lanes

Definition at line 108 of file MSEdge.cpp.

References EDGEFUNC_CONNECTOR, MSGlobals::gLateralResolution, myCombinedPermissions, myFunction, myLanes, mySublaneSides, myWidth, MSLeaderInfo::numSublanes(), and SVCAll.

Referenced by NLHandler::addDistrict(), and NLEdgeControlBuilder::closeEdge().

◆ insertIDs()

void MSEdge::insertIDs ( std::vector< std::string > &  into)
static

Inserts IDs of all known edges into the given vector.

Definition at line 853 of file MSEdge.cpp.

References myDict.

Referenced by libsumo::Edge::getIDList(), and unlock().

◆ insertVehicle()

bool MSEdge::insertVehicle ( SUMOVehicle v,
SUMOTime  time,
const bool  checkOnly = false,
const bool  forceCheck = false 
) const

Tries to insert the given vehicle into the network.

The procedure for choosing the proper lane is determined, first. In dependance to this, the proper lane is chosen.

Insertion itself is done by calling the chose lane's "insertVehicle" method but only if the checkOnly argument is false. The check needs to be certain only in the negative case (if false is returned, there is no way this vehicle would be inserted).

Parameters
[in]vThe vehicle to insert
[in]timeThe current simulation time
[in]checkOnlyWhether we perform only the check without actually inserting
[in]forceCheckWhether the full insertion check should be run for each pending vehicle or whether insertion on lanes for which an insertion has already a failed should be ignored in the current time step.
Returns
Whether the vehicle could be inserted
See also
MSLane::insertVehicle

Definition at line 583 of file MSEdge.cpp.

References MSVehicleType::computeChosenSpeedDeviation(), DEPART_LANE_DEFAULT, DEPART_LANE_FIRST_ALLOWED, DEPART_LANE_GIVEN, DEPART_POS_FREE, DEPART_POS_GIVEN, DEPART_POS_RANDOM, DEPART_POS_RANDOM_FREE, DEPART_SPEED_GIVEN, SUMOVehicleParameter::departLaneProcedure, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosProcedure, SUMOVehicleParameter::departSpeed, SUMOVehicleParameter::departSpeedProcedure, MSLane::getBruttoOccupancy(), SUMOTrafficObject::getChosenSpeedFactor(), getDepartLane(), SUMOTrafficObject::getID(), Named::getID(), MSLane::getIndex(), MSNet::getInstance(), getLength(), MSVehicleType::getLengthWithGap(), MESegment::getNextSegment(), Distribution_Parameterized::getParameter(), SUMOVehicle::getParameter(), MELoop::getSegmentForEdge(), MSVehicleType::getSpeedFactor(), getSpeedLimit(), getVehicleMaxSpeed(), SUMOTrafficObject::getVehicleType(), MSGlobals::gMesoNet, MSGlobals::gUseMesoSim, MESegment::hasSpaceFor(), SUMOVehicleParameter::id, MESegment::initialise(), MSLane::insertVehicle(), isTazConnector(), isVaporizing(), myFailedInsertionMemory, myLanes, myLastFailedInsertionTime, myLength, RandHelper::rand(), SUMOVehicle::setChosenSpeedFactor(), time2string(), toString(), and WRITE_WARNING.

Referenced by MSInsertionControl::checkCandidates(), MSCalibrator::execute(), and getTravelTimeStatic().

◆ isCrossing()

◆ isDelayed()

bool MSEdge::isDelayed ( ) const
inline

Definition at line 646 of file MSEdge.h.

References myAmDelayed, and myBidiEdge.

◆ isFringe()

bool MSEdge::isFringe ( ) const
inline

return whether this edge is at the fringe of the network

Definition at line 667 of file MSEdge.h.

References myAmFringe.

Referenced by MSVehicle::planMoveInternal().

◆ isInternal()

◆ isNormal()

bool MSEdge::isNormal ( ) const
inline

return whether this edge is an internal edge

Definition at line 228 of file MSEdge.h.

References EDGEFUNC_NORMAL, and myFunction.

Referenced by MSRailSignal::DriveWay::buildRoute(), and GUIEdge::getIDs().

◆ isRoundabout()

◆ isSelected()

virtual bool MSEdge::isSelected ( ) const
inlinevirtual

whether this lane is selected in the GUI

Reimplemented in GUIEdge.

Definition at line 672 of file MSEdge.h.

◆ isSuperposable()

bool MSEdge::isSuperposable ( const MSEdge other)
private

Definition at line 1143 of file MSEdge.cpp.

References getLanes(), and myLanes.

Referenced by checkAndRegisterBiDirEdge().

◆ isTazConnector()

◆ isVaporizing()

bool MSEdge::isVaporizing ( ) const
inline

Returns whether vehicles on this edge shall be vaporized.

Returns
Whether no vehicle shall be on this edge

Definition at line 377 of file MSEdge.h.

References decVaporization(), getCurrentTravelTime(), incVaporization(), myVaporizationRequests, and NUMERICAL_EPS.

Referenced by MSVehicle::executeMove(), MSLane::executeMovements(), insertVehicle(), and MSVehicle::processLaneAdvances().

◆ isWalkingArea()

◆ knowsParameter()

◆ leftLane()

MSLane * MSEdge::leftLane ( const MSLane *const  lane) const

Returns the lane left to the one given, 0 if the given lane is leftmost.

Parameters
[in]laneThe lane right to the one to be returned
Returns
The lane left to the given, 0 if no such lane exists
Todo:
This method searches for the given in the container; probably, this could be done faster

Definition at line 373 of file MSEdge.cpp.

References parallelLane().

◆ lock()

virtual void MSEdge::lock ( ) const
inlinevirtual

grant exclusive access to the mesoscopic state

Reimplemented in GUIEdge.

Definition at line 677 of file MSEdge.h.

Referenced by MESegment::receive(), and MESegment::removeCar().

◆ markAsRoundabout()

void MSEdge::markAsRoundabout ( )
inline

Definition at line 637 of file MSEdge.h.

References myAmRoundabout.

Referenced by NLHandler::addRoundabout(), and NLEdgeControlBuilder::build().

◆ markDelayed()

void MSEdge::markDelayed ( ) const
inline

◆ operator=()

MSEdge& MSEdge::operator= ( const MSEdge )
private

assignment operator.

◆ parallelLane()

MSLane * MSEdge::parallelLane ( const MSLane *const  lane,
int  offset,
bool  includeOpposite = true 
) const

Returns the lane with the given offset parallel to the given lane one or 0 if it does not exist.

Parameters
[in]laneThe base lane
[in]offsetThe offset of the result lane
[in]includeOpposteWhether an opposite direction lane may be returned
Todo:
This method searches for the given in the container; probably, this could be done faster

Definition at line 385 of file MSEdge.cpp.

References MSLane::getIndex(), MSLane::getOpposite(), and myLanes.

Referenced by MSLane::getParallelLane(), leftLane(), and rightLane().

◆ parseEdgesList() [1/2]

void MSEdge::parseEdgesList ( const std::string &  desc,
ConstMSEdgeVector into,
const std::string &  rid 
)
static

Parses the given string assuming it contains a list of edge ids divided by spaces.

Splits the string at spaces, uses polymorph method to generate edge vector.

Parameters
[in]descThe string containing space-separated edge ids
[out]intoThe vector to fill
[in]ridThe id of the route these description belongs to; used for error message generation
Exceptions
ProcessErrorIf one of the strings contained is not a known edge id

Definition at line 861 of file MSEdge.cpp.

References BinaryFormatter::BF_ROUTE, StringTokenizer::getVector(), and FileHelpers::readEdgeVector().

Referenced by MSRouteHandler::addWalk(), libsumo::Person::appendWalkingStage(), libsumo::Person::convertTraCIStage(), MSRouteHandler::myStartElement(), MSRouteHandler::openRoute(), MSRouteHandler::parseFromViaTo(), libsumo::Vehicle::setRoute(), libsumo::Vehicle::setVia(), and unlock().

◆ parseEdgesList() [2/2]

void MSEdge::parseEdgesList ( const std::vector< std::string > &  desc,
ConstMSEdgeVector into,
const std::string &  rid 
)
static

Parses the given string vector assuming it edge ids.

Parameters
[in]descThe string vector containing edge ids
[out]intoThe vector to fill
[in]ridThe id of the route these description belongs to; used for error message generation
Exceptions
ProcessErrorIf one of the strings contained is not a known edge id

Definition at line 876 of file MSEdge.cpp.

References dictionary().

◆ prohibits()

bool MSEdge::prohibits ( const SUMOVehicle *const  vehicle) const
inline

Returns whether the vehicle (class) is not allowed on the edge.

Definition at line 538 of file MSEdge.h.

References SUMOTrafficObject::getVClass(), and myCombinedPermissions.

◆ rebuildAllowedLanes()

◆ rebuildAllowedTargets()

void MSEdge::rebuildAllowedTargets ( const bool  updateVehicles = true)

◆ recalcCache()

◆ removeContainer()

virtual void MSEdge::removeContainer ( MSTransportable container) const
inlinevirtual

Remove container from myContainers.

Reimplemented in GUIEdge.

Definition at line 626 of file MSEdge.h.

References myContainers.

Referenced by MSTransportableControl::abortAnyWaitingForVehicle(), MSTransportableControl::loadAnyWaiting(), MSContainer::proceed(), and GUIEdge::removeContainer().

◆ removePerson()

virtual void MSEdge::removePerson ( MSTransportable p) const
inlinevirtual

◆ rightLane()

MSLane * MSEdge::rightLane ( const MSLane *const  lane) const

Returns the lane right to the one given, 0 if the given lane is rightmost.

Parameters
[in]laneThe lane left to the one to be returned
Returns
The lane right to the given, 0 if no such lane exists
Todo:
This method searches for the given in the container; probably, this could be done faster

Definition at line 379 of file MSEdge.cpp.

References parallelLane().

◆ setCrossingEdges()

void MSEdge::setCrossingEdges ( const std::vector< std::string > &  crossingEdges)
inline

Sets the crossed edge ids for a crossing edge.

Definition at line 296 of file MSEdge.h.

References myCrossingEdges.

Referenced by NLEdgeControlBuilder::addCrossingEdges().

◆ setID()

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

◆ setJunctions()

void MSEdge::setJunctions ( MSJunction from,
MSJunction to 
)

◆ setLastFailedInsertionTime()

void MSEdge::setLastFailedInsertionTime ( SUMOTime  time) const
inline

Sets the last time a vehicle could not be inserted.

Parameters
[in]timethe new value

Definition at line 517 of file MSEdge.h.

References changeLanes(), getInternalFollowingEdge(), getInternalFollowingLengthTo(), getNormalBefore(), and myLastFailedInsertionTime.

◆ setMaxSpeed()

void MSEdge::setMaxSpeed ( double  val) const

Sets a new maximum speed for all lanes (used by TraCI and MSCalibrator)

Parameters
[in]valthe new speed in m/s

Definition at line 935 of file MSEdge.cpp.

References myLanes.

Referenced by METriggeredCalibrator::execute(), MSCalibrator::execute(), and getLength().

◆ setParameter()

void Parameterised::setParameter ( const std::string &  key,
const std::string &  value 
)
inherited

Sets a parameter.

Parameters
[in]keyThe parameter's name
[in]valueThe parameter's value

Definition at line 45 of file Parameterised.cpp.

References Parameterised::myMap.

Referenced by NLHandler::addDistrict(), SUMORouteHandler::addParam(), ShapeHandler::addPOI(), NBEdge::append(), NIImporter_OpenStreetMap::insertNodeChecking(), NBNodeCont::joinNodeCluster(), NBEdge::Lane::Lane(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIXMLTrafficLightsHandler::myStartElement(), MSStateHandler::myStartElement(), ShapeHandler::myStartElement(), NIXMLNodesHandler::myStartElement(), NIImporter_MATSim::EdgesHandler::myStartElement(), NIImporter_OpenStreetMap::EdgesHandler::myStartElement(), GNEAdditionalHandler::parseGenericParameter(), GNEVehicleType::setAttribute(), GNEConnection::setGenericParametersStr(), GNEVehicleType::setGenericParametersStr(), GNELane::setGenericParametersStr(), GNEPoly::setGenericParametersStr(), GNEStop::setGenericParametersStr(), GNEPOI::setGenericParametersStr(), GNEJunction::setGenericParametersStr(), GNERide::setGenericParametersStr(), GNEPersonTrip::setGenericParametersStr(), GNEWalk::setGenericParametersStr(), GNEEdge::setGenericParametersStr(), GNERoute::setGenericParametersStr(), GNEPerson::setGenericParametersStr(), GNEAdditional::setGenericParametersStr(), GNEVehicle::setGenericParametersStr(), NIImporter_OpenDrive::setLaneAttributes(), libsumo::Route::setParameter(), libsumo::Polygon::setParameter(), libsumo::TrafficLight::setParameter(), libsumo::POI::setParameter(), libsumo::Edge::setParameter(), and libsumo::Lane::setParameter().

◆ unlock()

virtual void MSEdge::unlock ( ) const
inlinevirtual

release exclusive access to the mesoscopic state

Reimplemented in GUIEdge.

Definition at line 680 of file MSEdge.h.

References clear(), dictionary(), dictSize(), getAllEdges(), insertIDs(), and parseEdgesList().

Referenced by MESegment::receive(), and MESegment::removeCar().

◆ unsetParameter()

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

Removes a parameter.

Parameters
[in]keyThe parameter's name

Definition at line 51 of file Parameterised.cpp.

References Parameterised::myMap.

Referenced by GNEVehicleType::setAttribute().

◆ updateParameter()

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

◆ writeParams()

Field Documentation

◆ myAllowed

AllowedLanesCont MSEdge::myAllowed
protected

Associative container from vehicle class to allowed-lanes.

Definition at line 813 of file MSEdge.h.

Referenced by allowedLanes(), rebuildAllowedLanes(), rebuildAllowedTargets(), and ~MSEdge().

◆ myAllowedTargets

AllowedLanesByTarget MSEdge::myAllowedTargets
protected

From target edge to lanes allowed to be used to reach it.

Definition at line 816 of file MSEdge.h.

Referenced by allowedLanes(), rebuildAllowedTargets(), and ~MSEdge().

◆ myAmDelayed

bool MSEdge::myAmDelayed
mutableprotected

whether this edge had a vehicle with less than max speed on it

Definition at line 849 of file MSEdge.h.

Referenced by getCurrentTravelTime(), isDelayed(), and markDelayed().

◆ myAmFringe

bool MSEdge::myAmFringe
protected

whether this edge is at the network fringe

Definition at line 855 of file MSEdge.h.

Referenced by closeBuilding(), and isFringe().

◆ myAmRoundabout

bool MSEdge::myAmRoundabout
protected

whether this edge belongs to a roundabout

Definition at line 852 of file MSEdge.h.

Referenced by isRoundabout(), and markAsRoundabout().

◆ myBidiEdge

const MSEdge* MSEdge::myBidiEdge
private

the oppositing superposble edge

Definition at line 890 of file MSEdge.h.

Referenced by checkAndRegisterBiDirEdge(), getBidiEdge(), getMeanSpeed(), and isDelayed().

◆ myBoundary

Boundary MSEdge::myBoundary
protected

The bounding rectangle of end nodes incoming or outgoing edges for taz connectors or of my own start and end node for normal edges.

Definition at line 885 of file MSEdge.h.

Referenced by addSuccessor(), getDistanceTo(), and setJunctions().

◆ myClassesSuccessorMap

std::map<SUMOVehicleClass, MSEdgeVector> MSEdge::myClassesSuccessorMap
mutableprotected

The successors available for a given vClass.

Definition at line 879 of file MSEdge.h.

Referenced by getSuccessors(), and rebuildAllowedTargets().

◆ myClassesViaSuccessorMap

std::map<SUMOVehicleClass, MSConstEdgePairVector> MSEdge::myClassesViaSuccessorMap
mutableprotected

The successors available for a given vClass.

Definition at line 882 of file MSEdge.h.

Referenced by getViaSuccessors().

◆ myCombinedPermissions

SVCPermissions MSEdge::myCombinedPermissions
protected

The union of lane permissions for this edge.

Definition at line 821 of file MSEdge.h.

Referenced by allowedLanes(), getPermissions(), initialize(), prohibits(), rebuildAllowedLanes(), and rebuildAllowedTargets().

◆ myContainers

std::set<MSTransportable*> MSEdge::myContainers
mutableprotected

Containers on the edge.

Definition at line 807 of file MSEdge.h.

Referenced by addContainer(), GUIEdge::drawGL(), getSortedContainers(), and removeContainer().

◆ myCrossingEdges

std::vector<std::string> MSEdge::myCrossingEdges
protected

The crossed edges id for a crossing edge. On not crossing edges it is empty.

Definition at line 789 of file MSEdge.h.

Referenced by getCrossingEdges(), and setCrossingEdges().

◆ myDict

MSEdge::DictType MSEdge::myDict
staticprotected

Static dictionary to associate string-ids with objects.

Deprecated:
Move to MSEdgeControl, make non-static

Definition at line 869 of file MSEdge.h.

Referenced by clear(), dictionary(), dictSize(), GUIEdge::getIDs(), GUIEdge::getTotalLength(), and insertIDs().

◆ myDistance

const double MSEdge::myDistance
protected

the kilometrage/mileage at the start of the edge

Definition at line 834 of file MSEdge.h.

Referenced by getDistance().

◆ myEdges

MSEdgeVector MSEdge::myEdges
staticprotected

Static list of edges.

Deprecated:
Move to MSEdgeControl, make non-static

Definition at line 874 of file MSEdge.h.

Referenced by clear(), dictionary(), and getAllEdges().

◆ myEdgeType

std::string MSEdge::myEdgeType
protected

the type of the edge (optionally used during network creation)

Definition at line 828 of file MSEdge.h.

Referenced by getEdgeType().

◆ myEmptyTraveltime

double MSEdge::myEmptyTraveltime
protected

the traveltime on the empty edge (cached value for speedup)

Definition at line 843 of file MSEdge.h.

Referenced by getCurrentTravelTime(), getMeanSpeed(), getMinimumTravelTime(), and recalcCache().

◆ myFailedInsertionMemory

std::set<int> MSEdge::myFailedInsertionMemory
mutableprotected

A cache for the rejected insertion attempts. Used to assure that no further insertion attempts are made on a lane where an attempt has already failed in the current time step if MSInsertionControl::myEagerInsertionCheck is off.

Definition at line 786 of file MSEdge.h.

Referenced by insertVehicle().

◆ myFromJunction

MSJunction* MSEdge::myFromJunction
protected

the junctions for this edge

Definition at line 800 of file MSEdge.h.

Referenced by checkAndRegisterBiDirEdge(), getFromJunction(), and setJunctions().

◆ myFunction

const SumoXMLEdgeFunc MSEdge::myFunction
protected

◆ myID

◆ myLaneChanger

MSLaneChanger* MSEdge::myLaneChanger
protected

This member will do the lane-change.

Definition at line 772 of file MSEdge.h.

Referenced by buildLaneChanger(), changeLanes(), hasLaneChanger(), and ~MSEdge().

◆ myLanes

◆ myLastFailedInsertionTime

SUMOTime MSEdge::myLastFailedInsertionTime
mutableprotected

The time of last insertion failure.

Definition at line 781 of file MSEdge.h.

Referenced by getLastFailedInsertionTime(), insertVehicle(), and setLastFailedInsertionTime().

◆ myLength

double MSEdge::myLength
protected

the length of the edge (cached value for speedup)

Definition at line 840 of file MSEdge.h.

Referenced by getDepartPosBound(), getFreeLane(), getLength(), insertVehicle(), and recalcCache().

◆ myMinimumPermissions

SVCPermissions MSEdge::myMinimumPermissions
protected

The intersection of lane permissions for this edge.

Definition at line 819 of file MSEdge.h.

Referenced by allowedLanes(), rebuildAllowedLanes(), and rebuildAllowedTargets().

◆ myNumericalID

const int MSEdge::myNumericalID
protected

This edge's numerical id.

Definition at line 766 of file MSEdge.h.

Referenced by getNumericalID().

◆ myPersons

std::set<MSTransportable*> MSEdge::myPersons
mutableprotected

Persons on the edge for drawing and pushbutton.

Definition at line 804 of file MSEdge.h.

Referenced by addPerson(), GUIEdge::drawGL(), getPersons(), getSortedPersons(), and removePerson().

◆ myPredecessors

MSEdgeVector MSEdge::myPredecessors
protected

The preceeding edges.

Definition at line 797 of file MSEdge.h.

Referenced by addSuccessor(), closeBuilding(), GUIEdge::getBoundary(), getNumPredecessors(), and getPredecessors().

◆ myPriority

const int MSEdge::myPriority
protected

the priority of the edge (used during network creation)

Definition at line 831 of file MSEdge.h.

Referenced by getPriority().

◆ myStreetName

std::string MSEdge::myStreetName
protected

the real-world name of this edge (need not be unique)

Definition at line 825 of file MSEdge.h.

Referenced by GUIEdge::drawGL(), GUIEdge::getOptionalName(), and getStreetName().

◆ mySublaneSides

std::vector<double> MSEdge::mySublaneSides
protected

the right side for each sublane on this edge

Definition at line 858 of file MSEdge.h.

Referenced by getSubLaneSides(), and initialize().

◆ mySuccessors

MSEdgeVector MSEdge::mySuccessors
protected

The succeeding edges.

Definition at line 792 of file MSEdge.h.

Referenced by addSuccessor(), closeBuilding(), GUIEdge::getBoundary(), getNumSuccessors(), getSuccessors(), and rebuildAllowedTargets().

◆ myTimePenalty

double MSEdge::myTimePenalty
protected

flat penalty when computing traveltime

Definition at line 846 of file MSEdge.h.

Referenced by getMinimumTravelTime(), and recalcCache().

◆ myToJunction

MSJunction* MSEdge::myToJunction
protected

Definition at line 801 of file MSEdge.h.

Referenced by checkAndRegisterBiDirEdge(), getToJunction(), and setJunctions().

◆ myVaporizationRequests

int MSEdge::myVaporizationRequests
protected

Vaporizer counter.

Definition at line 778 of file MSEdge.h.

Referenced by decVaporization(), incVaporization(), and isVaporizing().

◆ myViaSuccessors

MSConstEdgePairVector MSEdge::myViaSuccessors
protected

Definition at line 794 of file MSEdge.h.

Referenced by addSuccessor(), closeBuilding(), and getViaSuccessors().

◆ myWidth

double MSEdge::myWidth
protected

Edge width [m].

Definition at line 837 of file MSEdge.h.

Referenced by getWidth(), and initialize().


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