SUMO - Simulation of Urban MObility

GUIInternalLane Class Reference

#include <GUIInternalLane.h>

Inheritance diagram for GUIInternalLane:
MSInternalLane MSLane Named

Public Types

typedef std::deque< MSVehicle * > VehCont
 Container for vehicles.

Public Member Functions

void addApproachingLane (MSLane *lane)
void addIncomingLane (MSLane *lane, MSLink *viaLink)
bool allowsVehicleClass (SUMOVehicleClass vclass) const
virtual bool appropriate (const MSVehicle *veh)
GUILaneWrapper * buildLaneWrapper (unsigned int index)
void detectCollisions (SUMOTime timestep)
 Check if vehicles are too close.
bool empty () const
 Returns true if there is not a single vehicle on the lane.
void enteredByLaneChange (MSVehicle *v)
MSEdge & getEdge () const throw ()
 Returns the lane's edge.
virtual const MSVehicle * getFirstVehicle () const
std::pair< MSVehicle *const,
SUMOReal > 
getFollowerOnConsecutive (SUMOReal dist, SUMOReal seen, SUMOReal leaderSpeed, SUMOReal backOffset, SUMOReal predMaxDecel) const
const std::string & getID () const
 Returns the id.
const std::vector
< IncomingLaneInfo > & 
getIncomingLanes () const
virtual MSVehicle * getLastVehicle () const
 returns the last vehicle
std::pair< MSVehicle *const,
SUMOReal > 
getLeaderOnConsecutive (SUMOReal dist, SUMOReal seen, SUMOReal speed, const MSVehicle &veh, const std::vector< MSLane * > &bestLaneConts) const throw ()
 Returns the leader and the distance to him.
MSLane * getLeftLane () const
const MSLinkCont & getLinkCont () const
 returns the container with all links !!!
MSLane * getLogicalPredecessorLane () const throw ()
MSLane * getRightLane () const
 GUIInternalLane (const std::string &id, SUMOReal maxSpeed, SUMOReal length, MSEdge *const edge, unsigned int numericalID, const PositionVector &shape, SUMOReal width, const SUMOVehicleClasses &allowed, const SUMOVehicleClasses &disallowed) throw ()
 Constructor.
bool isApproachedFrom (MSEdge *const edge, MSLane *const lane)
bool isApproachedFrom (MSEdge *const edge)
bool isLinkEnd (MSLinkCont::iterator &i)
bool isLinkEnd (MSLinkCont::const_iterator &i) const
void leftByLaneChange (MSVehicle *v)
MSVehicle * removeVehicle (MSVehicle *remVehicle)
void setAllowedClasses (const SUMOVehicleClasses &classes) throw ()
void setID (const std::string &newID)
 resets the id
void setLength (SUMOReal val) throw ()
void setMaxSpeed (SUMOReal val) throw ()
void setNotAllowedClasses (const SUMOVehicleClasses &classes) throw ()
virtual MSLinkCont::const_iterator succLinkSec (const SUMOVehicle &veh, unsigned int nRouteSuccs, const MSLane &succLinkSource, const std::vector< MSLane * > &conts) const
 ~GUIInternalLane () throw ()
 Destructor.
Access to vehicles
const VehCont & getVehiclesSecure () const throw ()
 Returns the vehicles container; locks it for microsimulation.
void releaseVehicles () const throw ()
 Allows to use the container for microsimulation again.
Vehicle movement (longitudinal)
bool moveCritical (SUMOTime t)
bool setCritical (SUMOTime t, std::vector< MSLane * > &into)
bool integrateNewVehicle (SUMOTime t)
Additional initialisation
void setParentJunctionInformation (MSLogicJunction::InnerState *const foescont, unsigned int foesIdx) throw ()
 Sets the information where to report vehicles being on this lane to.
void setPassPosition (SUMOReal passPos) throw ()
 Sets the position that must be free so that vehicles can pass.
Additional initialisation
void initialize (MSLinkCont *succs)
 Delayed initialization (deprecated)
void addLink (MSLink *link)
 Delayed initialization.
interaction with MSMoveReminder
virtual void addMoveReminder (MSMoveReminder *rem) throw ()
 Add a move-reminder to move-reminder container.
const std::vector
< MSMoveReminder * > & 
getMoveReminders () const throw ()
 Return the list of this lane's move reminders.
Vehicle insertion
bool insertVehicle (MSVehicle &v) throw (ProcessError)
 Tries to insert the given vehicle.
virtual bool isInsertionSuccess (MSVehicle *vehicle, SUMOReal speed, SUMOReal pos, bool recheckNextLanes, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED) throw (ProcessError)
 Tries to insert the given vehicle with the given state (speed and pos)
bool pWagGenericInsertion (MSVehicle &veh, SUMOReal speed, SUMOReal maxPos, SUMOReal minPos) throw ()
bool pWagSimpleInsertion (MSVehicle &veh, SUMOReal speed, SUMOReal maxPos, SUMOReal minPos) throw ()
bool maxSpeedGapInsertion (MSVehicle &veh, SUMOReal mspeed) throw ()
bool freeInsertion (MSVehicle &veh, SUMOReal speed, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED) throw ()
 Tries to insert the given vehicle on any place.
void forceVehicleInsertion (MSVehicle *veh, SUMOReal pos) throw ()
 Inserts the given vehicle at the given position.
Handling vehicles lapping into lanes
SUMOReal setPartialOccupation (MSVehicle *v, SUMOReal leftVehicleLength) throw ()
 Sets the information about a vehicle lapping into this lane.
void resetPartialOccupation (MSVehicle *v) throw ()
 Removes the information about a vehicle lapping into this lane.
MSVehicle * getPartialOccupator () const throw ()
 Returns the vehicle which laps into this lane.
SUMOReal getPartialOccupatorEnd () const throw ()
 Returns the position of the in-lapping vehicle's end.
std::pair< MSVehicle *, SUMOReal > getLastVehicleInformation () const throw ()
 Returns the last vehicle which is still on the lane.
