SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSStoppingPlace Class Reference

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

#include <MSStoppingPlace.h>

Inheritance diagram for MSStoppingPlace:
Named GUIBusStop GUIContainerStop MSChrgStn GUIChrgStn

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 MSLane & getLane () 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...
 
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...
 

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< MSTransportable * > myWaitingTransportables
 Persons waiting at this stop. More...
 

Private Member Functions

 MSStoppingPlace (const MSStoppingPlace &)
 Invalidated copy constructor. More...
 
MSStoppingPlace & operator= (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 64 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 45 of file MSStoppingPlace.cpp.

References computeLastFreePos().

MSStoppingPlace::~MSStoppingPlace ( )
virtual

Destructor.

Definition at line 55 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
in,filled]cont The container to add this item to

Definition at line 121 of file Named.h.

References Named::StoringVisitor::add().

void MSStoppingPlace::addTransportable ( MSTransportable *  p)
inline

adds a transportable to this stop

Definition at line 145 of file MSStoppingPlace.h.

References myWaitingTransportables.

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 101 of file MSStoppingPlace.cpp.

References myEndPos, myEndPositions, and myLastFreePos.

Referenced by enter(), 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 77 of file MSStoppingPlace.cpp.

References computeLastFreePos(), and myEndPositions.

Referenced by MSVehicle::processNextStop().

SUMOReal MSStoppingPlace::getBeginLanePosition ( ) const

Returns the begin position of this stop.

Returns
The position the stop begins at

Definition at line 65 of file MSStoppingPlace.cpp.

References myBegPos.

Referenced by MSRouteHandler::addStop(), MSVehicle::addTraciBusOrContainerStop(), MSNet::getChrgStnID(), MSChrgStn::MSChrgStn(), MSVehicle::processNextStop(), and MSChrgStn::vehicleIsInside().

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

Returns the id.

Returns
The stored 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(), MSLane::addApproachingLane(), MSNet::addBusStop(), MSNet::addChrgStn(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), MSNet::addContainerStop(), NIXMLConnectionsHandler::addCrossing(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), 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(), 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(), 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(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), NBRampsComputer::fulfillsRampConstraints(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), MSNet::getChrgStnID(), MSNet::getContainerStopID(), NBEdge::getCrossingAngle(), RODFNet::getDetectorEdge(), MSMeanData::getEdgeID(), PedestrianEdge< E, L, N >::getEffort(), NBEdge::getFirstNonPedestrianLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), GUIVehicle::getParameterWindow(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), MSVehicleControl::getWaitingVehicle(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), 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(), 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(), NBRampsComputer::moveRampRight(), MSPModel_Striping::PState::moveToNextLane(), MSCalibrator::MSCalibrator(), MSChrgStn::MSChrgStn(), MSContainer::MSContainerStage_Waiting::MSContainerStage_Waiting(), MSDevice_Battery::MSDevice_Battery(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), NBLoadedTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_BTsender::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Example::notifyEnter(), MSCalibrator::VehicleRemover::notifyEnter(), MSDevice_Container::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Person::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_Example::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_BTreceiver::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_TLS::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_ArealDetector::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(), MSCalibrator::removePending(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), RORouteDef::repairCurrentRoute(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), MSBaseVehicle::saveState(), MSDevice_Battery::setActBatKap(), MSDevice_Battery::setAirDragCoefficient(), NBNodeCont::setAsTLControlled(), MSChrgStn::setChrgPower(), MSDevice_Battery::setConstantPowerIntake(), NBEdge::setControllingTLInformation(), MSChrgStn::setEfficency(), MSDevice_Battery::setFrontSurfaceArea(), MSDevice_Battery::setInternalMomentOfInertia(), MSDevice_Battery::setMass(), MSDevice_Battery::setMaxBatKap(), NIXMLEdgesHandler::setNodes(), MSDevice_Battery::setPowerMax(), MSDevice_Battery::setPropulsionEfficiency(), MSDevice_Battery::setRadialDragCoefficient(), MSDevice_Battery::setRecuperationEfficiency(), MSLink::setRequestInformation(), MSDevice_Battery::setRollDragCoefficient(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSLCM_JE2013::wantsChange(), MSEmissionExport::write(), MSBatteryExport::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(), SUMO::Polygon::writeXML(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().

const MSLane & MSStoppingPlace::getLane ( ) const

Returns the lane this stop is located at.

Returns
Reference to the lane the stop is located at

Definition at line 59 of file MSStoppingPlace.cpp.

References myLane.

Referenced by MSRouteHandler::addStop(), MSVehicle::addTraciBusOrContainerStop(), MSNet::getBusStopID(), MSNet::getChrgStnID(), and MSNet::getContainerStopID().

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

Returns the number of transportables waiting on this stop.

Definition at line 140 of file MSStoppingPlace.h.

References myWaitingTransportables.

Referenced by GUIContainerStop::getParameterWindow(), GUIBusStop::getParameterWindow(), and TraCIServerAPI_Simulation::processGet().

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 93 of file MSStoppingPlace.cpp.

References computeLastFreePos(), and myEndPositions.

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

Invalidated assignment operator.

void MSStoppingPlace::removeTransportable ( MSTransportable *  p)
inline

Removes a transportable from this stop.

Definition at line 150 of file MSStoppingPlace.h.

References myWaitingTransportables.

Referenced by MSVehicle::processNextStop().

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

resets the id

Parameters
[in]newIDThe new id of this object

Definition at line 68 of file Named.h.

References Named::myID.

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

Field Documentation

SUMOReal MSStoppingPlace::myBegPos
protected

The begin position this bus stop is located at.

Definition at line 178 of file MSStoppingPlace.h.

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

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 172 of file MSStoppingPlace.h.

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

MSLane& MSStoppingPlace::myLane
protected

The lane this bus stop is located at.

Definition at line 175 of file MSStoppingPlace.h.

Referenced by getLane().

SUMOReal MSStoppingPlace::myLastFreePos
protected

The last free position at this stop (variable)

Definition at line 184 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 169 of file MSStoppingPlace.h.

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

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

Persons waiting at this stop.

Definition at line 187 of file MSStoppingPlace.h.

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


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