SUMO - Simulation of Urban MObility
MSEdge Class Reference

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

#include <MSEdge.h>

Inheritance diagram for MSEdge:
Inheritance graph
Collaboration diagram for MSEdge:
Collaboration graph

Data Structures

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

Public Types

typedef std::map< const MSEdge *, std::vector< MSLane * > * > AllowedLanesCont
 Suceeding edges (keys) and allowed lanes to reach these edges (values). More...
 
typedef std::map< SUMOVehicleClass, AllowedLanesContClassedAllowedLanesCont
 Map from vehicle types to lanes that may be used to reach one of the next edges. More...
 
enum  EdgeBasicFunction {
  EDGEFUNCTION_UNKNOWN = -1, EDGEFUNCTION_NORMAL = 0, EDGEFUNCTION_CONNECTOR = 1, EDGEFUNCTION_INTERNAL = 2,
  EDGEFUNCTION_DISTRICT = 3, EDGEFUNCTION_CROSSING = 4, EDGEFUNCTION_WALKINGAREA = 5
}
 Defines possible edge types. More...
 

Public Member Functions

virtual void addContainer (MSTransportable *container) const
 Add a container to myContainers. More...
 
void addParameter (const std::string &key, const std::string &value)
 Adds a parameter. More...
 
void addParameter (const std::map< std::string, std::string > &mapArg)
 Adds all given parameter. More...
 
void addParameter (const Parameterised &p)
 Adds all given parameter. More...
 
virtual void addPerson (MSTransportable *p) const
 
void addTo (const StoringVisitor &cont) const
 Adds this object to the given container. More...
 
bool allowsLaneChanging ()
 
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...
 
SUMOReal getCurrentTravelTime (const SUMOReal minSpeed=NUMERICAL_EPS) const
 Computes and returns the current travel time for this edge. More...
 
SUMOReal getDistanceTo (const MSEdge *other) const
 optimistic air distance heuristic for use in routing More...
 
const std::string & getID () const
 Returns the id. More...
 
SUMOReal getLength () const
 return the length of the edge More...
 
const std::map< std::string, std::string > & getMap () const
 Returns the inner key/value map. More...
 
SUMOReal getMeanSpeed () const
 get the mean speed More...
 
SUMOReal getMinimumTravelTime (const SUMOVehicle *const veh) const
 returns the minimum travel time for the given vehicle More...
 
const std::string & getParameter (const std::string &key, const std::string &defaultValue) const
 Returns the value for a given key. More...
 
SVCPermissions getPermissions () const
 
SUMOReal getRoutingSpeed () const
 Returns the averaged speed used by the routing device. More...
 
SUMOReal 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< SUMORealgetSubLaneSides () const
 Returns the right side offsets of this edge's sublanes. More...
 
SUMOReal getVehicleMaxSpeed (const SUMOVehicle *const veh) const
 Returns the maximum speed the vehicle may use on this edge. More...
 
SUMOReal getWidth () const
 Returns the edges's width (sum over all lanes) More...
 
bool hasLaneChanger () const
 
void initialize (const std::vector< MSLane * > *lanes)
 Initialize the edge. More...
 
bool isRoundabout () const
 
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 EdgeBasicFunction function, const std::string &streetName, const std::string &edgeType, int priority)
 Constructor. More...
 
bool prohibits (const SUMOVehicle *const vehicle) const
 Returns whether the vehicle (class) is not allowed on the edge. More...
 
void rebuildAllowedLanes ()
 
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 (SUMOReal val) const
 Sets a new maximum speed for all lanes (used by TraCI and MSCalibrator) More...
 
virtual void unlock () const
 release exclusive access to the mesoscopic state 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) 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) const
 Returns this edge's persons sorted by pos. More...
 
std::vector< MSTransportable * > getSortedContainers (SUMOTime timestep) 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
EdgeBasicFunction getPurpose () const
 Returns the edge type (EdgeBasicFunction) 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...
 