Access to vehicles
unsigned int getVehicleNumber () const throw ()
 Returns the number of vehicles on this lane.
Atomar value getter
size_t getNumericalID () const throw ()
 Returns this lane's numerical id.
const PositionVector & getShape () const throw ()
 Returns this lane's shape.
SUMOReal getMaxSpeed () const throw ()
 Returns the lane's maximum speed.
SUMOReal getLength () const throw ()
 Returns the lane's length.
const SUMOVehicleClasses & getAllowedClasses () const throw ()
 Returns vehicle classes explicitly allowed on this lane.
const SUMOVehicleClasses & getNotAllowedClasses () const throw ()
 Returns vehicle classes explicitly disallowed on this lane.
SUMOReal getWidth () const throw ()
 Returns the lane's width.
Current state retrieval
SUMOReal getMeanSpeed () const throw ()
 Returns the mean speed on this lane.
SUMOReal getOccupancy () const throw ()
 Returns the occupancy of this lane during the last step.
SUMOReal getVehLenSum () const throw ()
 Returns the sum of lengths of vehicles which were on the lane during the last step.
SUMOReal getHBEFA_CO2Emissions () const throw ()
 Returns the sum of last step CO2 emissions.
SUMOReal getHBEFA_COEmissions () const throw ()
 Returns the sum of last step CO emissions.
SUMOReal getHBEFA_PMxEmissions () const throw ()
 Returns the sum of last step PMx emissions.
SUMOReal getHBEFA_NOxEmissions () const throw ()
 Returns the sum of last step NOx emissions.
SUMOReal getHBEFA_HCEmissions () const throw ()
 Returns the sum of last step HC emissions.
SUMOReal getHBEFA_FuelConsumption () const throw ()
 Returns the sum of last step fuel consumption.
SUMOReal getHarmonoise_NoiseEmissions () const throw ()
 Returns the sum of last step noise emissions.

Static Public Member Functions

static void clear ()
static MSLane * dictionary (std::string id)
 Returns the MSLane associated to the key id if exists Otherwise returns 0.
static bool dictionary (std::string id, MSLane *lane)
 Inserts a MSLane into the static dictionary Returns true if the key id isn't already in the dictionary. Otherwise returns false.
static size_t dictSize ()
static void insertIDs (std::vector< std::string > &into) throw ()

Data Fields

PositionVector myShape
 The shape of the lane.

Protected Types

typedef std::map< std::string,
MSLane * > 
DictType
 definition of the tatic dictionary type

Protected Member Functions

virtual void incorporateVehicle (MSVehicle *veh, SUMOReal pos, SUMOReal speed, const MSLane::VehCont::iterator &at, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED) throw (ProcessError)
 Inserts the vehicle into this lane, and informs it about entering the network.
void swapAfterLaneChange (SUMOTime t)
 moves myTmpVehicles int myVehicles after a lane change procedure

Protected Attributes

SUMOVehicleClasses myAllowedClasses
 The list of allowed vehicle classes.
std::map< MSEdge
*, std::vector< MSLane * > > 
myApproachingLanes
SUMOReal myBackDistance
MSEdge * myEdge
 The lane's edge, for routing only.
std::string myID
 The name of the object.
std::vector< IncomingLaneInfo > myIncomingLanes
MSVehicle * myInlappingVehicle
 The vehicle which laps into this lane.
SUMOReal myInlappingVehicleEnd
 End position of a vehicle which laps into this lane.
SUMOReal myLeftVehLength
 Not yet seen vehicle lengths.
SUMOReal myLength
 Lane length [m].
MSLinkCont myLinks
MSLane * myLogicalPredecessorLane
SUMOReal myMaxSpeed
 Lane-wide speedlimit [m/s].
SUMOVehicleClasses myNotAllowedClasses
 The list of disallowed vehicle classes.
size_t myNumericalID
 Unique numerical ID (set on reading by netload)
VehCont myTmpVehicles
std::vector< MSVehicle * > myVehBuffer
SUMOReal myVehicleLengthSum
 The current length of all vehicles on this lane.
VehCont myVehicles
 The lane's vehicles. The entering vehicles are inserted at the front of this container and the leaving ones leave from the back, e.g. the vehicle in front of the junction (often called first) is myVehicles.back() (if it exists). And if it is an iterator at a vehicle, ++it points to the vehicle in front. This is the interaction vehicle.
SUMOReal myWidth
 Lane width [m].

Static Protected Attributes

static DictType myDict
 Static dictionary to associate string-ids with objects.

Private Attributes

MFXMutex myLock
 The mutex used to avoid concurrent updates of the vehicle buffer.

Friends

class GUILaneWrapper
class MSLaneChanger
 needs access to myTmpVehicles (this maybe should be done via SUMOReal-buffering!!!)
class MSXMLRawOut

Detailed Description

An extended MSInternalLane. A mechanism to avoid concurrent visualisation and simulation what may cause problems when vehicles disappear is implemented using a mutex

Definition at line 57 of file GUIInternalLane.h.


Member Typedef Documentation

typedef std::map< std::string, MSLane* > MSLane::DictType [protected, inherited]

definition of the tatic dictionary type

Definition at line 706 of file MSLane.h.

typedef std::deque< MSVehicle* > MSLane::VehCont [inherited]

Container for vehicles.

Definition at line 444 of file MSLane.h.


Constructor & Destructor Documentation

GUIInternalLane::GUIInternalLane ( const std::string &  id,
SUMOReal  maxSpeed,
SUMOReal  length,
MSEdge *const  edge,
unsigned int  numericalID,
const PositionVector &  shape,
SUMOReal  width,
const SUMOVehicleClasses &  allowed,
const SUMOVehicleClasses &  disallowed 
) throw ()

Constructor.

Parameters:
[in]idThe lane's id
[in]maxSpeedThe speed allowed on this lane
[in]lengthThe lane's length
[in]edgeThe edge this lane belongs to
[in]numericalIDThe numerical id of the lane
[in]shapeThe shape of the lane
[in]widthThe width of the lane
[in]allowedVehicle classes that explicitly may drive on this lane
[in]disallowedVehicle classes that are explicitly forbidden on this lane
See also:
SUMOVehicleClass
MSLane
MSInternalLane

