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

A lane area vehicles can halt at and load and unload containers. More...

#include <MSContainerStop.h>

Inheritance diagram for MSContainerStop:
Named GUIContainerStop

Public Member Functions

void addContainer (MSContainer *container)
 Adds a container to this stop. More...
 
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 container stop. More...
 
unsigned int getContainerNumber () const
 Returns the number of containers waiting on this stop. More...
 
SUMOReal getEndLanePosition () const
 Returns the end position of this container stop. More...
 
const std::string & getID () const
 Returns the id. More...
 
const MSLanegetLane () const
 Returns the lane this container stop is located at. More...
 
SUMOReal getLastFreePos (const SUMOVehicle &forVehicle) const
 Returns the last free position on this stop. More...
 
void leaveFrom (SUMOVehicle *what)
 Called if a vehicle leaves this stop. More...
 
 MSContainerStop (const std::string &id, const std::vector< std::string > &lines, MSLane &lane, SUMOReal begPos, SUMOReal endPos)
 Constructor. More...
 
void removeContainer (MSContainer *container)
 Removes a container from this stop. More...
 
void setID (const std::string &newID)
 resets the id More...
 
virtual ~MSContainerStop ()
 Destructor. More...
 

Protected Member Functions

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

Protected Attributes

SUMOReal myBegPos
 The begin position this stop is located at. More...
 
SUMOReal myEndPos
 The end position this 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...
 
MSLanemyLane
 The lane this 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< MSContainer * > myWaitingContainers
 Containers waiting at this stop. More...
 

Private Member Functions

 MSContainerStop (const MSContainerStop &)
 Invalidated copy constructor. More...
 
MSContainerStopoperator= (const MSContainerStop &)
 Invalidated assignment operator. More...
 

Detailed Description

A lane area vehicles can halt at and load and unload containers.

A container 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 MSContainerStop.h.

Constructor & Destructor Documentation

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

Constructor.

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

Definition at line 46 of file MSContainerStop.cpp.

References computeLastFreePos().

MSContainerStop::~MSContainerStop ( )
virtual

Destructor.

Definition at line 56 of file MSContainerStop.cpp.

MSContainerStop::MSContainerStop ( const MSContainerStop )
private

Invalidated copy constructor.

Member Function Documentation

void MSContainerStop::addContainer ( MSContainer container)
inline

Adds a container to this stop.

Definition at line 146 of file MSContainerStop.h.

References myWaitingContainers.

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 MSContainerStop::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 102 of file MSContainerStop.cpp.

References myEndPos, myEndPositions, and myLastFreePos.

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

void MSContainerStop::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 container stop
[in]begThe begin halting position of the vehicle
[in]whatThe end halting position of the vehicle
See also
computeLastFreePos

Definition at line 78 of file MSContainerStop.cpp.

References computeLastFreePos(), and myEndPositions.

Referenced by MSVehicle::processNextStop().

SUMOReal MSContainerStop::getBeginLanePosition ( ) const

Returns the begin position of this container stop.

Returns
The position the container stop begins at

Definition at line 66 of file MSContainerStop.cpp.

References myBegPos.

Referenced by MSRouteHandler::addStop(), and MSVehicle::processNextStop().

unsigned int MSContainerStop::getContainerNumber ( ) const
inline

Returns the number of containers waiting on this stop.

Definition at line 141 of file MSContainerStop.h.

References myWaitingContainers.

Referenced by GUIContainerStop::getParameterWindow().

SUMOReal MSContainerStop::getEndLanePosition ( ) const

Returns the end position of this container stop.

Returns
The position the container stop ends at

Definition at line 72 of file MSContainerStop.cpp.

References myEndPos.

Referenced by MSRouteHandler::addStop(), MSNet::getContainerStopID(), and MSVehicle::processNextStop().

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(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), MSNet::addContainerStop(), NIXMLConnectionsHandler::addCrossing(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBEdge::addSidewalk(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), MSVehicle::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), 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(), 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(), NBLoadedSUMOTLDef::collectEdges(), NBTrafficLightDefinition::collectEdges(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNode::computeNodeShape(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), 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(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), MSNet::getContainerStopID(), NBEdge::getCrossingAngle(), RODFNet::getDetectorEdge(), MSMeanData::getEdgeID(), PedestrianEdge< E, L, N >::getEffort(), NBEdge::getFirstNonPedestrianLane(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), 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(), MSContainer::MSContainerStage_Waiting::MSContainerStage_Waiting(), 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_Person::notifyLeave(), MSDevice_Tripinfo::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()(), 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_Person::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(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap(), MSLCM_JE2013::wantsChange(), 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(), 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 & MSContainerStop::getLane ( ) const

Returns the lane this container stop is located at.

Returns
Reference to the lane the container stop is located at

Definition at line 60 of file MSContainerStop.cpp.

References myLane.

Referenced by MSRouteHandler::addStop(), and MSNet::getContainerStopID().

SUMOReal MSContainerStop::getLastFreePos ( const SUMOVehicle forVehicle) const

Returns the last free position on this stop.

Returns
The last free position of this container stop

Definition at line 85 of file MSContainerStop.cpp.

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

Referenced by MSVehicle::processNextStop().

void MSContainerStop::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 container stop
See also
computeLastFreePos

Definition at line 94 of file MSContainerStop.cpp.

References computeLastFreePos(), and myEndPositions.

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

Invalidated assignment operator.

void MSContainerStop::removeContainer ( MSContainer container)
inline

Removes a container from this stop.

Definition at line 151 of file MSContainerStop.h.

References myWaitingContainers.

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 MSContainerStop::myBegPos
protected

The begin position this stop is located at.

Definition at line 179 of file MSContainerStop.h.

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

SUMOReal MSContainerStop::myEndPos
protected

The end position this stop is located at.

Definition at line 182 of file MSContainerStop.h.

Referenced by computeLastFreePos(), getEndLanePosition(), getLastFreePos(), and GUIContainerStop::getParameterWindow().

std::map<SUMOVehicle*, std::pair<SUMOReal, SUMOReal> > MSContainerStop::myEndPositions
protected

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

Definition at line 173 of file MSContainerStop.h.

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

MSLane& MSContainerStop::myLane
protected

The lane this stop is located at.

Definition at line 176 of file MSContainerStop.h.

Referenced by getLane().

SUMOReal MSContainerStop::myLastFreePos
protected

The last free position at this stop (variable)

Definition at line 185 of file MSContainerStop.h.

Referenced by computeLastFreePos(), and getLastFreePos().

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

The list of lines that are assigned to this stop.

Definition at line 170 of file MSContainerStop.h.

Referenced by GUIContainerStop::drawGL().

std::vector<MSContainer*> MSContainerStop::myWaitingContainers
protected

Containers waiting at this stop.

Definition at line 188 of file MSContainerStop.h.

Referenced by addContainer(), GUIContainerStop::drawGL(), getContainerNumber(), and removeContainer().


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