SUMO - Simulation of Urban MObility
MSStoppingPlace Class Reference

A lane area vehicles can halt at. More...

#include <MSStoppingPlace.h>

Inheritance diagram for MSStoppingPlace:
Inheritance graph
Collaboration diagram for MSStoppingPlace:
Collaboration graph

Public Member Functions

void addTo (const StoringVisitor &cont) const
 Adds this object to the given container. More...
 
void addTransportable (MSTransportable *p)
 adds a transportable to this stop 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 stop. More...
 
SUMOReal getEndLanePosition () const
 Returns the end position of this stop. More...
 
const std::string & getID () const
 Returns the id. More...
 
const MSLanegetLane () const
 Returns the lane this stop is located at. More...
 
SUMOReal getLastFreePos (const SUMOVehicle &forVehicle) const
 Returns the last free position on this stop. More...
 
unsigned int getTransportableNumber () const
 Returns the number of transportables waiting on this stop. More...
 
Position getWaitPosition () const
 Returns the next free waiting place for pedestrians / containers. More...
 
void leaveFrom (SUMOVehicle *what)
 Called if a vehicle leaves this stop. More...
 
 MSStoppingPlace (const std::string &id, const std::vector< std::string > &lines, MSLane &lane, SUMOReal begPos, SUMOReal endPos)
 Constructor. More...
 
void removeTransportable (MSTransportable *p)
 Removes a transportable from this stop. More...
 
void setID (const std::string &newID)
 resets the id More...
 
virtual ~MSStoppingPlace ()
 Destructor. More...
 

Static Public Member Functions

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...
 

Protected Member Functions

void computeLastFreePos ()
 Computes the last free position on this stop. More...
 

Protected Attributes

const SUMOReal myBegPos
 The begin position this bus stop is located at. More...
 
const 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...
 
const MSLanemyLane
 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...
 
SUMOReal myWaitingPos
 The next free position for persons / containers. More...
 
std::vector< MSTransportable * > myWaitingTransportables
 Persons waiting at this stop. More...
 

Private Member Functions

 MSStoppingPlace (const MSStoppingPlace &)
 Invalidated copy constructor. More...
 
MSStoppingPlaceoperator= (const MSStoppingPlace &)
 Invalidated assignment operator. More...
 

Detailed Description

A lane area vehicles can halt at.

The stop 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 65 of file MSStoppingPlace.h.

Constructor & Destructor Documentation

MSStoppingPlace::MSStoppingPlace ( const std::string &  id,
const std::vector< std::string > &  lines,
MSLane lane,
SUMOReal  begPos,
SUMOReal  endPos 
)

Constructor.

Parameters
[in]idThe id of the stop
[in]netThe net the stop belongs to
[in]linesNames of the lines that halt on this stop
[in]laneThe lane the stop is placed on
[in]begPosBegin position of the stop on the lane
[in]endPosEnd position of the stop on the lane

Definition at line 48 of file MSStoppingPlace.cpp.

References computeLastFreePos().

MSStoppingPlace::~MSStoppingPlace ( )
virtual

Destructor.

Definition at line 58 of file MSStoppingPlace.cpp.

MSStoppingPlace::MSStoppingPlace ( const MSStoppingPlace )
private

Invalidated copy constructor.

Member Function Documentation

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

Adds this object to the given container.

Parameters

Definition at line 126 of file Named.h.

References Named::StoringVisitor::add().

void MSStoppingPlace::computeLastFreePos ( )
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 132 of file MSStoppingPlace.cpp.

References myEndPos, myEndPositions, and myLastFreePos.

Referenced by enter(), getTransportableNumber(), leaveFrom(), and MSStoppingPlace().

void MSStoppingPlace::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.

Parameters
[in]whatThe vehicle that enters the bus stop
[in]begThe begin halting position of the vehicle
[in]whatThe end halting position of the vehicle
See also
computeLastFreePos

Definition at line 80 of file MSStoppingPlace.cpp.

References computeLastFreePos(), myEndPositions, and SUMOReal.

Referenced by MSVehicle::processNextStop().

SUMOReal MSStoppingPlace::getBeginLanePosition ( ) const
const std::string& Named::getID ( ) const
inlineinherited

Returns the id.

Returns
The stored id

Definition at line 65 of file Named.h.