Definition at line 51 of file GUIInternalLane.cpp.

GUIInternalLane::~GUIInternalLane ( ) throw ()

Destructor.

Definition at line 60 of file GUIInternalLane.cpp.

References MFXMutex::locked(), myLock, and MFXMutex::unlock().


Member Function Documentation

void MSLane::addApproachingLane ( MSLane *  lane) [inherited]
void MSLane::addLink ( MSLink *  link) [inherited]

Delayed initialization.

Not all lane-members are known at the time the lane is born, above all the pointers to other lanes, so we have to add them later.

Parameters:
[in]linkAn outgoing link

Definition at line 100 of file MSLane.cpp.

References MSLane::myLinks.

Referenced by NLHandler::addConnection().

void MSLane::addMoveReminder ( MSMoveReminder *  rem) throw () [virtual, inherited]

Add a move-reminder to move-reminder container.

The move reminder will not be deleted by the lane.

Parameters:
[in]remThe move reminder to add

Definition at line 107 of file MSLane.cpp.

bool MSLane::allowsVehicleClass ( SUMOVehicleClass  vclass) const [inherited]

Definition at line 961 of file MSLane.cpp.

References MSLane::myAllowedClasses, MSLane::myNotAllowedClasses, and SVC_UNKNOWN.

bool MSLane::appropriate ( const MSVehicle *  veh) [virtual, inherited]

Returns the information whether this lane may be used to continue the current route

Definition at line 794 of file MSLane.cpp.

References MSEdge::EDGEFUNCTION_INTERNAL, MSVehicle::getBestLanesContinuation(), MSEdge::getPurpose(), MSLane::myEdge, MSLane::myLinks, and MSLane::succLinkSec().

GUILaneWrapper * GUIInternalLane::buildLaneWrapper ( unsigned int  index) [virtual]

Reimplemented from MSLane.

Definition at line 168 of file GUIInternalLane.cpp.

References MSLane::GUILaneWrapper, and MSLane::myShape.

void MSLane::clear ( ) [static, inherited]

Clears the dictionary

Definition at line 777 of file MSLane.cpp.

References MSLane::myDict.

Referenced by MSNet::clearAll().

void GUIInternalLane::detectCollisions ( SUMOTime  timestep) [virtual]

Check if vehicles are too close.

Reimplemented from MSLane.

Definition at line 174 of file GUIInternalLane.cpp.

References MFXMutex::lock(), myLock, and MFXMutex::unlock().

MSLane * MSLane::dictionary ( std::string  id) [static, inherited]

Returns the MSLane associated to the key id if exists Otherwise returns 0.

Definition at line 766 of file MSLane.cpp.

References MSLane::myDict.

static size_t MSLane::dictSize ( ) [inline, static, inherited]

Definition at line 437 of file MSLane.h.

References MSLane::myDict.

bool MSLane::empty ( ) const [inline, inherited]

Returns true if there is not a single vehicle on the lane.

Definition at line 404 of file MSLane.h.

References MSLane::myVehBuffer, and MSLane::myVehicles.

void MSLane::enteredByLaneChange ( MSVehicle *  v) [inherited]
void MSLane::forceVehicleInsertion ( MSVehicle *  veh,
SUMOReal  pos 
) throw () [inherited]

Inserts the given vehicle at the given position.

No checks are done, vehicle insertion using this method may generate collisions (possibly delayed).

Parameters:
[in]vehThe vehicle to insert
[in]posThe position at which the vehicle shall be inserted

Definition at line 575 of file MSLane.cpp.

Referenced by TraCIServerAPI_Vehicle::processSet().

bool MSLane::freeInsertion ( MSVehicle &  veh,
SUMOReal  speed,
MSMoveReminder::Notification  notification = MSMoveReminder::NOTIFICATION_DEPARTED 
) throw () [inherited]

Tries to insert the given vehicle on any place.

Parameters:
[in]vehThe vehicle to insert
[in]speedThe maximum insertion speed
[in]notificationThe cause of insertion (i.e. departure, teleport, parking) defaults to departure
Returns:
Whether the vehicle could be inserted

Definition at line 250 of file MSLane.cpp.

References MSVehicle::getCarFollowModel(), MSVehicleType::getLengthWithGap(), MSCFModel::getMaxDecel(), MSVehicle::getPositionOnLane(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MIN2(), POSITION_EPS, and SUMOReal.

Referenced by MSVehicleTransfer::checkInsertions().

const SUMOVehicleClasses& MSLane::getAllowedClasses ( ) const throw () [inline, inherited]

Returns vehicle classes explicitly allowed on this lane.

Returns:
This lane's allowed vehicle classes

Definition at line 352 of file MSLane.h.

References MSLane::myAllowedClasses.

Referenced by GUILaneWrapper::getColorValue(), and TraCIServerAPI_Lane::processGet().

const MSVehicle * MSLane::getFirstVehicle ( ) const [virtual, inherited]

Definition at line 839 of file MSLane.cpp.

References MSLane::myVehicles.

Referenced by MSLane::getFollowerOnConsecutive().

std::pair< MSVehicle *const, SUMOReal > MSLane::getFollowerOnConsecutive ( SUMOReal  dist,
SUMOReal  seen,
SUMOReal  leaderSpeed,
SUMOReal  backOffset,
SUMOReal  predMaxDecel 
) const [inherited]
SUMOReal MSLane::getHarmonoise_NoiseEmissions ( ) const throw () [inherited]

Returns the sum of last step noise emissions.

Returns:
noise emissions of vehicles on this lane during the last step

Definition at line 1280 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), HelpersHarmonoise::sum(), and SUMOReal.

Referenced by GUILaneWrapper::getColorValue(), and TraCIServerAPI_Lane::processGet().

SUMOReal MSLane::getHBEFA_CO2Emissions ( ) const throw () [inherited]

