SUMO - Simulation of Urban MObility
|
A lane area vehicles can halt at and load and unload containers. More...
#include <MSContainerStop.h>
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 MSLane & | getLane () 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... | |
MSLane & | myLane |
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... | |
MSContainerStop & | operator= (const MSContainerStop &) |
Invalidated assignment operator. More... | |
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.
MSContainerStop::MSContainerStop | ( | const std::string & | id, |
const std::vector< std::string > & | lines, | ||
MSLane & | lane, | ||
SUMOReal | begPos, | ||
SUMOReal | endPos | ||
) |
Constructor.
[in] | id | The id of the container stop |
[in] | net | The net the container stop belongs to |
[in] | lines | Names of the vehicle lines that halt on this container stop |
[in] | lane | The lane the container stop is placed on |
[in] | begPos | Begin position of the container stop on the lane |
[in] | endPos | End position of the container stop on the lane |
Definition at line 46 of file MSContainerStop.cpp.
References computeLastFreePos().
|
virtual |
Destructor.
Definition at line 56 of file MSContainerStop.cpp.
|
private |
Invalidated copy constructor.
|
inline |
Adds a container to this stop.
Definition at line 146 of file MSContainerStop.h.
References myWaitingContainers.
|
inlineinherited |
Adds this object to the given container.
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 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.
[in] | what | The vehicle that enters the container 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 MSContainerStop.cpp.
References computeLastFreePos(), and myEndPositions.
Referenced by MSVehicle::processNextStop().
SUMOReal MSContainerStop::getBeginLanePosition | ( | ) | const |
Returns the begin position of this container stop.
Definition at line 66 of file MSContainerStop.cpp.
References myBegPos.
Referenced by MSRouteHandler::addStop(), and MSVehicle::processNextStop().
|
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.
Definition at line 72 of file MSContainerStop.cpp.
References myEndPos.
Referenced by MSRouteHandler::addStop(), MSNet::getContainerStopID(), and MSVehicle::processNextStop().
|
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(), 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.
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.
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.
[in] | what | The vehicle that leaves the container stop |
Definition at line 94 of file MSContainerStop.cpp.
References computeLastFreePos(), and myEndPositions.
|
private |
Invalidated assignment operator.
|
inline |
Removes a container from this stop.
Definition at line 151 of file MSContainerStop.h.
References myWaitingContainers.
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 stop is located at.
Definition at line 179 of file MSContainerStop.h.
Referenced by getBeginLanePosition(), and GUIContainerStop::getParameterWindow().
|
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().
|
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().
|
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(), 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 stop is located at.
Definition at line 176 of file MSContainerStop.h.
Referenced by getLane().
|
protected |
The last free position at this stop (variable)
Definition at line 185 of file MSContainerStop.h.
Referenced by computeLastFreePos(), and getLastFreePos().
|
protected |
The list of lines that are assigned to this stop.
Definition at line 170 of file MSContainerStop.h.
Referenced by GUIContainerStop::drawGL().
|
protected |
Containers waiting at this stop.
Definition at line 188 of file MSContainerStop.h.
Referenced by addContainer(), GUIContainerStop::drawGL(), getContainerNumber(), and removeContainer().