References Named::myID.

Referenced by NIImporter_SUMO::_loadNetwork(), MSVehicleTransfer::add(), TraCIServerAPI_Lane::StoringVisitor::add(), MSDetectorControl::add(), Named::StoringVisitor::add(), 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(), MSVehicle::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciBusOrContainerStop(), MSVehicle::addTraciStop(), AGActivityTripWriter::addTrip(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSContainer::MSContainerStage_Driving::beginEventOutput(), MSContainer::MSContainerStage_Waiting::beginEventOutput(), MSPerson::MSPersonStage_Driving::beginEventOutput(), MSPerson::MSPersonStage_Waiting::beginEventOutput(), NLEdgeControlBuilder::build(), NIVisumTL::build(), RODFNet::buildApproachList(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NBNode::buildCrossings(), NBNode::buildCrossingsAndWalkingAreas(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), GNEConnector::buildIinternalLanes(), GNETLSEditor::buildIinternalLanes(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSimpleTrafficLightLogic::changeStepAndDuration(), NBEdge::checkGeometry(), MSVehicleTransfer::checkInsertions(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedSUMOTLDef::collectEdges(), NBTrafficLightDefinition::collectEdges(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNode::computeNodeShape(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), MSAbstractLaneChangeModel::continueLaneChangeManeuver(), NLDetectorBuilder::convUncontE2PosLength(), GUINet::createTLWrapper(), NIVissimDistrictConnection::dict_BuildDistricts(), MSContainer::MSContainerStage_Driving::endEventOutput(), MSContainer::MSContainerStage_Waiting::endEventOutput(), 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(), MSTrafficLightLogic::SwitchCommand::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), NBRampsComputer::fulfillsRampConstraints(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), MSNet::getChargingStationID(), NBEdge::getConnection(), MSNet::getContainerStopID(), NBEdge::getCrossingAngle(), GNEEdge::getDest(), RODFNet::getDetectorEdge(), MSMeanData::getEdgeID(), PedestrianEdge< E, L, N >::getEffort(), NBEdge::getFirstNonPedestrianLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), MSTLLogicControl::TLSLogicVariants::getLogicInstantiatingOff(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUI_E2_ZS_Collector::MyWrapper::getParameterWindow(), GUIVehicle::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), 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::handleCollision(), NBEdgeCont::ignoreFilterMatch(), MSRailSignal::init(), MSActuatedTrafficLightLogic::init(), MSTrafficLightLogic::init(), PedestrianEdge< E, L, N >::initPedestrianNetwork(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NBEdgeCont::insert(), MSEdge::insertVehicle(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), RODFNet::isDestination(), RODFNet::isFalseSource(), RODFNet::isSource(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), NIImporter_OpenDrive::loadNetwork(), ODDistrictCont::makeDistricts(), 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_BTsender::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Example::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSTriggeredRerouter::notifyEnter(), MSDevice_Container::notifyLeave(), MSDevice_Person::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_Example::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), GUIViewTraffic::onGamingClick(), 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()(), 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(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_JE2013::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSRightOfWayJunction::postloadInit(), AGStreet::print(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_ArealDetector::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Vehicle::processSet(), NIXMLNodesHandler::processTrafficLightDefinitions(), NWWriter_SUMO::prohibitionConnection(), MSPModel_Striping::PState::PState(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNodeCont::removeIsolatedRoads(), MSCalibrator::removePending(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), GNENet::renameEdge(), GNENet::renameJunction(), RORouteDef::repairCurrentRoute(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), RONet::saveAndRemoveRoutesUntil(), MSBaseVehicle::saveState(), MSDevice_Battery::setActualBatteryCapacity(), MSDevice_Battery::setAirDragCoefficient(), NBNodeCont::setAsTLControlled(), MSChargingStation::setChrgPower(), MSDevice_Battery::setConstantPowerIntake(), NBEdge::setControllingTLInformation(), MSChargingStation::setEfficency(), MSDevice_Battery::setFrontSurfaceArea(), MSDevice_Battery::setInternalMomentOfInertia(), GNEJunction::setLogicValid(), MSDevice_Battery::setMass(), MSDevice_Battery::setMaximumBatteryCapacity(), NIXMLEdgesHandler::setNodes(), MSDevice_Battery::setPowerMax(), MSDevice_Battery::setPropulsionEfficiency(), MSDevice_Battery::setRadialDragCoefficient(), MSDevice_Battery::setRecuperationEfficiency(), MSLink::setRequestInformation(), MSDevice_Battery::setRollDragCoefficient(), MSTLLogicControl::TLSLogicVariants::setStateInstantiatingOnline(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), GNETLSEditor::updateDescription(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSPModel_Striping::PState::walk(), MSLCM_JE2013::wantsChange(), MSBatteryExport::write(), 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(), 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(), MSInductLoop::writeTypedXMLOutput(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), PointOfInterest::writeXML(), SUMO::Polygon::writeXML(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().

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

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

Definition at line 58 of file Named.h.

const MSLane & MSStoppingPlace::getLane ( ) const
SUMOReal MSStoppingPlace::getLastFreePos ( const SUMOVehicle forVehicle) const

Returns the last free position on this stop.

Returns
The last free position of this bus stop

Definition at line 87 of file MSStoppingPlace.cpp.

References MSVehicleType::getMinGap(), SUMOVehicle::getVehicleType(), myEndPos, and myLastFreePos.

Referenced by MSVehicle::planMoveInternal(), and MSVehicle::processNextStop().

unsigned int MSStoppingPlace::getTransportableNumber ( ) const
inline
Position MSStoppingPlace::getWaitPosition ( ) const

Returns the next free waiting place for pedestrians / containers.

Returns
The next free waiting place for pedestrians / containers

Definition at line 96 of file MSStoppingPlace.cpp.

References MSLane::getShape(), MSLane::interpolateLanePosToGeometryPos(), myLane, myWaitingPos, and PositionVector::positionAtOffset().

Referenced by MSPerson::MSPersonStage_Driving::proceed().

void MSStoppingPlace::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.

Parameters
[in]whatThe vehicle that leaves the bus stop
See also
computeLastFreePos

Definition at line 124 of file MSStoppingPlace.cpp.

References computeLastFreePos(), and myEndPositions.

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

Invalidated assignment operator.

void MSStoppingPlace::removeTransportable ( MSTransportable p)
void Named::setID ( const std::string &  newID)
inlineinherited

resets the id

Parameters
[in]newIDThe new id of this object

Definition at line 73 of file Named.h.

References Named::myID.

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

Field Documentation

const SUMOReal MSStoppingPlace::myBegPos
protected

The begin position this bus stop is located at.

Definition at line 179 of file MSStoppingPlace.h.

Referenced by getBeginLanePosition(), GUIContainerStop::getParameterWindow(), GUIBusStop::getParameterWindow(), and GUIChargingStation::getParameterWindow().

const SUMOReal MSStoppingPlace::myEndPos
protected
std::map<SUMOVehicle*, std::pair<SUMOReal, SUMOReal> > MSStoppingPlace::myEndPositions
protected

A map from objects (vehicles) to the areas they acquire after entering the stop.

Definition at line 173 of file MSStoppingPlace.h.

Referenced by computeLastFreePos(), enter(), and leaveFrom().

const MSLane& MSStoppingPlace::myLane
protected

The lane this bus stop is located at.

Definition at line 176 of file MSStoppingPlace.h.

Referenced by getLane(), and getWaitPosition().

SUMOReal MSStoppingPlace::myLastFreePos
protected

The last free position at this stop (variable)

Definition at line 185 of file MSStoppingPlace.h.

Referenced by computeLastFreePos(), and getLastFreePos().

std::vector<std::string> MSStoppingPlace::myLines
protected

The list of lines that are assigned to this stop.

Definition at line 170 of file MSStoppingPlace.h.

Referenced by GUIContainerStop::drawGL(), and GUIBusStop::drawGL().

SUMOReal MSStoppingPlace::myWaitingPos
protected

The next free position for persons / containers.

Definition at line 188 of file MSStoppingPlace.h.

Referenced by addTransportable(), getWaitPosition(), and removeTransportable().

std::vector<MSTransportable*> MSStoppingPlace::myWaitingTransportables
protected

Persons waiting at this stop.

Definition at line 191 of file MSStoppingPlace.h.

Referenced by addTransportable(), GUIContainerStop::drawGL(), getTransportableNumber(), and removeTransportable().


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