Returns the sum of last step CO2 emissions.

Returns:
CO2 emissions of vehicles on this lane during the last step

Definition at line 1208 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), and SUMOReal.

Referenced by GUILaneWrapper::getNormedHBEFA_CO2Emissions(), and TraCIServerAPI_Lane::processGet().

SUMOReal MSLane::getHBEFA_COEmissions ( ) const throw () [inherited]

Returns the sum of last step CO emissions.

Returns:
CO emissions of vehicles on this lane during the last step

Definition at line 1220 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), and SUMOReal.

Referenced by GUILaneWrapper::getNormedHBEFA_COEmissions(), and TraCIServerAPI_Lane::processGet().

SUMOReal MSLane::getHBEFA_FuelConsumption ( ) const throw () [inherited]

Returns the sum of last step fuel consumption.

Returns:
fuel consumption of vehicles on this lane during the last step

Definition at line 1268 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), and SUMOReal.

Referenced by GUILaneWrapper::getNormedHBEFA_FuelConsumption(), and TraCIServerAPI_Lane::processGet().

SUMOReal MSLane::getHBEFA_HCEmissions ( ) const throw () [inherited]

Returns the sum of last step HC emissions.

Returns:
HC emissions of vehicles on this lane during the last step

Definition at line 1256 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), and SUMOReal.

Referenced by GUILaneWrapper::getNormedHBEFA_HCEmissions(), and TraCIServerAPI_Lane::processGet().

SUMOReal MSLane::getHBEFA_NOxEmissions ( ) const throw () [inherited]

Returns the sum of last step NOx emissions.

Returns:
NOx emissions of vehicles on this lane during the last step

Definition at line 1244 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), and SUMOReal.

Referenced by GUILaneWrapper::getNormedHBEFA_NOxEmissions(), and TraCIServerAPI_Lane::processGet().

SUMOReal MSLane::getHBEFA_PMxEmissions ( ) const throw () [inherited]

Returns the sum of last step PMx emissions.

Returns:
PMx emissions of vehicles on this lane during the last step

Definition at line 1232 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), and SUMOReal.

Referenced by GUILaneWrapper::getNormedHBEFA_PMxEmissions(), and TraCIServerAPI_Lane::processGet().

const std::string& Named::getID ( ) const [inline, inherited]

Returns the id.

Returns:
The stored id

Reimplemented in MS_E2_ZS_CollectorOverLanes.

Definition at line 59 of file Named.h.

References Named::myID.

