SUMO - Simulation of Urban MObility
|
A lane area vehicles can halt at. More...
#include <MSBusStop.h>
Public Member Functions | |
void | addPerson (MSPerson *p) |
void | addTo (const StoringVisitor &cont) const |
Adds this object to the given container. More... | |
void | enter (SUMOVehicle *what, SUMOReal beg, SUMOReal end) |
Called if a vehicle enters this stop. More... | |
SUMOReal | getBeginLanePosition () const |
Returns the begin position of this bus stop. More... | |
SUMOReal | getEndLanePosition () const |
Returns the end position of this bus stop. More... | |
const std::string & | getID () const |
Returns the id. More... | |
const MSLane & | getLane () const |
Returns the lane this bus stop is located at. More... | |
SUMOReal | getLastFreePos (const SUMOVehicle &forVehicle) const |
Returns the last free position on this stop. More... | |
unsigned int | getPersonNumber () const |
Returns the number of persons waiting on this stop. More... | |
void | leaveFrom (SUMOVehicle *what) |
Called if a vehicle leaves this stop. More... | |
MSBusStop (const std::string &id, const std::vector< std::string > &lines, MSLane &lane, SUMOReal begPos, SUMOReal endPos) | |
Constructor. More... | |
void | removePerson (MSPerson *p) |
void | setID (const std::string &newID) |
resets the id More... | |
virtual | ~MSBusStop () |
Destructor. More... | |
Protected Member Functions | |
void | computeLastFreePos () |
Computes the last free position on this stop. More... | |
Protected Attributes | |
SUMOReal | myBegPos |
The begin position this bus stop is located at. More... | |
SUMOReal | myEndPos |
The end position this bus stop is located at. More... | |
std::map< SUMOVehicle *, std::pair< SUMOReal, SUMOReal > > | myEndPositions |
A map from objects (vehicles) to the areas they acquire after entering the stop. More... | |
std::string | myID |
The name of the object. More... | |
MSLane & | myLane |
The lane this bus stop is located at. More... | |
SUMOReal | myLastFreePos |
The last free position at this stop (variable) More... | |
std::vector< std::string > | myLines |
The list of lines that are assigned to this stop. More... | |
std::vector< MSPerson * > | myWaitingPersons |
Persons waiting at this stop. More... | |
Private Member Functions | |
MSBusStop (const MSBusStop &) | |
Invalidated copy constructor. More... | |
MSBusStop & | operator= (const MSBusStop &) |
Invalidated assignment operator. More... | |
A lane area vehicles can halt at.
The bus stops tracks the last free space a vehicle may halt at by being informed about a vehicle's entering and depart. It keeps the information about entered vehicles' begin and end position within an internal container ("myEndPositions") and is so able to compute the last free space.
Please note that using the last free space disallows vehicles to enter a free space in between other vehicles.
Definition at line 64 of file MSBusStop.h.
MSBusStop::MSBusStop | ( | const std::string & | id, |
const std::vector< std::string > & | lines, | ||
MSLane & | lane, | ||
SUMOReal | begPos, | ||
SUMOReal | endPos | ||
) |
Constructor.
[in] | id | The id of the bus stop |
[in] | net | The net the bus stop belongs to |
[in] | lines | Names of the bus lines that halt on this bus stop |
[in] | lane | The lane the bus stop is placed on |
[in] | begPos | Begin position of the bus stop on the lane |
[in] | endPos | End position of the bus stop on the lane |
Definition at line 46 of file MSBusStop.cpp.
References computeLastFreePos().
|
virtual |
Destructor.
Definition at line 56 of file MSBusStop.cpp.
|
private |
Invalidated copy constructor.
|
inline |
Definition at line 144 of file MSBusStop.h.
References myWaitingPersons.
|
inlineinherited |
Adds this object to the given container.
in,filled] | cont The container to add this item to |
Definition at line 121 of file Named.h.
References Named::StoringVisitor::add().
|
protected |
Computes the last free position on this stop.
The last free position is the one, the last vehicle ends at. It is stored in myLastFreePos. If no vehicle halts, the last free position gets the value of myEndPos.
Definition at line 102 of file MSBusStop.cpp.
References myEndPos, myEndPositions, and myLastFreePos.
Referenced by enter(), leaveFrom(), and MSBusStop().
void MSBusStop::enter | ( | SUMOVehicle * | what, |
SUMOReal | beg, | ||
SUMOReal | end | ||
) |
Called if a vehicle enters this stop.
Stores the position of the entering vehicle in myEndPositions.
Recomputes the free space using "computeLastFreePos" then.
[in] | what | The vehicle that enters the bus stop |
[in] | beg | The begin halting position of the vehicle |
[in] | what | The end halting position of the vehicle |
Definition at line 78 of file MSBusStop.cpp.
References computeLastFreePos(), and myEndPositions.
Referenced by MSVehicle::processNextStop().
SUMOReal MSBusStop::getBeginLanePosition | ( | ) | const |
Returns the begin position of this bus stop.
Definition at line 66 of file MSBusStop.cpp.
References myBegPos.
Referenced by MSRouteHandler::addStop(), and MSVehicle::processNextStop().
SUMOReal MSBusStop::getEndLanePosition | ( | ) | const |
Returns the end position of this bus stop.
Definition at line 72 of file MSBusStop.cpp.
References myEndPos.
Referenced by MSRouteHandler::addStop(), and MSNet::getBusStopID().
|
inlineinherited |
Returns the id.
Definition at line 60 of file Named.h.
References Named::myID.
Referenced by NIImporter_SUMO::_loadNetwork(), MSVehicleTransfer::add(), TraCIServerAPI_Lane::StoringVisitor::add(), Named::StoringVisitor::add(), MSDetectorControl::add(), RORouteDef::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), NIXMLConnectionsHandler::addCrossing(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSPerson::MSPersonStage_Driving::beginEventOutput(), MSPerson::MSPersonStage_Waiting::beginEventOutput(), NIVisumTL::build(), RODFNet::buildApproachList(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NBNode::buildCrossings(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), NBNode::buildInnerEdges(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBNode::buildWalkingAreas(), MSSimpleTrafficLightLogic::changeStepAndDuration(), NBEdge::checkGeometry(), 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(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), MSAbstractLaneChangeModel::continueLaneChangeManeuver(), NLDetectorBuilder::convUncontE2PosLength(), GUINet::createTLWrapper(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSPerson::MSPersonStage_Driving::endEventOutput(), MSPerson::MSPersonStage_Waiting::endEventOutput(), MSE3Collector::enter(), MSCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), NBEdge::getCrossingAngle(), RODFNet::getDetectorEdge(), MSMeanData::getEdgeID(), PedestrianEdge< E, L, N >::getEffort(), NBEdge::getFirstNonPedestrianLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), AGStreet::getName(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPModel_Striping::getNextLane(), GUIVehicle::getParameterWindow(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), NBEdgeCont::ignoreFilterMatch(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSTrafficLightLogic::init(), PedestrianEdge< E, L, N >::initPedestrianNetwork(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), RODFNet::isDestination(), RODFNet::isFalseSource(), RODFNet::isSource(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), NBRampsComputer::moveRampRight(), MSPModel_Striping::PState::moveToNextLane(), MSCalibrator::MSCalibrator(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Example::notifyEnter(), MSCalibrator::VehicleRemover::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Person::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Example::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), GUIViewTraffic::onGamingClick(), 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()(), MSEdge::by_id_sorter::operator()(), NBNode::nodes_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(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_JE2013::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSRightOfWayJunction::postloadInit(), AGStreet::print(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Vehicle::processSet(), NWWriter_SUMO::prohibitionConnection(), MSPModel_Striping::PState::PState(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), MSCalibrator::removePending(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), MSBaseVehicle::saveState(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), NIXMLEdgesHandler::setNodes(), MSLink::setRequestInformation(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap_matchingEdgeLane(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSLCM_JE2013::wantsChange(), MSFCDExport::write(), MSEmissionExport::write(), MSInstantInductLoop::write(), 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(), 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(), MSInductLoop::writeTypedXMLOutput(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
const MSLane & MSBusStop::getLane | ( | ) | const |
Returns the lane this bus stop is located at.
Definition at line 60 of file MSBusStop.cpp.
References myLane.
Referenced by MSRouteHandler::addStop(), and MSNet::getBusStopID().
SUMOReal MSBusStop::getLastFreePos | ( | const SUMOVehicle & | forVehicle | ) | const |
Returns the last free position on this stop.
Definition at line 85 of file MSBusStop.cpp.
References MSVehicleType::getMinGap(), SUMOVehicle::getVehicleType(), myEndPos, and myLastFreePos.
Referenced by MSVehicle::planMoveInternal(), and MSVehicle::processNextStop().
|
inline |
Returns the number of persons waiting on this stop.
Definition at line 140 of file MSBusStop.h.
References myWaitingPersons.
Referenced by GUIBusStop::getParameterWindow(), and TraCIServerAPI_Simulation::processGet().
void MSBusStop::leaveFrom | ( | SUMOVehicle * | what | ) |
Called if a vehicle leaves this stop.
Removes the position of the vehicle from myEndPositions.
Recomputes the free space using "computeLastFreePos" then.
[in] | what | The vehicle that leaves the bus stop |
Definition at line 94 of file MSBusStop.cpp.
References computeLastFreePos(), and myEndPositions.
|
inline |
Definition at line 148 of file MSBusStop.h.
References myWaitingPersons.
Referenced by MSVehicle::processNextStop().
|
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().
|
protected |
The begin position this bus stop is located at.
Definition at line 176 of file MSBusStop.h.
Referenced by getBeginLanePosition(), and GUIBusStop::getParameterWindow().
|
protected |
The end position this bus stop is located at.
Definition at line 179 of file MSBusStop.h.
Referenced by computeLastFreePos(), getEndLanePosition(), getLastFreePos(), and GUIBusStop::getParameterWindow().
|
protected |
A map from objects (vehicles) to the areas they acquire after entering the stop.
Definition at line 170 of file MSBusStop.h.
Referenced by computeLastFreePos(), enter(), and leaveFrom().
|
protectedinherited |
The name of the object.
Definition at line 128 of file Named.h.
Referenced by GUI_E2_ZS_CollectorOverLanes::buildCollector(), RODFDetector::buildDestinationDistribution(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), NBNode::computeNodeShape(), MSCalibrator::execute(), Named::getID(), NBEdge::getLaneID(), NBEdge::getLaneIDInsecure(), ROEdge::getStoredEffort(), ROEdge::getTravelTime(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSCalibrator::init(), NBEdge::init(), MSCalibrator::myStartElement(), MSCalibrator::VehicleRemover::notifyEnter(), MSMeanData::openInterval(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), RORouteDef::repairCurrentRoute(), Named::setID(), NBEdge::splitGeometry(), RODFDetector::writeEmitterDefinition(), MSXMLRawOut::writeLane(), NBNode::writeLogic(), RODFDetector::writeSingleSpeedTrigger(), MSCalibrator::writeXMLOutput(), and MSE3Collector::writeXMLOutput().
|
protected |
The lane this bus stop is located at.
Definition at line 173 of file MSBusStop.h.
Referenced by getLane().
|
protected |
The last free position at this stop (variable)
Definition at line 182 of file MSBusStop.h.
Referenced by computeLastFreePos(), and getLastFreePos().
|
protected |
The list of lines that are assigned to this stop.
Definition at line 167 of file MSBusStop.h.
Referenced by GUIBusStop::drawGL().
|
protected |
Persons waiting at this stop.
Definition at line 185 of file MSBusStop.h.
Referenced by addPerson(), GUIBusStop::drawGL(), getPersonNumber(), and removePerson().