bool isWalkingArea () const
 return whether this edge is walking area More...
 
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...
 
Access to succeeding/predecessing edges
void addSuccessor (MSEdge *edge)
 Adds an edge to the list of edges which may be reached from this edge and to the incoming of the other edge. More...
 
const MSEdgeVectorgetIncomingEdges () const
 Returns the list of edges from which this edge may be reached. More...
 
const std::vector< MSEdge * > & getOutgoingEdges () const
 Returns the list of edges that may be reached from this edge. More...
 
int getNumSuccessors () const
 Returns the number of edges that may be reached from this edge. More...
 
const MSEdgeVectorgetSuccessors () const
 Returns the following edges. More...
 
const MSEdgeVectorgetSuccessors (SUMOVehicleClass vClass) const
 Returns the following edges, restricted by vClass. More...
 
int getNumPredecessors () const
 Returns the number of edges this edge is connected to. More...
 
const MSEdgeVectorgetPredecessors () const
 Returns the edge at the given position from the list of reachable edges. More...
 
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
 Tries to insert the given vehicle into the network. More...
 
MSLanegetFreeLane (const std::vector< MSLane * > *allowed, const SUMOVehicleClass vclass) 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 SUMOReal getTravelTimeStatic (const MSEdge *const edge, const SUMOVehicle *const veh, SUMOReal 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

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 * > * getAllowedLanesWithDefault (const AllowedLanesCont &c, const MSEdge *dest) const
 lookup in map and return 0 if not found More...
 

Protected Attributes

bool myAmDelayed
 whether this edge had a vehicle with less than max speed on it More...
 
bool myAmRoundabout
 whether this edge belongs to a roundabout More...
 
std::map< SUMOVehicleClass, MSEdgeVectormyClassesSuccessorMap
 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...
 
std::string myEdgeType
 the type of the edge (optionally used during network creation) More...
 
SUMOReal myEmptyTraveltime
 the traveltime on the empty edge (cached value for speedup) More...
 
MSJunctionmyFromJunction
 the junctions for this edge More...
 
const EdgeBasicFunction 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...
 
SUMOReal 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< SUMORealmySublaneSides
 the right side for each sublane on this edge More...
 
MSEdgeVector mySuccessors
 The succeeding edges. More...
 
MSJunctionmyToJunction
 
int myVaporizationRequests
 Vaporizer counter. More...
 
SUMOReal myWidth
 Edge width [m]. More...
 
Storages for allowed lanes (depending on vehicle classes)
AllowedLanesCont myAllowed
 Associative container from destination-edge to allowed-lanes. More...
 
ClassedAllowedLanesCont myClassedAllowed
 From vehicle class to lanes allowed to be used by 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 Member Functions

 MSEdge (const MSEdge &)
 Invalidated copy constructor. More...
 
MSEdgeoperator= (const MSEdge &)
 assignment operator. 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 80 of file MSEdge.h.

Member Typedef Documentation

typedef std::map< const MSEdge*, std::vector<MSLane*>* > MSEdge::AllowedLanesCont

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

Definition at line 108 of file MSEdge.h.

Map from vehicle types to lanes that may be used to reach one of the next edges.

Definition at line 111 of file MSEdge.h.

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

definition of the static dictionary type

Definition at line 840 of file MSEdge.h.

Member Enumeration Documentation

Defines possible edge types.

For different purposes, it is necessary to know whether the edge is a normal street or something special.

Enumerator
EDGEFUNCTION_UNKNOWN 

The purpose of the edge is not known.

EDGEFUNCTION_NORMAL 

The edge is a normal street.

EDGEFUNCTION_CONNECTOR 

The edge is a macroscopic connector (source/sink)

EDGEFUNCTION_INTERNAL 

The edge is an internal edge.

EDGEFUNCTION_DISTRICT 

The edge is a district edge.

EDGEFUNCTION_CROSSING 

The edge is a pedestrian crossing (a special type of internal edge)

EDGEFUNCTION_WALKINGAREA 

The edge is a pedestrian walking area (a special type of internal edge)

Definition at line 89 of file MSEdge.h.

Constructor & Destructor Documentation

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

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 75 of file MSEdge.cpp.

MSEdge::~MSEdge ( )
virtual

Destructor.

Definition at line 94 of file MSEdge.cpp.

References myAllowed, myClassedAllowed, myLaneChanger, and myLanes.

MSEdge::MSEdge ( const MSEdge )
private

Invalidated copy constructor.

Member Function Documentation

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

Add a container to myContainers.

Reimplemented in GUIEdge.

Definition at line 620 of file MSEdge.h.

References myContainers.

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

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

Adds all given parameter.

Parameters
[in]mapArgThe keys/values to insert

Definition at line 59 of file Parameterised.cpp.

References Parameterised::myMap.

void Parameterised::addParameter ( const Parameterised p)
inherited

Adds all given parameter.

Parameters
[in]pThe keys/values to insert

Definition at line 67 of file Parameterised.cpp.

References Parameterised::myMap.

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

Reimplemented in GUIEdge.

Definition at line 608 of file MSEdge.h.

References myPersons.

Referenced by GUIEdge::addPerson(), MSPerson::MSPersonStage_Driving::proceed(), and MSTransportable::Stage_Waiting::proceed().

void MSEdge::addSuccessor ( MSEdge edge)
inline

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 319 of file MSEdge.h.

References myPredecessors, and mySuccessors.

Referenced by NLHandler::addDistrict().

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

Adds this object to the given container.

Parameters

Definition at line 129 of file Named.h.

References Named::StoringVisitor::add().

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, 0 if no such lanes exist

Definition at line 301 of file MSEdge.cpp.

Referenced by allowedLanes(), MSVehicleTransfer::checkInsertions(), getDepartLane(), getFreeLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), getPersons(), getSuccessors(), MESegment::MESegment(), MSLane::by_connections_to_sorter::operator()(), MSBaseVehicle::reroute(), and MSVehicle::updateBestLanes().

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 307 of file MSEdge.cpp.