Referenced by RORouteDef_Alternatives::addAlternative(), MSNet::addBusStop(), NLHandler::addConnection(), NBLoadedSUMOTLDef::addConnection(), NIImporter_OpenDrive::addE2EConnectionsSecure(), NIImporter_SUMO::addPhase(), NBDistrict::addSink(), NBDistrict::addSource(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), NIVisumTL::build(), RORouteDef_Complete::buildCurrentRoute(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), NBEdge::buildInnerEdges(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), ODDistrictHandler::closeDistrict(), NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBEdge::connections_sorter(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSVTypeProbe::execute(), Command_SaveTLSSwitches::execute(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), MSNet::getBusStopID(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), MSUnboundActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NIImporter_SUMO::initTrafficLightLogic(), NBNodeCont::joinJunctions(), NBEdgeCont::joinSameNodeConnectingEdges(), NIImporter_OpenDrive::loadNetwork(), MSLane::moveCritical(), MSVehicle::MSVehicle(), NBLoadedTLDef::myCompute(), NIXMLEdgesHandler::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), Named::ComparatorIdLess::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(), NBLoadedTLDef::SignalGroup::patchTYellow(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_InductionLoop::processGet(), NWWriter_SUMO::prohibitionConnection(), NBNodeCont::remapEdge(), NBLoadedSUMOTLDef::removeConnection(), NBNode::removeDummyEdges(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBConnection::replaceFrom(), NBConnection::replaceTo(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), MSLane::setCritical(), NBOwnTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), RORDLoader_SUMOBase::startRoute(), NIXMLConnectionsHandler::validateLaneInfo(), MSInstantInductLoop::write(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), and MSRouteProbe::writeXMLOutput().

const std::vector<IncomingLaneInfo>& MSLane::getIncomingLanes ( ) const [inline, inherited]
MSVehicle * MSLane::getLastVehicle ( ) const [virtual, inherited]
std::pair< MSVehicle *, SUMOReal > MSLane::getLastVehicleInformation ( ) const throw () [inherited]

Returns the last vehicle which is still on the lane.

The information about the last vehicle in this lane's que is returned. If there is no such vehicle, the information about the vehicle which laps into this lane is returned. If there is no such vehicle, the first returned member is 0.

Returns:
Information about the last vehicle and it's back position

Definition at line 603 of file MSLane.cpp.

References MSVehicleType::getLengthWithGap(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), MSLane::myInlappingVehicle, MSLane::myInlappingVehicleEnd, MSLane::myVehicles, and SUMOReal.

Referenced by MSVehicle::vsafeCriticalCont().

std::pair< MSVehicle *const, SUMOReal > MSLane::getLeaderOnConsecutive ( SUMOReal  dist,
SUMOReal  seen,
SUMOReal  speed,
const MSVehicle &  veh,
const std::vector< MSLane * > &  bestLaneConts 
) const throw () [inherited]

Returns the leader and the distance to him.

Goes along the vehicle's estimated used lanes (bestLaneConts). For each link, it is determined whether the vehicle will pass it. If so, the subsequent lane is investigated. If a vehicle (leader) is found, it is returned, together with the length of the investigated lanes until this vehicle's end, including the already seen place (seen).

If no leading vehicle was found, <0, -1> is returned.

Pretty slow, as it has to go along lanes.

Todo:
: There are some oddities:
  • what about crossing a link at red, or if a link is closed? Has a following vehicle to be regarded or not?
Parameters:
[in]distThe distance to investigate
[in]seenThe already seen place (normally the place in front on own lane)
[in]speedThe speed of the vehicle used for determining whether a subsequent link will be opened at arrival time
[in]vehThe vehicle for which the information shall be computed
[in]bestLaneContsThe lanes the vehicle will use in future
Returns:

Definition at line 1076 of file MSLane.cpp.

References MSCFModel::brakeGap(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), MSNet::getInstance(), MSLane::getLastVehicle(), MSLane::getLength(), MSLane::getMaxSpeed(), MSLane::getPartialOccupator(), MSLane::getPartialOccupatorEnd(), MSLane::isLinkEnd(), LINKSTATE_TL_RED, MSLane::succLinkSec(), and TIME2STEPS.

Referenced by MSCFModel_PWag2009::moveHelper().

MSLane * MSLane::getLeftLane ( ) const [inherited]

Definition at line 949 of file MSLane.cpp.

References MSEdge::leftLane(), and MSLane::myEdge.

MSLane * MSLane::getLogicalPredecessorLane ( ) const throw () [inherited]
SUMOReal MSLane::getMeanSpeed ( ) const throw () [inherited]

Returns the mean speed on this lane.

Returns:
The average speed of vehicles during the last step; default speed if no vehicle was on this lane

Definition at line 1192 of file MSLane.cpp.

References MSLane::getVehiclesSecure(), MSLane::myMaxSpeed, MSLane::myVehicles, MSLane::releaseVehicles(), and SUMOReal.

Referenced by TraCIServerAPI_Lane::processGet().

const std::vector< MSMoveReminder* >& MSLane::getMoveReminders ( ) const throw () [inline, inherited]

Return the list of this lane's move reminders.

Returns:
Previously added move reminder

Definition at line 156 of file MSLane.h.

References MSLane::myMoveReminders.

Referenced by MSVehicle::enterLaneAtLaneChange().

const SUMOVehicleClasses& MSLane::getNotAllowedClasses ( ) const throw () [inline, inherited]

Returns vehicle classes explicitly disallowed on this lane.

Returns:
This lane's disallowed vehicle classes

Definition at line 360 of file MSLane.h.

References MSLane::myNotAllowedClasses.

Referenced by GUILaneWrapper::getColorValue(), and TraCIServerAPI_Lane::processGet().

size_t MSLane::getNumericalID ( ) const throw () [inline, inherited]

Returns this lane's numerical id.

Returns:
This lane's numerical id

Definition at line 320 of file MSLane.h.

References MSLane::myNumericalID.

SUMOReal MSLane::getOccupancy ( ) const throw () [inherited]

Returns the occupancy of this lane during the last step.

Returns:
The occupancy during the last step

Definition at line 1180 of file MSLane.cpp.

References MSLane::myLength, and MSLane::myVehicleLengthSum.

Referenced by GUILaneWrapper::getColorValue(), and TraCIServerAPI_Lane::processGet().

MSVehicle* MSLane::getPartialOccupator ( ) const throw () [inline, inherited]

Returns the vehicle which laps into this lane.

Returns:
The vehicle which laps into this lane, 0 if there is no such

Definition at line 258 of file MSLane.h.

References MSLane::myInlappingVehicle.

Referenced by MSVehicle::checkRewindLinkLanes(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getRealLeader(), MSLaneChanger::getRealThisLeader(), MSLane::isInsertionSuccess(), and MSE2Collector::by_vehicle_position_sorter::operator()().

SUMOReal MSLane::getPartialOccupatorEnd ( ) const throw () [inline, inherited]

Returns the position of the in-lapping vehicle's end.

Returns:
Information about how far the vehicle laps into this lane

Definition at line 266 of file MSLane.h.

References MSLane::myInlappingVehicleEnd.

Referenced by MSVehicle::checkRewindLinkLanes(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getRealLeader(), and MSLaneChanger::getRealThisLeader().

MSLane * MSLane::getRightLane ( ) const [inherited]

Definition at line 955 of file MSLane.cpp.

References MSLane::myEdge, and MSEdge::rightLane().

unsigned int MSLane::getVehicleNumber ( ) const throw () [inline, inherited]

Returns the number of vehicles on this lane.

Returns:
The number of vehicles on this lane

Definition at line 290 of file MSLane.h.

References MSLane::myVehicles.

Referenced by MSVehicle::checkRewindLinkLanes(), MSEdge::getFreeLane(), and TraCIServerAPI_Lane::processGet().

const MSLane::VehCont & GUIInternalLane::getVehiclesSecure ( ) const throw () [virtual]

Returns the vehicles container; locks it for microsimulation.

Locks "myLock" preventing usage by microsimulation.

Please note that it is necessary to release the vehicles container afterwards using "releaseVehicles".

Returns:
The vehicles on this lane
See also:
MSLane::getVehiclesSecure

Reimplemented from MSLane.

Definition at line 86 of file GUIInternalLane.cpp.

References MFXMutex::lock(), myLock, and MSLane::myVehicles.

SUMOReal MSLane::getVehLenSum ( ) const throw () [inherited]

Returns the sum of lengths of vehicles which were on the lane during the last step.

Returns:
The sum of vehicle lengths of vehicles in the last step

Definition at line 1186 of file MSLane.cpp.

References MSLane::myVehicleLengthSum.

Referenced by MSVehicle::checkRewindLinkLanes().

SUMOReal MSLane::getWidth ( ) const throw () [inline, inherited]
void GUIInternalLane::incorporateVehicle ( MSVehicle *  veh,
SUMOReal  pos,
SUMOReal  speed,
const MSLane::VehCont::iterator &  at,
MSMoveReminder::Notification  notification = MSMoveReminder::NOTIFICATION_DEPARTED 
) throw (ProcessError) [protected, virtual]

Inserts the vehicle into this lane, and informs it about entering the network.

Calls the vehicles enterLaneAtInsertion function, updates statistics and modifies the active state as needed

Parameters:
[in]vehThe vehicle to be incorporated
[in]posThe position of the vehicle
[in]speedThe speed of the vehicle
[in]at
[in]notificationThe cause of insertion (i.e. departure, teleport, parking) defaults to departure
See also:
MSLane::incorporateVehicle

Reimplemented from MSLane.

Definition at line 70 of file GUIInternalLane.cpp.

References MSLane::incorporateVehicle().

void MSLane::initialize ( MSLinkCont *  succs) [inherited]

Delayed initialization (deprecated)

Not all lane-members are known at the time the lane is born, above all the pointers to other lanes, so we have to initialize later.

Parameters:
[in]succsThe list of (outgoing) links
Todo:
Why are succs not const?

Definition at line 93 of file MSLane.cpp.

References MSLane::myLinks.

Referenced by NLSucceedingLaneBuilder::closeSuccLane().

void MSLane::insertIDs ( std::vector< std::string > &  into) throw () [static, inherited]

Definition at line 786 of file MSLane.cpp.

Referenced by TraCIServerAPI_Lane::processGet().

bool MSLane::insertVehicle ( MSVehicle &  v) throw (ProcessError) [inherited]

Tries to insert the given vehicle.

The insertion position and speed are determined in dependence to the vehicle's departure definition, first.

Then, the vehicle is tried to be inserted into the lane using these values by a call to "isInsertionSuccess". The result of "isInsertionSuccess" is returned.

Parameters:
[in]vThe vehicle to insert
Returns:
Whether the vehicle could be inserted
See also:
isInsertionSuccess
MSVehicle::getDepartureDefinition
MSVehicle::DepartArrivalDefinition

Definition at line 317 of file MSLane.cpp.

References DEPART_POS_BASE, DEPART_POS_DEFAULT, DEPART_POS_FREE, DEPART_POS_GIVEN, DEPART_POS_MAX_SPEED_GAP, DEPART_POS_PWAG_GENERIC, DEPART_POS_PWAG_SIMPLE, DEPART_POS_RANDOM, DEPART_POS_RANDOM_FREE, DEPART_SPEED_DEFAULT, DEPART_SPEED_GIVEN, DEPART_SPEED_MAX, DEPART_SPEED_RANDOM, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosProcedure, SUMOVehicleParameter::departSpeed, SUMOVehicleParameter::departSpeedProcedure, MAX2(), MIN2(), POSITION_EPS, RandHelper::rand(), and SUMOReal.

Referenced by MSEdge::insertVehicle().

bool GUIInternalLane::integrateNewVehicle ( SUMOTime  t) [virtual]

the same as in MSLane, but locks the access for the visualisation first; the access will be granted at the end of this method

Reimplemented from MSLane.

Definition at line 154 of file GUIInternalLane.cpp.

References MFXMutex::lock(), myLock, and MFXMutex::unlock().

bool MSLane::isApproachedFrom ( MSEdge *const  edge,
MSLane *const  lane 
) [inherited]

Definition at line 1008 of file MSLane.cpp.

References MSLane::myApproachingLanes.

bool MSLane::isApproachedFrom ( MSEdge *const  edge) [inherited]

Definition at line 1002 of file MSLane.cpp.

References MSLane::myApproachingLanes.

bool MSLane::isInsertionSuccess ( MSVehicle *  vehicle,
SUMOReal  speed,
SUMOReal  pos,
bool  recheckNextLanes,
MSMoveReminder::Notification  notification = MSMoveReminder::NOTIFICATION_DEPARTED 
) throw (ProcessError) [virtual, inherited]

Tries to insert the given vehicle with the given state (speed and pos)

Checks whether the vehicle can be inserted at the given position with the given speed so that no collisions with leader/follower occur and the speed does not cause unexpected behaviour on consecutive lanes. Returns false if the vehicle can not be inserted.

If the insertion can take place, incorporateVehicleis called and true is returned.

Parameters:
[in]vehicleThe vehicle to insert
[in]speedThe speed with which it shall be inserted
[in]posThe position at which it shall be inserted
[in]recheckNextLanesForces patching the speed for not being too fast on next lanes
[in]notificationThe cause of insertion (i.e. departure, teleport, parking) defaults to departure
Returns:
Whether the vehicle could be inserted
See also:
MSVehicle::enterLaneAtInsertion

Definition at line 389 of file MSLane.cpp.

References MSRoute::begin(), MSCFModel::brakeGap(), MSCFModel::followSpeed(), MSCFModel::freeSpeed(), MSVehicle::gap(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), MSNet::getInstance(), MSLane::getLastVehicle(), MSLane::getLength(), MSVehicleType::getLengthWithGap(), MSCFModel::getMaxDecel(), MSLane::getMaxSpeed(), MSLane::getPartialOccupator(), MSVehicle::getPositionOnLane(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSLane::isLinkEnd(), LINKSTATE_TL_RED, MIN2(), SPEED2DIST, MSLane::succLinkSec(), SUMOReal, TIME2STEPS, and WRITE_ERROR.

Referenced by MSVehicleTransfer::checkInsertions().

bool MSLane::isLinkEnd ( MSLinkCont::const_iterator &  i) const [inherited]

Returns the information whether the given link shows at the end of the list of links (is not valid)

Definition at line 818 of file MSLane.cpp.

References MSLane::myLinks.

Referenced by MSLane::getLeaderOnConsecutive(), MSLaneChanger::getRealThisLeader(), MSLane::isInsertionSuccess(), and MSVehicle::vsafeCriticalCont().

bool MSLane::isLinkEnd ( MSLinkCont::iterator &  i) [inherited]

Returns the information whether the given link shows at the end of the list of links (is not valid)

Definition at line 824 of file MSLane.cpp.

References MSLane::myLinks.

void MSLane::leftByLaneChange ( MSVehicle *  v) [inherited]
bool MSLane::maxSpeedGapInsertion ( MSVehicle &  veh,
SUMOReal  mspeed 
) throw () [inherited]
bool GUIInternalLane::moveCritical ( SUMOTime  t) [virtual]

the same as in MSLane, but locks the access for the visualisation first; the access will be granted at the end of this method

Reimplemented from MSInternalLane.

Definition at line 99 of file GUIInternalLane.cpp.

References MFXMutex::lock(), myLock, and MFXMutex::unlock().

bool MSLane::pWagGenericInsertion ( MSVehicle &  veh,
SUMOReal  speed,
SUMOReal  maxPos,
SUMOReal  minPos 
) throw () [inherited]
bool MSLane::pWagSimpleInsertion ( MSVehicle &  veh,
SUMOReal  speed,
SUMOReal  maxPos,
SUMOReal  minPos 
) throw () [inherited]
void GUIInternalLane::releaseVehicles ( ) const throw () [virtual]

Allows to use the container for microsimulation again.

Unlocks "myLock" preventing usage by microsimulation.

See also:
MSLane::releaseVehicles

Reimplemented from MSLane.

Definition at line 93 of file GUIInternalLane.cpp.

References myLock, and MFXMutex::unlock().

MSVehicle * GUIInternalLane::removeVehicle ( MSVehicle *  remVehicle) [virtual]

Reimplemented from MSLane.

Definition at line 127 of file GUIInternalLane.cpp.

References MFXMutex::lock(), myLock, and MFXMutex::unlock().

void MSLane::resetPartialOccupation ( MSVehicle *  v) throw () [inherited]

Removes the information about a vehicle lapping into this lane.

Parameters:
[in]vThe vehicle which laps into this lane

Definition at line 594 of file MSLane.cpp.

Referenced by MSVehicle::moveChecked().

void MSLane::setAllowedClasses ( const SUMOVehicleClasses &  classes) throw () [inline, inherited]

Definition at line 488 of file MSLane.h.

References MSLane::myAllowedClasses.

Referenced by TraCIServerAPI_Lane::processSet().

bool GUIInternalLane::setCritical ( SUMOTime  t,
std::vector< MSLane * > &  into 
) [virtual]

the same as in MSLane, but locks the access for the visualisation first; the access will be granted at the end of this method

Reimplemented from MSLane.

Definition at line 113 of file GUIInternalLane.cpp.

References MFXMutex::lock(), myLock, and MFXMutex::unlock().

void Named::setID ( const std::string &  newID) [inline, inherited]

resets the id

Definition at line 65 of file Named.h.

References Named::myID.

void MSLane::setLength ( SUMOReal  val) throw () [inline, inherited]

Definition at line 413 of file MSLane.h.

References MSLane::myLength.

Referenced by TraCIServerAPI_Lane::processSet().

void MSLane::setMaxSpeed ( SUMOReal  val) throw () [inline, inherited]

Definition at line 409 of file MSLane.h.

References MSLane::myMaxSpeed.

Referenced by TraCIServerAPI_Lane::processSet().

void MSLane::setNotAllowedClasses ( const SUMOVehicleClasses &  classes) throw () [inline, inherited]

Definition at line 493 of file MSLane.h.

References MSLane::myNotAllowedClasses.

Referenced by TraCIServerAPI_Lane::processSet().

void MSInternalLane::setParentJunctionInformation ( MSLogicJunction::InnerState *const  foescont,
unsigned int  foesIdx 
) throw () [inherited]

Sets the information where to report vehicles being on this lane to.

In addition to a lane's normal initialization (MSLane::initialize), an internal lane needs to know which junction has to be informed about a vehicle being on the internal lane. This information is set herein.

Parameters:
[in]foescontThe junction inner state to set information about vehicles into
[in]foesIdxThis lane's index within this state

Definition at line 70 of file MSInternalLane.cpp.

Referenced by MSRightOfWayJunction::postloadInit(), and MSNoLogicJunction::postloadInit().

SUMOReal MSLane::setPartialOccupation ( MSVehicle *  v,
SUMOReal  leftVehicleLength 
) throw () [inherited]

Sets the information about a vehicle lapping into this lane.

The given left length of vehicle which laps into this lane is used to determine the vehicle's end position in regard to this lane's length. This information is set into myInlappingVehicleState; additionally, the vehicle pointer is stored in myInlappingVehicle; Returns this lane's length for subtracting it from the left vehicle length.

Parameters:
[in]vThe vehicle which laps into this lane
[in]leftVehicleLengthThe distance the vehicle laps into this lane
Returns:
This lane's length

Definition at line 582 of file MSLane.cpp.

void MSInternalLane::setPassPosition ( SUMOReal  passPos) throw () [inherited]

Sets the position that must be free so that vehicles can pass.

Todo:
!!! incomplete usage; check

Definition at line 78 of file MSInternalLane.cpp.

MSLinkCont::const_iterator MSLane::succLinkSec ( const SUMOVehicle &  veh,
unsigned int  nRouteSuccs,
const MSLane &  succLinkSource,
const std::vector< MSLane * > &  conts 
) const [virtual, inherited]

Same as succLink, but does not throw any assertions when the succeeding link could not be found; Returns the myLinks.end() instead; Further, the number of edges to look forward may be given

Definition at line 848 of file MSLane.cpp.

References MSEdge::allowedLanes(), MSVehicleType::getVehicleClass(), SUMOVehicle::getVehicleType(), MSLane::myLinks, and SUMOVehicle::succEdge().

Referenced by MSLane::appropriate(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getRealThisLeader(), MSLane::isInsertionSuccess(), and MSVehicle::setBlinkerInformation().

void GUIInternalLane::swapAfterLaneChange ( SUMOTime  t) [protected, virtual]

moves myTmpVehicles int myVehicles after a lane change procedure

Reimplemented from MSLane.

Definition at line 141 of file GUIInternalLane.cpp.

References MFXMutex::lock(), myLock, and MFXMutex::unlock().


Friends And Related Function Documentation

friend class GUILaneWrapper [friend, inherited]

Definition at line 77 of file MSLane.h.

Referenced by GUILane::buildLaneWrapper(), and buildLaneWrapper().

friend class MSLaneChanger [friend, inherited]

needs access to myTmpVehicles (this maybe should be done via SUMOReal-buffering!!!)

Definition at line 75 of file MSLane.h.

friend class MSXMLRawOut [friend, inherited]

Definition at line 79 of file MSLane.h.


Field Documentation

The list of allowed vehicle classes.

Definition at line 675 of file MSLane.h.

Referenced by MSLane::allowsVehicleClass(), MSLane::getAllowedClasses(), and MSLane::setAllowedClasses().

std::map<MSEdge*, std::vector<MSLane*> > MSLane::myApproachingLanes [protected, inherited]

Definition at line 701 of file MSLane.h.

Referenced by MSLane::addApproachingLane(), and MSLane::isApproachedFrom().

SUMOReal MSLane::myBackDistance [protected, inherited]

Definition at line 666 of file MSLane.h.

MSLane::DictType MSLane::myDict [static, protected, inherited]

Static dictionary to associate string-ids with objects.

Definition at line 709 of file MSLane.h.

Referenced by MSLane::clear(), MSLane::dictionary(), and MSLane::dictSize().

MSEdge* MSLane::myEdge [protected, inherited]

The lane's edge, for routing only.

Definition at line 656 of file MSLane.h.

Referenced by MSLane::appropriate(), MSLane::getEdge(), MSLane::getLeftLane(), MSLane::getLogicalPredecessorLane(), and MSLane::getRightLane().

MSVehicle* MSLane::myInlappingVehicle [protected, inherited]

The vehicle which laps into this lane.

Definition at line 691 of file MSLane.h.

Referenced by MSLane::getLastVehicleInformation(), and MSLane::getPartialOccupator().

SUMOReal MSLane::myInlappingVehicleEnd [protected, inherited]

End position of a vehicle which laps into this lane.

Definition at line 688 of file MSLane.h.

Referenced by MSLane::getLastVehicleInformation(), and MSLane::getPartialOccupatorEnd().

SUMOReal MSLane::myLeftVehLength [protected, inherited]

Not yet seen vehicle lengths.

Definition at line 695 of file MSLane.h.

Referenced by MSLane::moveCritical().

SUMOReal MSLane::myLength [protected, inherited]

Lane length [m].

Definition at line 650 of file MSLane.h.

Referenced by MSLane::getLength(), MSLane::getOccupancy(), MSLane::moveCritical(), and MSLane::setLength().

MSLinkCont MSLane::myLinks [protected, inherited]

The lane's Links to it's succeeding lanes and the default right-of-way rule, i.e. blocked or not blocked.

Definition at line 699 of file MSLane.h.

Referenced by MSLane::addLink(), MSLane::appropriate(), MSLane::getLinkCont(), MSLane::initialize(), MSLane::isLinkEnd(), MSLane::succLinkSec(), and MSLane::~MSLane().

MFXMutex GUIInternalLane::myLock [mutable, private]

The mutex used to avoid concurrent updates of the vehicle buffer.

Definition at line 154 of file GUIInternalLane.h.

Referenced by detectCollisions(), getVehiclesSecure(), integrateNewVehicle(), moveCritical(), releaseVehicles(), removeVehicle(), setCritical(), swapAfterLaneChange(), and ~GUIInternalLane().

MSLane* MSLane::myLogicalPredecessorLane [mutable, protected, inherited]

Definition at line 681 of file MSLane.h.

Referenced by MSLane::getLogicalPredecessorLane().

SUMOReal MSLane::myMaxSpeed [protected, inherited]

Lane-wide speedlimit [m/s].

Definition at line 659 of file MSLane.h.

Referenced by MSLane::getMaxSpeed(), MSLane::getMeanSpeed(), and MSLane::setMaxSpeed().

The list of disallowed vehicle classes.

Definition at line 678 of file MSLane.h.

Referenced by MSLane::allowsVehicleClass(), MSLane::getNotAllowedClasses(), and MSLane::setNotAllowedClasses().

size_t MSLane::myNumericalID [protected, inherited]

Unique numerical ID (set on reading by netload)

Definition at line 638 of file MSLane.h.

Referenced by MSLane::getNumericalID().

The shape of the lane.

Definition at line 477 of file MSLane.h.

Referenced by GUILane::buildLaneWrapper(), buildLaneWrapper(), and MSLane::getShape().

VehCont MSLane::myTmpVehicles [protected, inherited]

Container for lane-changing vehicles. After completion of lane-change- process, the two containers will be swapped.

Definition at line 663 of file MSLane.h.

Referenced by MSLane::swapAfterLaneChange().

std::vector<MSVehicle*> MSLane::myVehBuffer [protected, inherited]

Vehicle-buffer for vehicle that was put onto this lane by a junction. The buffer is necessary, because of competing push- and pop-operations on myVehicles during Junction::moveFirst()

Definition at line 672 of file MSLane.h.

Referenced by MSLane::empty(), MSLane::integrateNewVehicle(), and MSLane::setCritical().

VehCont MSLane::myVehicles [protected, inherited]

The lane's vehicles. The entering vehicles are inserted at the front of this container and the leaving ones leave from the back, e.g. the vehicle in front of the junction (often called first) is myVehicles.back() (if it exists). And if it is an iterator at a vehicle, ++it points to the vehicle in front. This is the interaction vehicle.

Definition at line 647 of file MSLane.h.

Referenced by MSLane::detectCollisions(), MSLane::empty(), GUILaneWrapper::firstWaitingTime(), MSLane::getFirstVehicle(), MSLane::getLastVehicle(), MSLane::getLastVehicleInformation(), MSLane::getMeanSpeed(), MSLane::getVehicleNumber(), MSLane::getVehiclesSecure(), GUILane::getVehiclesSecure(), getVehiclesSecure(), MSLane::integrateNewVehicle(), MSLane::moveCritical(), MSInternalLane::moveCritical(), MSLane::removeVehicle(), MSLane::setCritical(), and MSLane::swapAfterLaneChange().

SUMOReal MSLane::myWidth [protected, inherited]

Lane width [m].

Definition at line 653 of file MSLane.h.

Referenced by MSLane::getWidth().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines