SUMO - Simulation of Urban MObility
|
A road/street connecting two junctions. More...
#include <MSEdge.h>
Data Structures | |
class | by_id_sorter |
Sorts edges by their ids. More... |
Public Types | |
typedef std::map< const MSEdge *, std::vector< MSLane * > * > | AllowedLanesCont |
Suceeding edges (keys) and allowed lanes to reach these edges (values). | |
typedef std::map < SUMOVehicleClass, AllowedLanesCont > | ClassedAllowedLanesCont |
Map from vehicle types to lanes that may be used to reach one of the next edges. | |
enum | EdgeBasicFunction { EDGEFUNCTION_UNKNOWN = -1, EDGEFUNCTION_NORMAL = 0, EDGEFUNCTION_CONNECTOR = 1, EDGEFUNCTION_INTERNAL = 2, EDGEFUNCTION_DISTRICT = 3 } |
Defines possible edge types. More... |
Public Member Functions | |
void | addParameter (const std::string &key, const std::string &value) |
Adds a parameter. | |
void | addParameter (const std::map< std::string, std::string > &mapArg) |
Adds all given parameter. | |
void | addParameter (const Parameterised &p) |
Adds all given parameter. | |
virtual void | addPerson (MSPerson *p) const |
void | addTo (const StoringVisitor &cont) const |
Adds this object to the given container. | |
virtual void | changeLanes (SUMOTime t) |
Performs lane changing on this edge. | |
void | clearParameter () |
Clears the parameter map. | |
void | closeBuilding () |
SUMOReal | getCurrentTravelTime (const SUMOReal minSpeed=0.00001) const |
Computes and returns the current travel time for this edge. | |
SUMOReal | getDistanceTo (const MSEdge *other) const |
optimistic air distance heuristic for use in routing | |
const std::string & | getID () const |
Returns the id. | |
SUMOReal | getLength () const |
return the length of the edge | |
const std::map< std::string, std::string > & | getMap () const |
Returns the inner key/value map. | |
SUMOReal | getMinimumTravelTime (const SUMOVehicle *const veh) const |
returns the minimum travel time for the given vehicle | |
const std::string & | getParameter (const std::string &key, const std::string &defaultValue) const |
Returns the value for a given key. | |
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. | |
SUMOReal | getVehicleMaxSpeed (const SUMOVehicle *const veh) const |
Returns the maximum speed the vehicle may use on this edge. | |
void | initialize (std::vector< MSLane * > *lanes) |
Initialize the edge. | |
bool | knowsParameter (const std::string &key) const |
Returns whether the parameter is known. | |
MSEdge (const std::string &id, int numericalID, const EdgeBasicFunction function, const std::string &streetName="") | |
Constructor. | |
bool | prohibits (const SUMOVehicle *const vehicle) const |
Returns whether the vehicle (class) is not allowed on the edge. | |
void | rebuildAllowedLanes () |
virtual void | removePerson (MSPerson *p) const |
void | setID (const std::string &newID) |
resets the id | |
virtual | ~MSEdge () |
Destructor. | |
Access to the edge's lanes | |
MSLane * | leftLane (const MSLane *const lane) const |
Returns the lane left to the one given, 0 if the given lane is leftmost. | |
MSLane * | rightLane (const MSLane *const lane) const |
Returns the lane right to the one given, 0 if the given lane is rightmost. | |
const std::vector< MSLane * > & | getLanes () const |
Returns this edge's lanes. | |
const std::vector< MSLane * > * | allowedLanes (const MSEdge &destination, SUMOVehicleClass vclass=SVC_UNKNOWN) const |
Get the allowed lanes to reach the destination-edge. | |
const std::vector< MSLane * > * | allowedLanes (SUMOVehicleClass vclass=SVC_UNKNOWN) const |
Get the allowed lanes for the given vehicle class. | |
Access to other edge attributes | |
EdgeBasicFunction | getPurpose () const |
Returns the edge type (EdgeBasicFunction) | |
int | getNumericalID () const |
Returns the numerical id of the edge. | |
const std::string & | getStreetName () const |
Returns the street name of the edge. | |
Access to succeeding/predecessing edges | |
void | addFollower (MSEdge *edge) |
Returns the list of edges which may be reached from this edge. | |
const std::vector< MSEdge * > & | getIncomingEdges () const |
Returns the list of edges from which this edge may be reached. | |
unsigned int | getNoFollowing () const |
Returns the number of edges that may be reached from this edge. | |
const MSEdge * | getFollower (unsigned int n) const |
Returns the n-th of the following edges. | |
Access to vaporizing interface | |
bool | isVaporizing () const |
Returns whether vehicles on this edge shall be vaporized. | |
SUMOTime | incVaporization (SUMOTime t) |
Enables vaporization. | |
SUMOTime | decVaporization (SUMOTime t) |
Disables vaporization. | |
Methods releated to vehicle insertion | |
bool | insertVehicle (SUMOVehicle &v, SUMOTime time) const |
Tries to insert the given vehicle into the network. | |
MSLane * | getFreeLane (const std::vector< MSLane * > *allowed, const SUMOVehicleClass vclass) const |
Finds the emptiest lane allowing the vehicle class. | |
MSLane * | getDepartLane (const MSVehicle &veh) const |
Finds a depart lane for the given vehicle parameters. | |
SUMOTime | getLastFailedInsertionTime () const |
Returns the last time a vehicle could not be inserted. | |
void | setLastFailedInsertionTime (SUMOTime time) const |
Sets the last time a vehicle could not be inserted. |
Static Public Member Functions | |
static void | clear () |
Clears the dictionary. | |
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. | |
static MSEdge * | dictionary (const std::string &id) |
Returns the MSEdge associated to the key id if exists, otherwise returns 0. | |
static MSEdge * | dictionary (size_t index) |
Returns the MSEdge at the index. | |
static size_t | dictSize () |
Returns the number of edges. | |
static void | insertIDs (std::vector< std::string > &into) |
Inserts IDs of all known edges into the given vector. | |
static size_t | numericalDictSize () |
Returns the number of edges with a numerical id. | |
Static parser helper | |
static void | parseEdgesList (const std::string &desc, std::vector< const MSEdge * > &into, const std::string &rid) |
Parses the given string assuming it contains a list of edge ids divided by spaces. | |
static void | parseEdgesList (const std::vector< std::string > &desc, std::vector< const MSEdge * > &into, const std::string &rid) |
Parses the given string vector assuming it edge ids. |
Protected Member Functions | |
const std::vector< MSLane * > * | allowedLanes (const MSEdge *destination, SUMOVehicleClass vclass=SVC_UNKNOWN) const |
Get the allowed lanes to reach the destination-edge. | |
const std::vector< MSLane * > * | getAllowedLanesWithDefault (const AllowedLanesCont &c, const MSEdge *dest) const |
lookup in map and return 0 if not found |
Protected Attributes | |
const EdgeBasicFunction | myFunction |
the purpose of the edge | |
std::string | myID |
The name of the object. | |
MSLaneChanger * | myLaneChanger |
This member will do the lane-change. | |
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. | |
SUMOTime | myLastFailedInsertionTime |
The time of last insertion failure. | |
int | myNumericalID |
This edge's numerical id. | |
std::set< MSPerson * > | myPersons |
Persons on the edge (only for drawing) | |
std::vector< MSEdge * > | myPredeccesors |
The preceeding edges. | |
std::vector< MSEdge * > | mySuccessors |
The succeeding edges. | |
int | myVaporizationRequests |
Vaporizer counter. | |
Storages for allowed lanes (depending on vehicle classes) | |
AllowedLanesCont | myAllowed |
Associative container from destination-edge to allowed-lanes. | |
ClassedAllowedLanesCont | myClassedAllowed |
From vehicle class to lanes allowed to be used by it. | |
SVCPermissions | myMinimumPermissions |
The intersection of lane permissions for this edge. | |
SVCPermissions | myCombinedPermissions |
The union of lane permissions for this edge. | |
std::string | myStreetName |
Private Member Functions | |
MSEdge (const MSEdge &) | |
Invalidated copy constructor. | |
MSEdge & | operator= (const MSEdge &) |
assignment operator. |
Static edge container | |
typedef std::map< std::string, MSEdge * > | DictType |
definition of the static dictionary type | |
static DictType | myDict |
Static dictionary to associate string-ids with objects. | |
static std::vector< MSEdge * > | myEdges |
Static list of edges. |
A road/street connecting two junctions.
A single connection between two junctions. Holds lanes which are reponsible for vehicle movements.
typedef std::map< const MSEdge*, std::vector<MSLane*>* > MSEdge::AllowedLanesCont |
typedef std::map< SUMOVehicleClass, AllowedLanesCont > MSEdge::ClassedAllowedLanesCont |
|
protected |
Defines possible edge types.
For different purposes, it is necessary to know whether the edge is a normal street or something special.
MSEdge::MSEdge | ( | const std::string & | id, |
int | numericalID, | ||
const EdgeBasicFunction | function, | ||
const std::string & | streetName = "" |
||
) |
Constructor.
After calling this constructor, the edge is not yet initialised completely. A call to "initialize" with proper values is needed for this.
[in] | id | The id of the edge |
[in] | numericalID | The numerical id (index) of the edge |
[in] | function | A basic type of the edge |
[in] | streetName | The street name for that edge |
Definition at line 70 of file MSEdge.cpp.
|
virtual |
Destructor.
Definition at line 78 of file MSEdge.cpp.
References myAllowed, myClassedAllowed, myLaneChanger, and myLanes.
|
private |
Invalidated copy constructor.
|
inline |
Returns the list of edges which may be reached from this edge.
Definition at line 223 of file MSEdge.h.
References mySuccessors.
Referenced by NLHandler::addDistrict().
|
inherited |
Adds a parameter.
[in] | key | The parameter's name |
[in] | value | The parameter's value |
Definition at line 53 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NLHandler::addParam(), PCLoaderOSM::addPOI(), PCLoaderOSM::addPolygon(), and NIImporter_MATSim::EdgesHandler::myStartElement().
|
inherited |
Adds all given parameter.
[in] | mapArg | The keys/values to insert |
Definition at line 59 of file Parameterised.cpp.
References Parameterised::myMap.
|
inherited |
Adds all given parameter.
[in] | p | The keys/values to insert |
Definition at line 67 of file Parameterised.cpp.
References Parameterised::myMap.
|
inlinevirtual |
Definition at line 427 of file MSEdge.h.
References myPersons.
Referenced by MSPerson::MSPersonStage_Driving::proceed(), and MSPerson::MSPersonStage_Waiting::proceed().
|
inlineinherited |
Adds this object to the given container.
in,filled] | cont The container to add this item to |
Definition at line 114 of file Named.h.
References Named::StoringVisitor::add().
const std::vector< MSLane * > * MSEdge::allowedLanes | ( | const MSEdge & | destination, |
SUMOVehicleClass | vclass = SVC_UNKNOWN |
||
) | 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.
[in] | destination | The edge to reach |
[in] | vclass | The vehicle class for which this information shall be returned |
Definition at line 185 of file MSEdge.cpp.
Referenced by allowedLanes(), MSVehicleTransfer::checkInsertions(), MSVehicle::getBestLanes(), getDepartLane(), getFreeLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), and MSLane::by_connections_to_sorter::operator()().
const std::vector< MSLane * > * MSEdge::allowedLanes | ( | SUMOVehicleClass | vclass = SVC_UNKNOWN | ) | 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.
[in] | vclass | The vehicle class for which this information shall be returned |
Definition at line 191 of file MSEdge.cpp.
References allowedLanes().
|
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.
[in] | destination | The edge to reach |
[in] | vclass | The vehicle class for which this information shall be returned |
Definition at line 207 of file MSEdge.cpp.
References getAllowedLanesWithDefault(), myAllowed, myClassedAllowed, and myMinimumPermissions.
|
virtual |
Performs lane changing on this edge.
Definition at line 377 of file MSEdge.cpp.
References EDGEFUNCTION_INTERNAL, MSLaneChanger::laneChange(), myFunction, and myLaneChanger.
Referenced by MSEdgeControl::changeLanes().
|
static |
Clears the dictionary.
Definition at line 487 of file MSEdge.cpp.
References myDict.
Referenced by MSNet::clearAll().
|
inherited |
Clears the parameter map.
Definition at line 91 of file Parameterised.cpp.
References Parameterised::myMap.
void MSEdge::closeBuilding | ( | ) |
Definition at line 107 of file MSEdge.cpp.
References MSLane::getEdge(), myAllowed, myLanes, myPredeccesors, mySuccessors, and rebuildAllowedLanes().
Disables vaporization.
The internal vaporization counter is decreased what disables the vaporization if it was only once enabled. Called from the event handler.
[in] | t | The current time (unused) |
ProcessError | not thrown by this method, just derived |
Definition at line 253 of file MSEdge.cpp.
References myVaporizationRequests.
Referenced by NLTriggerBuilder::buildVaporizer().
Inserts edge into the static dictionary Returns true if the key id isn't already in the dictionary. Otherwise returns false.
Definition at line 439 of file MSEdge.cpp.
References getNumericalID(), myDict, and myEdges.
Referenced by NLHandler::addConnection(), NLHandler::addDistrict(), NLHandler::addDistrictEdge(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeEffort::addEdgeWeight(), NLBuilder::EdgeFloatTimeLineRetriever_EdgeTravelTime::addEdgeWeight(), NLEdgeControlBuilder::beginEdgeParsing(), NLTriggerBuilder::buildVaporizer(), MSDevice_Routing::buildVehicleDevices(), NLHandler::closeEdge(), TraCIServerAPI_Simulation::convertCartesianToRoadMap(), NLDetectorBuilder::getEdgeChecking(), TraCIServerAPI_Simulation::getLaneChecking(), TraCIServerAPI_Edge::getShape(), MSRouteHandler::myStartElement(), MSTriggeredRerouter::myStartElement(), NLTriggerBuilder::parseAndBuildRerouter(), parseEdgesList(), MSDevice_Routing::preInsertionReroute(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_Vehicle::processSet(), MSBaseVehicle::reroute(), and TraCIServerAPI_Vehicle::vtdMap_matchingNearest().
|
static |
Returns the MSEdge associated to the key id if exists, otherwise returns 0.
Definition at line 457 of file MSEdge.cpp.
References myDict.
|
static |
|
static |
Returns the number of edges.
Definition at line 475 of file MSEdge.cpp.
References myDict.
Referenced by GUIEdge::fill().
|
protected |
lookup in map and return 0 if not found
Definition at line 197 of file MSEdge.cpp.
Referenced by allowedLanes().
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 inifinte travel times, the given minimum speed is used.
[in] | minSpeed | The minimumSpeed to assume if traffic on this edge is stopped |
Definition at line 411 of file MSEdge.cpp.
References getLength(), MSGlobals::gUseMesoSim, MAX2(), myLanes, and SUMOReal.
Referenced by MSVehicleTransfer::addVeh(), MSVehicleTransfer::checkInsertions(), TraCIServerAPI_Edge::processGet(), and MSFullExport::writeEdge().
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.
[in] | veh | The vehicle to get the depart lane for |
Definition at line 279 of file MSEdge.cpp.
References allowedLanes(), MSRoute::begin(), DEPART_LANE_ALLOWED_FREE, DEPART_LANE_BEST_FREE, DEPART_LANE_DEFAULT, 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(), and SUMOReal.
Referenced by insertVehicle().
optimistic air distance heuristic for use in routing
[in] | other | The edge to which the distance shall be returned |
Definition at line 534 of file MSEdge.cpp.
References getLanes().
Returns the n-th of the following edges.
[in] | n | The index within following edges of the edge to return |
Definition at line 247 of file MSEdge.h.
References mySuccessors.
Referenced by MSRouteHandler::myStartElement().
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.
[in] | allowed | The lanes to choose from |
[in] | vclass | The vehicle class to look for |
Definition at line 260 of file MSEdge.cpp.
References allowedLanes(), and MSLane::getVehicleNumber().
Referenced by MSVehicleTransfer::checkInsertions(), and getDepartLane().
|
inlineinherited |
Returns the id.
Reimplemented in MS_E2_ZS_CollectorOverLanes.
Definition at line 60 of file Named.h.
References Named::myID.
Referenced by Named::StoringVisitor::add(), MSDetectorControl::add(), RORouteDef::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), MSPerson::MSPersonStage_Driving::beginEventOutput(), MSPerson::MSPersonStage_Waiting::beginEventOutput(), NIVisumTL::build(), RODFNet::buildApproachList(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSVehicleTransfer::checkInsertions(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), NBEdge::connections_sorter(), NLDetectorBuilder::convUncontE2PosLength(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSPerson::MSPersonStage_Driving::endEventOutput(), MSPerson::MSPersonStage_Waiting::endEventOutput(), MSE3Collector::enter(), MSCalibrator::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), AGStreet::getName(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBEdgeCont::ignoreFilterMatch(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), NBRampsComputer::moveRampRight(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), MSVehicle::MSVehicle(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Person::notifyLeave(), RORouteHandler::openRoute(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), RODFNet::idComp::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_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(), NBLoadedTLDef::SignalGroup::patchTYellow(), AGStreet::print(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Vehicle::processSet(), NWWriter_SUMO::prohibitionConnection(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), NIXMLConnectionsHandler::validateLaneInfo(), TraCIServerAPI_Vehicle::vtdMap_matchingEdgeLane(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), NBSign::writeAsPOI(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), MSInductLoop::writeTypedXMLOutput(), MSFullExport::writeVehicles(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
|
inline |
Returns the list of edges from which this edge may be reached.
Definition at line 231 of file MSEdge.h.
References myPredeccesors.
Referenced by MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), and MSLane::getLogicalPredecessorLane().
|
inline |
Returns this edge's lanes.
Definition at line 159 of file MSEdge.h.
References myLanes.
Referenced by NLHandler::addConnection(), MSVehicleTransfer::addVeh(), MSBaseVehicle::calculateArrivalPos(), MSEdgeControl::changeLanes(), MSVehicle::Influencer::checkForLaneChanges(), MSVehicleTransfer::checkInsertions(), MSPerson::MSPersonStage_Walking::computeWalkingTime(), MSCalibrator::execute(), MS_E2_ZS_CollectorOverLanes::extendTo(), MSVehicle::getBestLanes(), getDistanceTo(), MSPerson::MSPersonStage::getEdgeAngle(), GUILaneWrapper::getEdgeLaneNumber(), MSPerson::MSPersonStage::getEdgePosition(), TraCIServerAPI_Simulation::getLaneChecking(), getLength(), GUIEdge::getPopUpMenu(), GUIVehicle::getPreviousLane(), TraCIServerAPI_Edge::getShape(), getSpeedLimit(), getVehicleMaxSpeed(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), MSCalibrator::init(), GUINet::initGUIStructures(), MSCalibrator::invalidJam(), GUISUMOViewParent::isSelected(), MSRouteProbe::MSRouteProbe(), MSLCM_DK2004::patchSpeed(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Vehicle::processSet(), MSCalibrator::remainingVehicleCapacity(), TraCIServerAPI_Vehicle::vtdMap_matchingNearest(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSQueueExport::writeEdge(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), and MSMeanData::writeEdge().
|
inline |
Returns the last time a vehicle could not be inserted.
Definition at line 363 of file MSEdge.h.
References myLastFailedInsertionTime.
SUMOReal MSEdge::getLength | ( | ) | const |
return the length of the edge
Definition at line 544 of file MSEdge.cpp.
References getLanes().
Referenced by MSVehicle::getBestLanes(), getCurrentTravelTime(), MSPerson::MSPersonStage_Driving::getEdgePos(), getMinimumTravelTime(), GUIEdge::getParameterWindow(), MSCalibrator::init(), insertVehicle(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), MSCalibrator::remainingVehicleCapacity(), and MSMeanData::writeEdge().
|
inlineinherited |
Returns the inner key/value map.
Definition at line 106 of file Parameterised.h.
References Parameterised::myMap.
Referenced by PCPolyContainer::save().
|
inline |
returns the minimum travel time for the given vehicle
Definition at line 302 of file MSEdge.h.
References getLength(), SUMOVehicle::getMaxSpeed(), getSpeedLimit(), getVehicleMaxSpeed(), and MIN2().
Referenced by MSDevice_Routing::getEffort(), and MSNet::getTravelTime().
|
inline |
Returns the number of edges that may be reached from this edge.
Definition at line 239 of file MSEdge.h.
References mySuccessors.
Referenced by MSRouteHandler::myStartElement().
|
inline |
Returns the numerical id of the edge.
Definition at line 203 of file MSEdge.h.
References myNumericalID.
Referenced by MSEdgeControl::changeLanes(), and dictionary().
|
inherited |
Returns the value for a given key.
[in] | key | The key to ask for |
[in] | defaultValue | The default value to return if no value is stored under the key |
Definition at line 81 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by TraCIServerAPI_Vehicle::vtdMap_matchingNearest().
|
inline |
Returns the edge type (EdgeBasicFunction)
Definition at line 195 of file MSEdge.h.
References myFunction.
Referenced by GUIEdgeControlBuilder::addLane(), NLEdgeControlBuilder::addLane(), MSLane::appropriate(), MSVehicle::checkRewindLinkLanes(), GUILaneWrapper::drawGL(), MSVehicle::enterLaneAtMove(), MSVehicle::getBestLanes(), GUIEdge::getIDs(), GUIVehicle::getPreviousLane(), MSLane::succLinkSec(), TraCIServerAPI_Vehicle::vtdMap_matchingEdgeLane(), TraCIServerAPI_Vehicle::vtdMap_matchingNearest(), and TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition().
SUMOReal MSEdge::getSpeedLimit | ( | ) | const |
Returns the speed limit of the edge The speed limit of the first lane is retured; should probably be the fastest edge.
Definition at line 550 of file MSEdge.cpp.
References getLanes().
Referenced by getMinimumTravelTime(), MSCalibrator::invalidJam(), MSCalibrator::remainingVehicleCapacity(), and MSMeanData::writeEdge().
|
inline |
Returns the street name of the edge.
Definition at line 210 of file MSEdge.h.
References myStreetName.
Referenced by GUIEdge::drawGL(), and GUILaneWrapper::getParameterWindow().
SUMOReal MSEdge::getVehicleMaxSpeed | ( | const SUMOVehicle *const | veh | ) | const |
Returns the maximum speed the vehicle may use on this edge.
Note that the vehicle's max. speed is not considered herein, only the edge's speed limit and the driver's adaptation of this speed. Only the first lane is considered
Definition at line 557 of file MSEdge.cpp.
References getLanes().
Referenced by getMinimumTravelTime().
Enables vaporization.
The internal vaporization counter is increased enabling the vaporization. Called from the event handler.
[in] | t | The current time (unused) |
ProcessError | not thrown by this method, just derived |
Definition at line 246 of file MSEdge.cpp.
References myVaporizationRequests.
Referenced by NLTriggerBuilder::buildVaporizer().
void MSEdge::initialize | ( | std::vector< MSLane * > * | lanes | ) |
Initialize the edge.
[in] | allowed | Information which edges may be reached from which lanes |
[in] | lanes | List of this edge's lanes |
Definition at line 94 of file MSEdge.cpp.
References EDGEFUNCTION_DISTRICT, EDGEFUNCTION_INTERNAL, OptionsCont::getOptions(), myCombinedPermissions, myFunction, myLaneChanger, myLanes, and SVCFreeForAll.
Referenced by NLHandler::addDistrict(), and NLEdgeControlBuilder::closeEdge().
|
static |
Inserts IDs of all known edges into the given vector.
Definition at line 496 of file MSEdge.cpp.
References myDict.
Referenced by TraCIServerAPI_Edge::processGet().
bool MSEdge::insertVehicle | ( | SUMOVehicle & | v, |
SUMOTime | time | ||
) | 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.
[in] | v | The vehicle to insert |
[in] | time | The current simulation time |
Definition at line 326 of file MSEdge.cpp.
References DEPART_POS_FREE, DEPART_POS_GIVEN, DEPART_POS_RANDOM, DEPART_POS_RANDOM_FREE, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosProcedure, getDepartLane(), SUMOVehicle::getID(), getLength(), SUMOVehicle::getParameter(), MSGlobals::gUseMesoSim, MSLane::insertVehicle(), isVaporizing(), RandHelper::rand(), SUMOReal, toString(), UNUSED_PARAMETER, and WRITE_WARNING.
Referenced by MSCalibrator::execute().
|
inline |
Returns whether vehicles on this edge shall be vaporized.
Definition at line 260 of file MSEdge.h.
References myVaporizationRequests.
Referenced by MSVehicle::executeMove(), MSLane::executeMovements(), and insertVehicle().
|
inherited |
Returns whether the parameter is known.
[in] | key | The key to ask for |
Definition at line 75 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by TraCIServerAPI_Vehicle::vtdMap_matchingNearest().
Returns the lane left to the one given, 0 if the given lane is leftmost.
[in] | lane | The lane right to the one to be returned |
Definition at line 165 of file MSEdge.cpp.
References myLanes.
Referenced by MSLane::getLeftLane().
|
static |
Returns the number of edges with a numerical id.
Definition at line 481 of file MSEdge.cpp.
References myEdges.
Referenced by MSDevice_Routing::getRouter(), MSNet::getRouterEffort(), and MSNet::getRouterTT().
|
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.
[in] | desc | The string containing space-separated edge ids |
[out] | into | The vector to fill |
[in] | rid | The id of the route these description belongs to; used for error message generation |
ProcessError | If one of the strings contained is not a known edge id |
Definition at line 504 of file MSEdge.cpp.
References BinaryFormatter::BF_ROUTE, StringTokenizer::getVector(), and FileHelpers::readEdgeVector().
Referenced by MSRouteHandler::myStartElement(), MSRouteHandler::openRoute(), and TraCIServerAPI_Vehicle::processSet().
|
static |
Parses the given string vector assuming it edge ids.
[in] | desc | The string vector containing edge ids |
[out] | into | The vector to fill |
[in] | rid | The id of the route these description belongs to; used for error message generation |
ProcessError | If one of the strings contained is not a known edge id |
Definition at line 519 of file MSEdge.cpp.
References dictionary().
|
inline |
Returns whether the vehicle (class) is not allowed on the edge.
Definition at line 387 of file MSEdge.h.
References MSVehicleType::getVehicleClass(), SUMOVehicle::getVehicleType(), and myCombinedPermissions.
void MSEdge::rebuildAllowedLanes | ( | ) |
Definition at line 144 of file MSEdge.cpp.
References myClassedAllowed, myCombinedPermissions, myLanes, myMinimumPermissions, and SVCFreeForAll.
Referenced by closeBuilding(), TraCIServerAPI_Edge::processSet(), and TraCIServerAPI_Lane::processSet().
|
inlinevirtual |
Definition at line 431 of file MSEdge.h.
References myPersons.
Referenced by MSPersonControl::abortWaiting(), MSPersonControl::boardAnyWaiting(), MSPerson::MSPersonStage_Walking::proceed(), MSPerson::MSPersonStage_Driving::proceed(), and MSPerson::proceed().
Returns the lane right to the one given, 0 if the given lane is rightmost.
[in] | lane | The lane left to the one to be returned |
Definition at line 175 of file MSEdge.cpp.
References myLanes.
Referenced by MSLane::getRightLane().
|
inlineinherited |
resets the id
[in] | newID | The new id of this object |
Definition at line 68 of file Named.h.
References Named::myID.
Referenced by NBNodeCont::rename(), and NBEdgeCont::rename().
|
inline |
Sets the last time a vehicle could not be inserted.
[in] | time | the new value |
Definition at line 371 of file MSEdge.h.
References myLastFailedInsertionTime.
|
protected |
Associative container from destination-edge to allowed-lanes.
Definition at line 554 of file MSEdge.h.
Referenced by allowedLanes(), closeBuilding(), and ~MSEdge().
|
mutableprotected |
From vehicle class to lanes allowed to be used by it.
Definition at line 558 of file MSEdge.h.
Referenced by allowedLanes(), rebuildAllowedLanes(), and ~MSEdge().
|
protected |
The union of lane permissions for this edge.
Definition at line 563 of file MSEdge.h.
Referenced by initialize(), prohibits(), and rebuildAllowedLanes().
|
staticprotected |
Static dictionary to associate string-ids with objects.
Definition at line 579 of file MSEdge.h.
Referenced by clear(), dictionary(), dictSize(), GUIEdge::fill(), GUIEdge::getIDs(), and insertIDs().
|
staticprotected |
Static list of edges.
Definition at line 584 of file MSEdge.h.
Referenced by dictionary(), and numericalDictSize().
|
protected |
the purpose of the edge
Definition at line 533 of file MSEdge.h.
Referenced by changeLanes(), GUIEdge::drawGL(), getPurpose(), and initialize().
|
protectedinherited |
The name of the object.
Definition at line 121 of file Named.h.
Referenced by NGEdge::buildNBEdge(), NGNode::buildNBNode(), MSCalibrator::execute(), Named::getID(), NBEdge::getLaneID(), NBEdge::getLaneIDInsecure(), ROEdge::getStoredEffort(), ROEdge::getTravelTime(), MSCalibrator::init(), NBEdge::init(), MSCalibrator::myStartElement(), MSCalibrator::VehicleRemover::notifyEnter(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), RORouteDef::repairCurrentRoute(), Named::setID(), NBEdge::splitGeometry(), MSXMLRawOut::writeLane(), NBNode::writeLogic(), MSCalibrator::writeXMLOutput(), MSE3Collector::writeXMLOutput(), and MSMeanData::writeXMLOutput().
|
protected |
This member will do the lane-change.
Definition at line 530 of file MSEdge.h.
Referenced by changeLanes(), initialize(), and ~MSEdge().
|
protected |
Container for the edge's lane; should be sorted: (right-hand-traffic) the more left the lane, the higher the container-index.
Definition at line 527 of file MSEdge.h.
Referenced by closeBuilding(), getCurrentTravelTime(), getDepartLane(), getLanes(), GUIEdge::getParameterWindow(), GUIEdge::initGeometry(), initialize(), leftLane(), rebuildAllowedLanes(), rightLane(), and ~MSEdge().
|
mutableprotected |
The time of last insertion failure.
Definition at line 539 of file MSEdge.h.
Referenced by getLastFailedInsertionTime(), and setLastFailedInsertionTime().
|
protected |
The intersection of lane permissions for this edge.
Definition at line 561 of file MSEdge.h.
Referenced by allowedLanes(), and rebuildAllowedLanes().
|
protected |
|
mutableprotected |
Persons on the edge (only for drawing)
Definition at line 548 of file MSEdge.h.
Referenced by addPerson(), GUIEdge::drawGL(), and removePerson().
|
protected |
The preceeding edges.
Definition at line 545 of file MSEdge.h.
Referenced by closeBuilding(), and getIncomingEdges().
|
protected |
Definition at line 565 of file MSEdge.h.
Referenced by GUIEdge::drawGL(), and getStreetName().
|
protected |
The succeeding edges.
Definition at line 542 of file MSEdge.h.
Referenced by addFollower(), closeBuilding(), getFollower(), and getNoFollowing().
|
protected |
Vaporizer counter.
Definition at line 536 of file MSEdge.h.
Referenced by decVaporization(), incVaporization(), and isVaporizing().