References allowedLanes().

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

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, 0 if no such lanes exist

Definition at line 323 of file MSEdge.cpp.

References MSLane::allowsVehicleClass(), getAllowedLanesWithDefault(), MSLane::getEdge(), myAllowed, myClassedAllowed, and myMinimumPermissions.

void MSEdge::buildLaneChanger ( )

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

Definition at line 210 of file MSEdge.cpp.

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

bool MSEdge::canChangeToOpposite ( )

whether this edge allows changing to the opposite direction edge

Definition at line 850 of file MSEdge.cpp.

References myLanes.

Referenced by buildLaneChanger(), MSLaneChanger::changeOpposite(), and hasLaneChanger().

void MSEdge::clear ( )
static

Clears the dictionary.

Definition at line 705 of file MSEdge.cpp.

References myDict.

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

void Parameterised::clearParameter ( )
inherited

Clears the parameter map.

Definition at line 91 of file Parameterised.cpp.

References Parameterised::myMap.

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, myAllowed, myLanes, myPredecessors, mySuccessors, and rebuildAllowedLanes().

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 391 of file MSEdge.cpp.

References myVaporizationRequests.

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

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

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

Definition at line 682 of file MSEdge.cpp.

References myDict.

int MSEdge::dictSize ( )
static

Returns the number of edges.

Definition at line 693 of file MSEdge.cpp.

References myDict.

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

const std::vector< MSLane * > * MSEdge::getAllowedLanesWithDefault ( const AllowedLanesCont c,
const MSEdge dest 
) const
protected

lookup in map and return 0 if not found

Definition at line 313 of file MSEdge.cpp.

Referenced by allowedLanes().

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 306 of file MSEdge.h.

References myCrossingEdges.

Referenced by MSPedestrianPushButton::loadCrossingEdgeMap().

SUMOReal MSEdge::getCurrentTravelTime ( const SUMOReal  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 649 of file MSEdge.cpp.

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

Referenced by MSVehicleTransfer::add(), MSVehicleTransfer::checkInsertions(), isVaporizing(), TraCIServerAPI_Edge::processGet(), and MSFullExport::writeEdge().

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 418 of file MSEdge.cpp.

References allowedLanes(), MSRoute::begin(), 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(), getFreeLane(), MSBaseVehicle::getParameter(), RandHelper::getRandomFrom(), MSBaseVehicle::getRoute(), MSVehicleType::getVehicleClass(), MSBaseVehicle::getVehicleType(), myLanes, MSRoute::size(), SUMOReal, and MSVehicle::updateBestLanes().

Referenced by getTravelTimeStatic(), and insertVehicle().

SUMOReal MSEdge::getDistanceTo ( const MSEdge other) const

optimistic air distance heuristic for use in routing

Parameters
[in]otherThe edge to which the distance shall be returned
Returns
The distance to the other edge

Definition at line 752 of file MSEdge.cpp.

References Position::distanceTo2D(), getFromJunction(), getLanes(), MSJunction::getPosition(), getToJunction(), and SUMOReal.

Referenced by getSubLaneSides().

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

Returns the type of the edge.

Definition at line 284 of file MSEdge.h.

References myEdgeType.

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

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

Finds the emptiest lane allowing the vehicle class.

The emptiest lane is the one with the fewest vehicles on. 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
Returns
the least occupied lane
See also
allowedLanes

Definition at line 398 of file MSEdge.cpp.

References allowedLanes(), max, and SUMOReal.

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

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

Returns the id.

Returns
The stored id

Definition at line 66 of file Named.h.

References Named::myID.

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

const MSEdgeVector& MSEdge::getIncomingEdges ( ) const
inline

Returns the list of edges from which this edge may be reached.

Returns
Edges from which this edge may be reached

Definition at line 328 of file MSEdge.h.

References myPredecessors.

Referenced by NLEdgeControlBuilder::build(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), MSLane::getLogicalPredecessorLane(), getWalkingAreas(), and MSPModel_Striping::initWalkingAreaPaths().

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

Returns this edge's lanes.

Returns
This edge's lanes

Definition at line 192 of file MSEdge.h.

References myLanes.

Referenced by MSLCM_SL2015::_patchSpeed(), MSLCM_LC2013::_patchSpeed(), MSVehicleTransfer::add(), NLHandler::addConnection(), GUIEdge::addRerouter(), MSRouteHandler::addStop(), MELoop::buildSegmentsFor(), MSBaseVehicle::calculateArrivalParams(), MSEdgeControl::changeLanes(), MSVehicleTransfer::checkInsertions(), GUIEdge::closeTraffic(), MSRouteHandler::closeVehicle(), MSLCM_SL2015::computeSublaneShift(), CState::computeTranshipTime(), GUILane::drawMarkings(), MS_E2_ZS_CollectorOverLanes::extendTo(), TraCIServerAPI_Vehicle::findCloserLane(), MEVehicle::getAngle(), GUIEdge::getColorValue(), getDistanceTo(), MSTransportable::Stage::getEdgeAngle(), GUILane::getEdgeLaneNumber(), MSTransportable::Stage::getEdgePosition(), TraCIServerAPI_Simulation::getLaneChecking(), MSVehicle::getLaneIndex(), MESegment::getLink(), MSInsertionControl::getPendingEmits(), GUIEdge::getPopUpMenu(), MEVehicle::getPosition(), GUIContainer::getPosition(), MSVehicle::getPosition(), GUIEdge::getScaleValue(), GUIEdge::getSegmentAtPosition(), TraCIServerAPI_Edge::getShape(), MEVehicle::getSlope(), getSpeedLimit(), GUIEdge::getTotalLength(), getVehicleMaxSpeed(), GUICalibrator::GUICalibrator(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), MSVehicle::Influencer::influenceChangeDecision(), GUINet::initGUIStructures(), MSCalibrator::invalidJam(), MSPedestrianPushButton::isActiveForEdge(), GUISUMOViewParent::isSelected(), MESegment::MESegment(), MSCalibrator::MSCalibrator(), MSRouteProbe::MSRouteProbe(), GUIMEInductLoop::MyWrapper::MyWrapper(), MSLCM_DK2008::patchSpeed(), MSLCM_SL2015::prepareStep(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Vehicle::processSet(), MSCalibrator::remainingVehicleCapacity(), GUIEdge::setFunctionalColor(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), TraCIServerAPI_Vehicle::vtdMap(), MSQueueExport::writeEdge(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), MSMeanData::writeEdge(), MSFCDExport::writeTransportable(), and MEInductLoop::writeXMLOutput().

SUMOTime MSEdge::getLastFailedInsertionTime ( ) const
inline

Returns the last time a vehicle could not be inserted.

Returns
The current value

Definition at line 524 of file MSEdge.h.

References myLastFailedInsertionTime.

Referenced by MSInsertionControl::checkCandidates().

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

returns the minimum travel time for the given vehicle

Definition at line 444 of file MSEdge.h.

References getLength(), getSpeedLimit(), and getVehicleMaxSpeed().

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

int MSEdge::getNumericalID ( ) const
inline
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 365 of file MSEdge.h.

References myPredecessors.

Referenced by MSRouteHandler::parseFromViaTo().

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 342 of file MSEdge.h.

References mySuccessors.

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

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

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

Returns
Edges that may be reached from this edge

Definition at line 335 of file MSEdge.h.

References mySuccessors.

Referenced by getWalkingAreas().

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

References Parameterised::myMap.

Referenced by MSTLLogicControl::WAUTSwitchProcedure_Stretch::adaptLogic(), MSDevice_Battery::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice::equippedByDefaultAssignmentOptions(), MSSOTLTrafficLightLogic::getDecayConstant(), MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSSOTLTrafficLightLogic::getInputSensorsLength(), MSSOTLRequestPolicy::getMinDecisionalPhaseDuration(), MSSOTLRequestTrafficLightLogic::getMinDecisionalPhaseDuration(), MSSOTLTrafficLightLogic::getMode(), MSSOTLTrafficLightLogic::getOutputSensorsLength(), MSSOTLTrafficLightLogic::getSpeedThreshold(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchAreaNo(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchBereichDef(), MSSOTLTrafficLightLogic::getThreshold(), PushButtonLogic::init(), MSSOTLPhasePolicy::init(), SigmoidLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), MSSOTLTrafficLightLogic::isDecayThresholdActivated(), MSSOTLTrafficLightLogic::isPushButtonPressed(), MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(), MSSOTLPolicy::MSSOTLPolicy(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), MSSwarmTrafficLightLogic::MSSwarmTrafficLightLogic(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Lane::processGet(), MSSOTLPolicyDesirability::readParameter(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic(), and TraCIServerAPI_Vehicle::vtdMap().

SVCPermissions MSEdge::getPermissions ( ) const
inline

Definition at line 556 of file MSEdge.h.

References myCombinedPermissions.

Referenced by getWalking(), and MSPedestrianPushButton::MSPedestrianPushButton().

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

Returns this edge's persons set.

Avoids the creation of new vector as in getSortedPersons

Returns
This edge's persons.

Definition at line 201 of file MSEdge.h.

References allowedLanes(), getSortedContainers(), getSortedPersons(), myPersons, and SVC_IGNORING.

Referenced by MSPedestrianPushButton::isActiveForEdge().

const MSEdgeVector& MSEdge::getPredecessors ( ) const
inline

Returns the edge at the given position from the list of reachable edges.

Parameters
[in]posThe position of the list within the list of approached
Returns
The following edge, stored at position pos

Definition at line 374 of file MSEdge.h.

References myPredecessors.

Referenced by MSPedestrianPushButton::isActiveForEdge().

int MSEdge::getPriority ( ) const
inline

Returns the priority of the edge.

Definition at line 290 of file MSEdge.h.

References myPriority.

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

SUMOReal MSEdge::getRoutingSpeed ( ) const

Returns the averaged speed used by the routing device.

Definition at line 659 of file MSEdge.cpp.

References MSDevice_Routing::getAssumedSpeed().

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

std::vector< MSTransportable * > MSEdge::getSortedContainers ( SUMOTime  timestep) const

Returns this edge's containers sorted by pos.

Returns
This edge's containers sorted by pos

Definition at line 795 of file MSEdge.cpp.

References myContainers.

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

std::vector< MSTransportable * > MSEdge::getSortedPersons ( SUMOTime  timestep) const

Returns this edge's persons sorted by pos.

Returns
This edge's persons sorted by pos

Definition at line 787 of file MSEdge.cpp.

References myPersons.

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

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

Returns the street name of the edge.

Definition at line 278 of file MSEdge.h.

References myStreetName.

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

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

Returns the right side offsets of this edge's sublanes.

Definition at line 568 of file MSEdge.h.

References getDistanceTo(), mySublaneSides, rebuildAllowedLanes(), and SUMOReal.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), and MSLCM_SL2015::prepareStep().

const MSEdgeVector & MSEdge::getSuccessors ( SUMOVehicleClass  vClass) const

Returns the following edges, restricted by vClass.

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

Definition at line 813 of file MSEdge.cpp.

References allowedLanes(), EDGEFUNCTION_DISTRICT, MSNet::getInstance(), myClassesSuccessorMap, myFunction, mySuccessors, and SVC_IGNORING.

static SUMOReal MSEdge::getTravelTimeStatic ( const MSEdge *const  edge,
const SUMOVehicle *const  veh,
SUMOReal  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 460 of file MSEdge.h.

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

SUMOReal MSEdge::getVehicleMaxSpeed ( const SUMOVehicle *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 769 of file MSEdge.cpp.

References getLanes().

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

SUMOReal MSEdge::getWidth ( ) const
inline

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

Returns
This edges's width

Definition at line 563 of file MSEdge.h.

References myWidth.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSLCM_SL2015::checkBlocking(), and MSLCM_SL2015::keepLatGap().

bool MSEdge::hasLaneChanger ( ) const
inline

Definition at line 644 of file MSEdge.h.

References canChangeToOpposite(), getMeanSpeed(), myLaneChanger, and SUMOReal.

Referenced by MSLCM_JE2013::_patchSpeed().

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 384 of file MSEdge.cpp.

References myVaporizationRequests.

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

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 110 of file MSEdge.cpp.

References EDGEFUNCTION_DISTRICT, MSGlobals::gLaneChangeDuration, MSGlobals::gLateralResolution, myCombinedPermissions, myFunction, myLanes, mySublaneSides, myWidth, MSLeaderInfo::numSublanes(), recalcCache(), SUMOReal, and SVCAll.

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

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

Inserts IDs of all known edges into the given vector.

Definition at line 714 of file MSEdge.cpp.

References myDict.

Referenced by TraCIServerAPI_Edge::processGet(), and unlock().

bool MSEdge::insertVehicle ( SUMOVehicle v,
SUMOTime  time,
const bool  checkOnly = 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
Returns
Whether the vehicle could be inserted
See also
MSLane::insertVehicle

Definition at line 473 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, MSInsertionControl::descheduleDeparture(), EDGEFUNCTION_DISTRICT, MSGlobals::gCheckRoutes, MSLane::getBruttoOccupancy(), getDepartLane(), SUMOVehicle::getEdge(), Named::getID(), SUMOVehicle::getID(), MSNet::getInsertionControl(), MSNet::getInstance(), getLength(), MSVehicleType::getLengthWithGap(), MESegment::getNextSegment(), SUMOVehicle::getParameter(), getPurpose(), MELoop::getSegmentForEdge(), MSVehicleType::getSpeedDeviation(), MSVehicleType::getSpeedFactor(), getSpeedLimit(), getVehicleMaxSpeed(), SUMOVehicle::getVehicleType(), MSGlobals::gMesoNet, MSGlobals::gUseMesoSim, MESegment::hasSpaceFor(), SUMOVehicle::hasValidRoute(), SUMOVehicleParameter::id, MESegment::initialise(), MSLane::insertVehicle(), isVaporizing(), myLanes, myLength, RandHelper::rand(), SUMOVehicle::setChosenSpeedFactor(), SUMOReal, toString(), and WRITE_WARNING.

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

bool MSEdge::isRoundabout ( ) const
inline

Definition at line 632 of file MSEdge.h.

References myAmRoundabout.

Referenced by MSVehicle::checkRewindLinkLanes(), and MSVehicle::executeMove().

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 402 of file MSEdge.h.

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

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

bool Parameterised::knowsParameter ( const std::string &  key) const
inherited

Returns whether the parameter is known.

Parameters
[in]keyThe key to ask for
Returns
Whether the key is known

Definition at line 75 of file Parameterised.cpp.

References Parameterised::myMap.

Referenced by MSDevice_Example::buildVehicleDevices(), and MSDevice::equippedByDefaultAssignmentOptions().

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 274 of file MSEdge.cpp.

References parallelLane().

virtual void MSEdge::lock ( ) const
inlinevirtual

grant exclusive access to the mesoscopic state

Reimplemented in GUIEdge.

Definition at line 655 of file MSEdge.h.

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

void MSEdge::markAsRoundabout ( )
inline

Definition at line 636 of file MSEdge.h.

References myAmRoundabout.

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

void MSEdge::markDelayed ( ) const
inline
MSEdge& MSEdge::operator= ( const MSEdge )
private

assignment operator.

MSLane * MSEdge::parallelLane ( const MSLane *const  lane,
int  offset 
) 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
Todo:
This method searches for the given in the container; probably, this could be done faster

Definition at line 286 of file MSEdge.cpp.

References myLanes.

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

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 722 of file MSEdge.cpp.

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

Referenced by MSStateHandler::myStartElement(), MSRouteHandler::myStartElement(), MSRouteHandler::openRoute(), MSRouteHandler::parseFromViaTo(), TraCIServerAPI_Vehicle::processSet(), and unlock().

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 737 of file MSEdge.cpp.

References dictionary(), and SUMOReal.

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

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

Definition at line 548 of file MSEdge.h.

References MSVehicleType::getVehicleClass(), SUMOVehicle::getVehicleType(), and myCombinedPermissions.

virtual void MSEdge::removeContainer ( MSTransportable container) const
inlinevirtual
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 280 of file MSEdge.cpp.

References parallelLane().

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

Sets the crossed edge ids for a crossing edge.

Definition at line 298 of file MSEdge.h.

References myCrossingEdges.

Referenced by NLEdgeControlBuilder::addCrossingEdges().

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

resets the id

Parameters
[in]newIDThe new id of this object

Definition at line 74 of file Named.h.

References Named::myID.

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

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

Definition at line 388 of file MSEdge.h.

References myFromJunction, and myToJunction.

Referenced by NLHandler::myEndElement().

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 532 of file MSEdge.h.

References changeLanes(), and myLastFailedInsertionTime.

void MSEdge::setMaxSpeed ( SUMOReal  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 776 of file MSEdge.cpp.

References myLanes.

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

virtual void MSEdge::unlock ( ) const
inlinevirtual

release exclusive access to the mesoscopic state

Reimplemented in GUIEdge.

Definition at line 658 of file MSEdge.h.

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

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

Field Documentation

AllowedLanesCont MSEdge::myAllowed
protected

Associative container from destination-edge to allowed-lanes.

Definition at line 797 of file MSEdge.h.

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

bool MSEdge::myAmDelayed
mutableprotected

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

Definition at line 828 of file MSEdge.h.

Referenced by getCurrentTravelTime(), and markDelayed().

bool MSEdge::myAmRoundabout
protected

whether this edge belongs to a roundabout

Definition at line 831 of file MSEdge.h.

Referenced by isRoundabout(), and markAsRoundabout().

ClassedAllowedLanesCont MSEdge::myClassedAllowed
mutableprotected

From vehicle class to lanes allowed to be used by it.

Definition at line 801 of file MSEdge.h.

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

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

The successors available for a given vClass.

Definition at line 855 of file MSEdge.h.

Referenced by getSuccessors(), and rebuildAllowedLanes().

SVCPermissions MSEdge::myCombinedPermissions
protected

The union of lane permissions for this edge.

Definition at line 806 of file MSEdge.h.

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

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

Containers on the edge.

Definition at line 791 of file MSEdge.h.

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

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 775 of file MSEdge.h.

Referenced by getCrossingEdges(), and setCrossingEdges().

MSEdge::DictType MSEdge::myDict
staticprotected

Static dictionary to associate string-ids with objects.

Deprecated:
Move to MSEdgeControl, make non-static

Definition at line 845 of file MSEdge.h.

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

MSEdgeVector MSEdge::myEdges
staticprotected

Static list of edges.

Deprecated:
Move to MSEdgeControl, make non-static

Definition at line 850 of file MSEdge.h.

Referenced by dictionary(), and getAllEdges().

std::string MSEdge::myEdgeType
protected

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

Definition at line 813 of file MSEdge.h.

Referenced by getEdgeType().

SUMOReal MSEdge::myEmptyTraveltime
protected

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

Definition at line 825 of file MSEdge.h.

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

MSJunction* MSEdge::myFromJunction
protected

the junctions for this edge

Definition at line 784 of file MSEdge.h.

Referenced by getFromJunction(), and setJunctions().

const EdgeBasicFunction MSEdge::myFunction
protected
MSLaneChanger* MSEdge::myLaneChanger
protected

This member will do the lane-change.

Definition at line 763 of file MSEdge.h.

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

SUMOTime MSEdge::myLastFailedInsertionTime
mutableprotected

The time of last insertion failure.

Definition at line 772 of file MSEdge.h.

Referenced by getLastFailedInsertionTime(), and setLastFailedInsertionTime().

SUMOReal MSEdge::myLength
protected

the length of the edge (cached value for speedup)

Definition at line 822 of file MSEdge.h.

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

SVCPermissions MSEdge::myMinimumPermissions
protected

The intersection of lane permissions for this edge.

Definition at line 804 of file MSEdge.h.

Referenced by allowedLanes(), and rebuildAllowedLanes().

const int MSEdge::myNumericalID
protected

This edge's numerical id.

Definition at line 757 of file MSEdge.h.

Referenced by getNumericalID().

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

Persons on the edge for drawing and pushbutton.

Definition at line 788 of file MSEdge.h.

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

MSEdgeVector MSEdge::myPredecessors
protected

The preceeding edges.

Definition at line 781 of file MSEdge.h.

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

const int MSEdge::myPriority
protected

the priority of the edge (used during network creation)

Definition at line 816 of file MSEdge.h.

Referenced by getPriority().

std::string MSEdge::myStreetName
protected

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

Definition at line 810 of file MSEdge.h.

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

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

the right side for each sublane on this edge

Definition at line 834 of file MSEdge.h.

Referenced by getSubLaneSides(), and initialize().

MSEdgeVector MSEdge::mySuccessors
protected

The succeeding edges.

Definition at line 778 of file MSEdge.h.

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

MSJunction* MSEdge::myToJunction
protected

Definition at line 785 of file MSEdge.h.

Referenced by getToJunction(), and setJunctions().

int MSEdge::myVaporizationRequests
protected

Vaporizer counter.

Definition at line 769 of file MSEdge.h.

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

SUMOReal MSEdge::myWidth
protected

Edge width [m].

Definition at line 819 of file MSEdge.h.

Referenced by getWidth(), and initialize().


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