Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
MSLane Class Reference

Representation of a lane in the micro simulation. More...

#include <MSLane.h>

Inheritance diagram for MSLane:
[legend]
Collaboration diagram for MSLane:
[legend]

Data Structures

class  AnyVehicleIterator
 AnyVehicleIterator is a structure, which manages the iteration through all vehicles on the lane, that may be of importance for the car-following dynamics along that lane. The relevant types of vehicles are: 1) vehicles with their front on the lane (myVehicles), 2) vehicles intersecting the lane but with front on another lane (myPartialVehicles). More...
class  by_connections_to_sorter
 Sorts edges by their angle relative to the given edge (straight comes first). More...
class  edge_finder
class  incoming_lane_priority_sorter
 Sorts lanes (IncomingLaneInfos) by their priority or, if this doesn't apply, wrt. the angle difference magnitude relative to the target lane's angle (straight comes first). More...
struct  IncomingLaneInfo
class  outgoing_lane_priority_sorter
 Sorts lanes (their origin link) by the priority of their noninternal target edges or, if this doesn't yield an unambiguous result, wrt. the angle difference magnitude relative to the target lane's angle (straight comes first). More...
class  StoringVisitor
class  vehicle_natural_position_sorter
class  vehicle_position_sorter
 Sorts vehicles by their position (descending). More...

Public Types

enum  CollisionAction { COLLISION_ACTION_NONE , COLLISION_ACTION_WARN , COLLISION_ACTION_TELEPORT , COLLISION_ACTION_REMOVE }
typedef std::map< std::string, std::string > Map
 parameters map
enum  MinorLinkMode { FOLLOW_NEVER = 0 , FOLLOW_ALWAYS = 1 , FOLLOW_ONCOMING = 2 }
 determine whether/how getFollowers looks upstream beyond minor links More...
typedef std::vector< MSVehicle * > VehCont
 Container for vehicles.

Public Member Functions

void addApproachingLane (MSLane *lane, bool warnMultiCon)
void addIncomingLane (MSLane *lane, MSLink *viaLink)
void addLeaders (const MSVehicle *vehicle, double vehPos, MSLeaderDistanceInfo &result, bool oppositeDirection=false)
 get leaders for ego on the given lane
void addParking (MSBaseVehicle *veh)
 add parking vehicle. This should only used during state loading
void addTo (const StoringVisitor &cont) const
 Adds this object to the given container.
bool allowsChangingLeft (SUMOVehicleClass vclass) const
 Returns whether the given vehicle class may change left from this lane.
bool allowsChangingRight (SUMOVehicleClass vclass) const
 Returns whether the given vehicle class may change left from this lane.
bool allowsVehicleClass (SUMOVehicleClass vclass) const
bool allowsVehicleClass (SUMOVehicleClass vclass, int routingMode) const
virtual bool appropriate (const MSVehicle *veh) const
void changeLanes (const SUMOTime time)
void checkBufferType ()
void clearParameter ()
 Clears the parameter map.
virtual void detectCollisions (SUMOTime timestep, const std::string &stage)
 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)
MSLanegetBidiLane () const
 retrieve bidirectional lane or nullptr
MSLanegetCanonicalPredecessorLane () const
MSLanegetCanonicalSuccessorLane () const
double getCenterOnEdge () const
std::pair< MSVehicle *const, double > getCriticalLeader (double dist, double seen, double speed, const MSVehicle &veh) const
 Returns the most dangerous leader and the distance to him.
int getCrossingIndex () const
 return the index of the link to the next crossing if this is walkingArea, else -1
double getDouble (const std::string &key, const double defaultValue) const
 Returns the value for a given key converted to a double.
MSEdgegetEdge () const
 Returns the lane's edge.
const MSLinkgetEntryLink () const
 Returns the entry link if this is an internal lane, else nullptr.
MSVehiclegetFirstAnyVehicle () const
 returns the first vehicle that is fully or partially on this lane
MSVehiclegetFirstFullVehicle () const
 returns the first vehicle for which this lane is responsible or 0
const MSLanegetFirstInternalInConnection (double &offset) const
 Returns 0 if the lane is not internal. Otherwise the first part of the connection (sequence of internal lanes along junction) corresponding to the lane is returned and the offset is set to the distance of the begin of this lane to the begin of the returned.
std::pair< MSVehicle *const, double > getFollower (const MSVehicle *ego, double egoPos, double dist, MinorLinkMode mLinkMode) const
 Find follower vehicle for the given ego vehicle (which may be on the opposite direction lane).
MSLeaderDistanceInfo getFollowersOnConsecutive (const MSVehicle *ego, double backOffset, bool allSublanes, double searchDist=-1, MinorLinkMode mLinkMode=FOLLOW_ALWAYS) const
 return the sublane followers with the largest missing rear gap among all predecessor lanes (within dist)
const std::string & getID () const
 Returns the id.
const std::vector< IncomingLaneInfo > & getIncomingLanes () const
LinkState getIncomingLinkState () const
 get the state of the link from the logical predecessor to this lane
const MSLanegetInternalFollowingLane (const MSLane *const) const
 returns the internal lane leading to the given lane or nullptr, if there is none
const StopOffsetgetLaneStopOffsets () const
 Returns vehicle class specific stopOffsets.
MSVehiclegetLastAnyVehicle () const
 returns the last vehicle that is fully or partially on this lane
MSVehiclegetLastFullVehicle () const
 returns the last vehicle for which this lane is responsible or 0
std::pair< MSVehicle *const, double > getLeader (const MSVehicle *veh, const double vehPos, const std::vector< MSLane * > &bestLaneConts, double dist=-1, bool checkTmpVehicles=false) const
 Returns the immediate leader of veh and the distance to veh starting on this lane.
std::pair< MSVehicle *const, double > getLeaderOnConsecutive (double dist, double seen, double speed, const MSVehicle &veh, const std::vector< MSLane * > &bestLaneConts, bool considerCrossingFoes=true) const
 Returns the immediate leader and the distance to him.
void getLeadersOnConsecutive (double dist, double seen, double speed, const MSVehicle *ego, const std::vector< MSLane * > &bestLaneConts, MSLeaderDistanceInfo &result, bool oppositeDirection=false) const
 Returns the immediate leaders and the distance to them (as getLeaderOnConsecutive but for the sublane case).
const std::vector< MSLink * > & getLinkCont () const
 returns the container with all links !!!
const MSLinkgetLinkTo (const MSLane *const) const
 returns the link to the given lane or nullptr, if it is not connected
MSLanegetLogicalPredecessorLane () const
 get the most likely precedecessor lane (sorted using by_connections_to_sorter). The result is cached in myLogicalPredecessorLane
MSLanegetLogicalPredecessorLane (const MSEdge &fromEdge) const
 return the (first) predecessor lane from the given edge
double getMaximumBrakeDist () const
 compute maximum braking distance on this lane
double getMissingRearGap (const MSVehicle *leader, double backOffset, double leaderSpeed) const
 return by how much further the leader must be inserted to avoid rear end collisions
const MSEdgegetNextNormal () const
 Returns the lane's follower if it is an internal lane, the edge of the lane otherwise.
std::vector< const MSLane * > getNormalIncomingLanes () const
 get the list of all direct (disregarding internal predecessors) non-internal predecessor lanes of this lane
const MSLanegetNormalPredecessorLane () const
 get normal lane leading to this internal lane, for normal lanes, the lane itself is returned
const MSLanegetNormalSuccessorLane () const
 get normal lane following this internal lane, for normal lanes, the lane itself is returned
MSLanegetOpposite () const
 return the neighboring opposite direction lane for lane changing or nullptr
std::pair< MSVehicle *const, double > getOppositeFollower (const MSVehicle *ego) const
std::pair< MSVehicle *const, double > getOppositeLeader (const MSVehicle *ego, double dist, bool oppositeDir, MinorLinkMode mLinkMode=MinorLinkMode::FOLLOW_NEVER) const
double getOppositePos (double pos) const
 return the corresponding position on the opposite lane
const std::vector< std::pair< const MSLane *, const MSEdge * > > getOutgoingViaLanes () const
 get the list of outgoing lanes
const PositionVectorgetOutlineShape () const
MSLanegetParallelLane (int offset, bool includeOpposite=true) const
 Returns the lane with the given offset parallel to this one or 0 if it does not exist.
MSLanegetParallelOpposite () const
 return the opposite direction lane of this lanes edge or nullptr
virtual const std::string getParameter (const std::string &key, const std::string defaultValue="") const
 Returns the value for a given key.
const Parameterised::MapgetParametersMap () const
 Returns the inner key/value map.
std::string getParametersStr (const std::string kvsep="=", const std::string sep="|") const
 Returns the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN".
const std::set< const MSBaseVehicle * > & getParkingVehicles () const
 retrieve the parking vehicles (see GUIParkingArea)
MSVehiclegetPartialBehind (const MSVehicle *ego) const
MSLeaderInfo getPartialBeyond () const
 get all vehicles that are inlapping from consecutive edges
int getRightmostSublane () const
double getRightSideOnEdge () const
SumoRNGgetRNG () const
 return the associated RNG
int getRNGIndex () const
 returns the associated RNG index
double getSpaceTillLastStanding (const MSVehicle *ego, bool &foundStopped) const
 return the empty space up to the last standing vehicle or the empty space on the whole lane if no vehicle is standing
std::vector< StopWatch< std::chrono::nanoseconds > > & getStopWatch ()
std::set< MSVehicle * > getSurroundingVehicles (double startPos, double downstreamDist, double upstreamDist, std::shared_ptr< LaneCoverageInfo > checkedLanes) const
 Returns all vehicles closer than downstreamDist along the road network starting on the given position. Predecessor lanes are searched upstream for the given upstreamDistance.
int getThreadIndex () const
 returns the associated thread index
std::vector< const MSJunction * > getUpcomingJunctions (double pos, double range, const std::vector< MSLane * > &contLanes) const
 Returns all upcoming junctions within given range along the given (non-internal) continuation lanes measured from given position.
std::vector< const MSLink * > getUpcomingLinks (double pos, double range, const std::vector< MSLane * > &contLanes) const
 Returns all upcoming links within given range along the given (non-internal) continuation lanes measured from given position.
std::set< MSVehicle * > getVehiclesInRange (const double a, const double b) const
 Returns all vehicles on the lane overlapping with the interval [a,b].
double getVehicleStopOffset (const MSVehicle *veh) const
 Returns vehicle class specific stopOffset for the vehicle.
bool hadPermissionChanges () const
bool hasParameter (const std::string &key) const
 Returns whether the parameter is set.
bool hasPedestrians () const
 whether the lane has pedestrians on it
void initRestrictions ()
 initialized vClass-specific speed limits
bool isApproachedFrom (MSEdge *const edge)
bool isApproachedFrom (MSEdge *const edge, MSLane *const lane)
bool isCrossing () const
bool isEmpty () const
bool isInternal () const
bool isLinkEnd (std::vector< MSLink * >::const_iterator &i) const
bool isLinkEnd (std::vector< MSLink * >::iterator &i)
bool isNormal () const
virtual bool isSelected () const
 whether this lane is selected in the GUI
bool isWalkingArea () const
void leftByLaneChange (MSVehicle *v)
void mergeParameters (const Parameterised::Map &mapArg, const std::string separator=" ", bool uniqueValues=true)
 Adds or appends all given parameters from the map.
 MSLane (const std::string &id, double maxSpeed, double friction, double length, MSEdge *const edge, int numericalID, const PositionVector &shape, double width, SVCPermissions permissions, SVCPermissions changeLeft, SVCPermissions changeRight, int index, bool isRampAccel, const std::string &type, const PositionVector &outlineShape)
 Constructor.
bool mustCheckJunctionCollisions () const
 whether this lane must check for junction collisions
bool needsCollisionCheck () const
 short-circut collision check if nothing changed since the last check
std::pair< const MSPerson *, double > nextBlocking (double minPos, double minRight, double maxLeft, double stopTime=0, bool bidi=false) const
 This is just a wrapper around MSPModel::nextBlocking. You should always check using hasPedestrians before calling this method.
virtual void removeParking (MSBaseVehicle *veh)
 remove parking vehicle. This must be syncrhonized when running with GUI
virtual MSVehicleremoveVehicle (MSVehicle *remVehicle, MSMoveReminder::Notification notification, bool notify=true)
void requireCollisionCheck ()
 require another collision check due to relevant changes in the simulation
void resetPermissions (long long transientID)
void setChangeLeft (SVCPermissions permissions)
 Sets the permissions for changing to the left neighbour lane.
void setChangeRight (SVCPermissions permissions)
 Sets the permissions for changing to the right neighbour lane.
void setFrictionCoefficient (double val)
 Sets a new friction coefficient for the lane [to be later (used by TraCI and MSCalibrator)].
virtual void setID (const std::string &newID)
 resets the id
void setLaneStopOffset (const StopOffset &stopOffset)
 Set vehicle class specific stopOffsets.
void setLength (double val)
 Sets a new length for the lane (used by TraCI only).
void setMaxSpeed (double val, bool byVSS=false, bool byTraCI=false, double jamThreshold=-1)
 Sets a new maximum speed for the lane (used by TraCI and MSCalibrator).
virtual void setParameter (const std::string &key, const std::string &value)
 Sets a parameter.
void setParameters (const Parameterised &params)
 set the given key/value map in map<string, string> format
void setParameters (const std::vector< std::pair< std::string, std::string > > &params)
 set the given key/value vector in map<string, string> format
void setParametersStr (const std::string &paramsString, const std::string kvsep="=", const std::string sep="|")
 set the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN"
void setPermissions (SVCPermissions permissions, long long transientID)
 Sets the permissions to the given value. If a transientID is given, the permissions are recored as temporary.
void setRightSideOnEdge (double value, int rightmostSublane)
void sortManeuverReservations ()
 sorts myManeuverReservations
void sortPartialVehicles ()
 sorts myPartialVehicles
void unsetParameter (const std::string &key)
 Removes a parameter.
void updateParameters (const Parameterised::Map &mapArg)
 Adds or updates all given parameters from the map.
void visit (const MSLane::StoringVisitor &cont) const
 Callback for visiting the lane when traversing an RTree.
void writeParams (OutputDevice &device) const
 write Params in the given outputdevice
virtual ~MSLane ()
 Destructor.
Additional initialisation
void addLink (MSLink *link)
 Delayed initialization.
void setOpposite (MSLane *oppositeLane)
 Adds a neighbor to this lane.
void setBidiLane (MSLane *bidyLane)
 Adds the (overlapping) reverse direction lane to this lane.
Used by the GUI for secondary shape visualization
virtual void addSecondaryShape (const PositionVector &)
virtual double getLengthGeometryFactor (bool) const
virtual const PositionVectorgetShape (bool) const
interaction with MSMoveReminder
virtual void addMoveReminder (MSMoveReminder *rem, bool addToVehicles=true)
 Add a move-reminder to move-reminder container.
virtual void removeMoveReminder (MSMoveReminder *rem)
 Remove a move-reminder from move-reminder container.
const std::vector< MSMoveReminder * > & getMoveReminders () const
 Return the list of this lane's move reminders.
Vehicle insertion
bool insertVehicle (MSVehicle &v)
 Tries to insert the given vehicle.
bool isInsertionSuccess (MSVehicle *vehicle, double speed, double pos, double posLat, bool recheckNextLanes, MSMoveReminder::Notification notification)
 Tries to insert the given vehicle with the given state (speed and pos).
bool checkFailure (const MSVehicle *aVehicle, double &speed, double &dist, const double nspeed, const bool patchSpeed, const std::string errorMsg, InsertionCheck check) const
bool lastInsertion (MSVehicle &veh, double mspeed, double posLat, bool patchSpeed)
 inserts vehicle as close as possible to the last vehicle on this lane (or at the end of the lane if there is no leader)
bool freeInsertion (MSVehicle &veh, double speed, double posLat, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED)
 Tries to insert the given vehicle on any place.
void forceVehicleInsertion (MSVehicle *veh, double pos, MSMoveReminder::Notification notification, double posLat=0)
 Inserts the given vehicle at the given position.
Handling vehicles lapping into several lanes (-> partial occupation)

or which committed a maneuver that will lead them into another (sublane case -> maneuver reservations)

virtual double setPartialOccupation (MSVehicle *v)
 Sets the information about a vehicle lapping into this lane.
virtual void resetPartialOccupation (MSVehicle *v)
 Removes the information about a vehicle lapping into this lane.
virtual void setManeuverReservation (MSVehicle *v)
 Registers the lane change intentions (towards this lane) for the given vehicle.
virtual void resetManeuverReservation (MSVehicle *v)
 Unregisters a vehicle, which previously registered for maneuvering into this lane.
const MSLeaderInfo getLastVehicleInformation (const MSVehicle *ego, double latOffset, double minPos=0, bool allowCached=true) const
 Returns the last vehicles on the lane.
const MSLeaderInfo getFirstVehicleInformation (const MSVehicle *ego, double latOffset, bool onlyFrontOnLane, double maxPos=std::numeric_limits< double >::max(), bool allowCached=true) const
 analogue to getLastVehicleInformation but in the upstream direction
Access to vehicles
int getVehicleNumber () const
 Returns the number of vehicles on this lane (for which this lane is responsible).
int getVehicleNumberWithPartials () const
 Returns the number of vehicles on this lane (including partial occupators).
int getPartialVehicleNumber () const
 Returns the number of vehicles partially on this lane (for which this lane is not responsible).
virtual const VehContgetVehiclesSecure () const
 Returns the vehicles container; locks it for microsimulation.
AnyVehicleIterator anyVehiclesBegin () const
 begin iterator for iterating over all vehicles touching this lane in downstream direction
AnyVehicleIterator anyVehiclesEnd () const
 end iterator for iterating over all vehicles touching this lane in downstream direction
AnyVehicleIterator anyVehiclesUpstreamBegin () const
 begin iterator for iterating over all vehicles touching this lane in upstream direction
AnyVehicleIterator anyVehiclesUpstreamEnd () const
 end iterator for iterating over all vehicles touching this lane in upstream direction
virtual void releaseVehicles () const
 Allows to use the container for microsimulation again.
Atomar value getter
int getNumericalID () const
 Returns this lane's numerical id.
const PositionVectorgetShape () const
 Returns this lane's shape.
double getLengthGeometryFactor () const
 return shape.length() / myLength
bool isAccelLane () const
 return whether this lane is an acceleration lane
const std::string & getLaneType () const
 return the type of this lane
double interpolateLanePosToGeometryPos (double lanePos) const
const Position geometryPositionAtOffset (double offset, double lateralOffset=0) const
double interpolateGeometryPosToLanePos (double geometryPos) const
double getVehicleMaxSpeed (const SUMOTrafficObject *const veh) const
 Returns the lane's maximum speed, given a vehicle's speed limit adaptation.
double getVehicleMaxSpeed (const SUMOTrafficObject *const veh, double vehMaxSpeed) const
double getSpeedLimit () const
 Returns the lane's maximum allowed speed.
double getFrictionCoefficient () const
 Returns the lane's friction coefficient.
double getLength () const
 Returns the lane's length.
SVCPermissions getPermissions () const
 Returns the vehicle class permissions for this lane.
SVCPermissions getChangeLeft () const
 Returns the vehicle class permissions for changing to the left neighbour lane.
SVCPermissions getChangeRight () const
 Returns the vehicle class permissions for changing to the right neighbour lane.
double getWidth () const
 Returns the lane's width.
int getIndex () const
 Returns the lane's index.
Vehicle movement (longitudinal)
virtual void planMovements (const SUMOTime t)
 Compute safe velocities for all vehicles based on positions and speeds from the last time step. Also registers ApproachingVehicleInformation for all links.
virtual void setJunctionApproaches () const
 Register junction approaches for all vehicles after velocities have been planned.
void updateLeaderInfo (const MSVehicle *veh, VehCont::reverse_iterator &vehPart, VehCont::reverse_iterator &vehRes, MSLeaderInfo &ahead) const
 This updates the MSLeaderInfo argument with respect to the given MSVehicle. All leader-vehicles on the same edge, which are relevant for the vehicle (i.e. with position > vehicle's position) and not already integrated into the LeaderInfo, are integrated. The given iterators vehPart and vehRes give access to these vehicles which are either partial occupators or have issued a maneuver reservation for the lane (the latter occurs only for the sublane model).
virtual void executeMovements (const SUMOTime t)
 Executes planned vehicle movements with regards to right-of-way.
virtual void integrateNewVehicles ()
 Insert buffered vehicle into the real lane.
void markRecalculateBruttoSum ()
 Set a flag to recalculate the brutto (including minGaps) occupancy of this lane (used if mingap is changed).
void updateLengthSum ()
 updated current vehicle length sum (delayed to avoid lane-order-dependency)
Current state retrieval
double getMeanSpeed () const
 Returns the mean speed on this lane.
double getMeanSpeedBike () const
 get the mean speed of all bicycles on this lane
double getWaitingSeconds () const
 Returns the overall waiting time on this lane.
double getBruttoOccupancy () const
 Returns the brutto (including minGaps) occupancy of this lane during the last step.
double getNettoOccupancy () const
 Returns the netto (excluding minGaps) occupancy of this lane during the last step (including minGaps).
double getBruttoVehLenSum () const
 Returns the sum of lengths of vehicles, including their minGaps, which were on the lane during the last step.
template<PollutantsInterface::EmissionType ET>
double getEmissions () const
 Returns the sum of last step emissions The value is always per 1s, so multiply by step length if necessary.
double getHarmonoise_NoiseEmissions () const
 Returns the sum of last step noise emissions.
State saving/loading
void saveState (OutputDevice &out)
 Saves the state of this lane into the given stream.
void clearState ()
 Remove all vehicles before quick-loading state.
void loadState (const std::vector< SUMOVehicle * > &vehs)
 Loads the state of this segment with the given parameters.
bool hasApproaching () const

Static Public Member Functions

static bool areAttributesValid (const std::string &value, bool report=false, const std::string kvsep="=", const std::string sep="|")
 check if given string can be parsed to an attributes map "key1=value1|key2=value2|...|keyN=valueN" (used in generic datas)
static bool areParametersValid (const std::string &value, bool report=false, const std::string kvsep="=", const std::string sep="|")
 check if given string can be parsed to a parameters map "key1=value1|key2=value2|...|keyN=valueN"
static void clear ()
 Clears the dictionary.
static MSLanedictionary (const std::string &id)
 Returns the MSLane associated to the key id.
static bool dictionary (const std::string &id, MSLane *lane)
 Static (sic!) container methods {.
static int dictSize ()
 Returns the number of stored lanes.
template<class RTREE>
static void fill (RTREE &into)
 Fills the given RTree with lane instances.
static CollisionAction getCollisionAction ()
static double & getDefaultDepartSpeed ()
static DepartSpeedDefinitiongetDefaultDepartSpeedDefinition ()
template<class T>
static std::string getIDSecure (const T *obj, const std::string &fallBack="NULL")
 get an identifier for Named-like object which may be Null
static CollisionAction getIntermodalCollisionAction ()
static int getNumRNGs ()
 return the number of RNGs
static void initCollisionAction (const OptionsCont &oc, const std::string &option, CollisionAction &myAction)
static void initCollisionOptions (const OptionsCont &oc)
static void initRNGs (const OptionsCont &oc)
 initialize rngs
static void insertIDs (std::vector< std::string > &into)
 Adds the ids of all stored lanes into the given vector.
static void loadRNGState (int index, const std::string &state)
 load random number generator state for the given rng index
static void saveRNGStates (OutputDevice &out)
 save random number generator states to the given output device
static std::vector< MSLink * >::const_iterator succLinkSec (const SUMOVehicle &veh, int nRouteSuccs, const MSLane &succLinkSource, const std::vector< MSLane * > &conts)

Static Public Attributes

static const long CHANGE_PERMISSIONS_GUI = 1
static const long CHANGE_PERMISSIONS_PERMANENT = 0

Protected Types

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

Protected Member Functions

bool checkForPedestrians (const MSVehicle *aVehicle, double &speed, double &dist, double pos, bool patchSpeed) const
 check whether pedestrians on this lane interfere with vehicle insertion
bool detectCollisionBetween (SUMOTime timestep, const std::string &stage, MSVehicle *collider, MSVehicle *victim, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toRemove, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toTeleport) const
 detect whether there is a collision between the two vehicles
void detectPedestrianJunctionCollision (const MSVehicle *collider, const PositionVector &colliderBoundary, const MSLane *foeLane, SUMOTime timestep, const std::string &stage, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toRemove, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toTeleport)
 detect whether a vehicle collids with pedestrians on the junction
double getDepartPosLat (const MSVehicle &veh)
double getDepartSpeed (const MSVehicle &veh, bool &patchSpeed)
double getFractionalVehicleLength (bool brutto) const
 return length of fractional vehicles on this lane
void handleCollisionBetween (SUMOTime timestep, const std::string &stage, const MSVehicle *collider, const MSVehicle *victim, double gap, double latGap, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toRemove, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toTeleport) const
 take action upon collision
void handleIntermodalCollisionBetween (SUMOTime timestep, const std::string &stage, const MSVehicle *collider, const MSTransportable *victim, double gap, const std::string &collisionType, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toRemove, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toTeleport) const
bool hasApproaching (const std::vector< MSLink * > &links) const
 check whether any of the outgoing links are being approached
virtual void incorporateVehicle (MSVehicle *veh, double pos, double speed, double posLat, const MSLane::VehCont::iterator &at, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED)
 Inserts the vehicle into this lane, and informs it about entering the network.
double safeInsertionSpeed (const MSVehicle *veh, double seen, const MSLeaderInfo &leaders, double speed)
 return the maximum safe speed for insertion behind leaders (a negative value indicates that safe insertion is impossible)
virtual void swapAfterLaneChange (SUMOTime t)
 moves myTmpVehicles int myVehicles after a lane change procedure

Static Protected Member Functions

static bool isFrontalCollision (const MSVehicle *collider, const MSVehicle *victim)
 detect frontal collisions

Protected Attributes

std::map< MSEdge *, std::vector< MSLane * > > myApproachingLanes
 All direct internal and direct (disregarding internal predecessors) non-internal predecessor lanes of this lane.
MSLanemyBidiLane
double myBruttoVehicleLengthSum
 The current length of all vehicles on this lane, including their minGaps.
double myBruttoVehicleLengthSumToRemove
 The length of all vehicles that have left this lane in the current step (this lane, including their minGaps).
MSLanemyCanonicalPredecessorLane
 Similar to LogicalPredecessorLane,.
MSLanemyCanonicalSuccessorLane
 Main successor lane,.
SVCPermissions myChangeLeft
 The vClass permissions for changing from this lane.
SVCPermissions myChangeRight
MSEdge *const myEdge
 The lane's edge, for routing only.
MSLeaderInfo myFollowerInfo
 followers on all sublanes as seen by vehicles on consecutive lanes (cached)
SUMOTime myFollowerInfoTime
 time step for which myFollowerInfo was last updated
double myFrictionCoefficient
 Lane-wide friction coefficient [0..1].
std::string myID
 The name of the object.
std::vector< IncomingLaneInfomyIncomingLanes
 All direct predecessor lanes.
int myIndex
 The lane index.
const bool myIsRampAccel
 whether this lane is an acceleration lane
StopOffset myLaneStopOffset
const std::string myLaneType
 the type of this lane
MSLeaderInfo myLeaderInfo
 leaders on all sublanes as seen by approaching vehicles (cached)
SUMOTime myLeaderInfoTime
 time step for which myLeaderInfo was last updated
double myLength
 Lane length [m].
const double myLengthGeometryFactor
 precomputed myShape.length / myLength
std::vector< MSLink * > myLinks
MSLanemyLogicalPredecessorLane
VehCont myManeuverReservations
 The vehicles which registered maneuvering into the lane within their current action step. This is currently only relevant for sublane simulation, since continuous lanechanging uses the partial vehicle mechanism.
double myMaxSpeed
 Lane-wide speed limit [m/s].
bool myNeedsCollisionCheck
 whether a collision check is currently needed
double myNettoVehicleLengthSum
 The current length of all vehicles on this lane, excluding their minGaps.
double myNettoVehicleLengthSumToRemove
 The length of all vehicles that have left this lane in the current step (this lane, excluding their minGaps).
int myNumericalID
 Unique numerical ID (set on reading by netload).
MSLanemyOpposite
SVCPermissions myOriginalPermissions
 The original vClass permissions for this lane (before temporary modifications).
PositionVectormyOutlineShape = nullptr
 the outline of the lane (optional)
std::set< const MSBaseVehicle * > myParkingVehicles
VehCont myPartialVehicles
 The lane's partial vehicles. This container holds all vehicles that are partially on this lane but which are in myVehicles of another lane. Reasons for partial occupancies include the following.
std::map< long long, SVCPermissionsmyPermissionChanges
SVCPermissions myPermissions
 The vClass permissions for this lane.
bool myRecalculateBruttoSum
 Flag to recalculate the occupancy (including minGaps) after a change in minGap.
const std::map< SUMOVehicleClass, double > * myRestrictions
 The vClass speed restrictions for this lane.
int myRightmostSublane
 the index of the rightmost sublane of this lane on myEdge
double myRightSideOnEdge
 the combined width of all lanes with lower index on myEdge
int myRNGIndex
PositionVector myShape
 The shape of the lane.
bool mySpeedByTraCI
 Whether the current speed limit has been set through TraCI.
bool mySpeedByVSS
 Whether the current speed limit is set by a variable speed sign (VSS).
VehCont myTmpVehicles
 Container for lane-changing vehicles. After completion of lane-change- process, the containers will be swapped with myVehicles.
MFXSynchQue< MSVehicle *, std::vector< MSVehicle * > > myVehBuffer
 Buffer for vehicles that moved from their previous lane onto this one. Integrated after all vehicles executed their moves.
VehCont myVehicles
 The lane's vehicles. This container holds all vehicles that have their front (longitudinally) and their center (laterally) on this lane. These are the vehicles that this lane is 'responsibly' for (i.e. when executing movements).
const double myWidth
 Lane width [m].

Static Protected Attributes

static DictType myDict
 Static dictionary to associate string-ids with objects.
static std::vector< SumoRNGmyRNGs

Private Member Functions

 MSLane (const MSLane &)=delete
 invalidated copy constructor
MSLaneoperator= (const MSLane &)=delete
 invalidated assignment operator

Static Private Member Functions

static bool isParameterValid (const std::string &value, const std::string &kvsep, const std::string &sep)
 check if given string can be parsed to a parameter of type "key=value"

Private Attributes

Parameterised::Map myMap
 The key->value map.
std::vector< MSMoveReminder * > myMoveReminders
 This lane's move reminder.
std::vector< StopWatch< std::chrono::nanoseconds > > myStopWatch

Static Private Attributes

static double myCheckJunctionCollisionMinGap
static bool myCheckJunctionCollisions
static CollisionAction myCollisionAction
 the action to take on collisions
static double myCollisionMinGapFactor
static SUMOTime myCollisionStopTime
static double myDefaultDepartSpeed
static DepartSpeedDefinition myDefaultDepartSpeedDefinition
static bool myExtrapolateSubstepDepart
static CollisionAction myIntermodalCollisionAction
static SUMOTime myIntermodalCollisionStopTime

Friends

class AnyVehicleIterator
class MSLaneChanger
 needs access to myTmpVehicles (this maybe should be done via double-buffering!!!)
class MSLaneChangerSublane
class MSQueueExport

Detailed Description

Representation of a lane in the micro simulation.

Class which represents a single lane. Somekind of the main class of the simulation. Allows moving vehicles.

Definition at line 84 of file MSLane.h.

Member Typedef Documentation

◆ DictType

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

definition of the static dictionary type

Definition at line 1622 of file MSLane.h.

◆ Map

typedef std::map<std::string, std::string> Parameterised::Map
inherited

parameters map

Definition at line 45 of file Parameterised.h.

◆ VehCont

typedef std::vector<MSVehicle*> MSLane::VehCont

Container for vehicles.

Definition at line 119 of file MSLane.h.

Member Enumeration Documentation

◆ CollisionAction

Enumerator
COLLISION_ACTION_NONE 
COLLISION_ACTION_WARN 
COLLISION_ACTION_TELEPORT 
COLLISION_ACTION_REMOVE 

Definition at line 201 of file MSLane.h.

◆ MinorLinkMode

determine whether/how getFollowers looks upstream beyond minor links

Enumerator
FOLLOW_NEVER 
FOLLOW_ALWAYS 
FOLLOW_ONCOMING 

Definition at line 978 of file MSLane.h.

Constructor & Destructor Documentation

◆ MSLane() [1/2]

MSLane::MSLane ( const std::string & id,
double maxSpeed,
double friction,
double length,
MSEdge *const edge,
int numericalID,
const PositionVector & shape,
double width,
SVCPermissions permissions,
SVCPermissions changeLeft,
SVCPermissions changeRight,
int index,
bool isRampAccel,
const std::string & type,
const PositionVector & outlineShape )

Constructor.

Parameters
[in]idThe lane's id
[in]maxSpeedThe speed allowed on this lane
[in]frictionThe friction of 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]permissionsEncoding of the Vehicle classes that may drive on this lane
[in]indexThe index of this lane within its parent edge
[in]isRampAccelWhether this lane is an acceleration lane
See also
SUMOVehicleClass

Definition at line 252 of file MSLane.cpp.

References initRestrictions(), MAX2(), myBidiLane, myBruttoVehicleLengthSum, myBruttoVehicleLengthSumToRemove, myCanonicalPredecessorLane, myCanonicalSuccessorLane, myChangeLeft, myChangeRight, myEdge, myFollowerInfo, myFollowerInfoTime, myFrictionCoefficient, myIndex, myIsRampAccel, myLaneType, myLeaderInfo, myLeaderInfoTime, myLength, myLengthGeometryFactor, myLogicalPredecessorLane, myMaxSpeed, myNeedsCollisionCheck, myNettoVehicleLengthSum, myNettoVehicleLengthSumToRemove, myNumericalID, myOpposite, myOriginalPermissions, myOutlineShape, myPermissions, myRecalculateBruttoSum, myRightmostSublane, myRightSideOnEdge, myRNGIndex, myRNGs, myShape, mySpeedByTraCI, mySpeedByVSS, myStopWatch, myVehicles, myWidth, Named::Named(), and SUMOTime_MIN.

Referenced by MSLane::StoringVisitor::add(), addApproachingLane(), addIncomingLane(), MSLane::AnyVehicleIterator::AnyVehicleIterator(), checkForPedestrians(), GUILane::debugDrawFoeIntersections(), detectCollisionBetween(), detectCollisions(), detectPedestrianJunctionCollision(), dictionary(), GUILane::drawLinkRule(), executeMovements(), fill(), getCanonicalSuccessorLane(), getCriticalLeader(), getEntryLink(), getFirstInternalInConnection(), getFollowersOnConsecutive(), getFractionalVehicleLength(), getIncomingLinkState(), getInternalFollowingLane(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), getLinkTo(), getOppositeFollower(), getSurroundingVehicles(), getUpcomingLinks(), GUILane::GUILane(), MSLane::incoming_lane_priority_sorter::incoming_lane_priority_sorter(), isApproachedFrom(), isFrontalCollision(), isInsertionSuccess(), MSLane(), GUILane::neighLaneNotBidi(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), operator=(), MSLane::outgoing_lane_priority_sorter::outgoing_lane_priority_sorter(), setBidiLane(), setOpposite(), succLinkSec(), MSLane::vehicle_natural_position_sorter::vehicle_natural_position_sorter(), and MSLane::vehicle_position_sorter::vehicle_position_sorter().

Here is the caller graph for this function:

◆ ~MSLane()

MSLane::~MSLane ( )
virtual

Destructor.

Definition at line 305 of file MSLane.cpp.

References myLinks, and myOutlineShape.

◆ MSLane() [2/2]

MSLane::MSLane ( const MSLane & )
privatedelete

invalidated copy constructor

References MSLane().

Member Function Documentation

◆ addApproachingLane()

void MSLane::addApproachingLane ( MSLane * lane,
bool warnMultiCon )

Definition at line 2866 of file MSLane.cpp.

References getEdge(), Named::getID(), MSEdge::isInternal(), MSLane(), myApproachingLanes, TL, and WRITE_WARNINGF.

Referenced by NLHandler::addConnection().

Here is the caller graph for this function:

◆ addIncomingLane()

void MSLane::addIncomingLane ( MSLane * lane,
MSLink * viaLink )

Definition at line 2856 of file MSLane.cpp.

References getLength(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, MSLane(), myIncomingLanes, and MSLane::IncomingLaneInfo::viaLink.

Referenced by NLHandler::addConnection().

Here is the caller graph for this function:

◆ addLeaders()

void MSLane::addLeaders ( const MSVehicle * vehicle,
double vehPos,
MSLeaderDistanceInfo & result,
bool oppositeDirection = false )

◆ addLink()

void MSLane::addLink ( MSLink * link)

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 333 of file MSLane.cpp.

References myLinks.

Referenced by NLHandler::addConnection().

Here is the caller graph for this function:

◆ addMoveReminder()

void MSLane::addMoveReminder ( MSMoveReminder * rem,
bool addToVehicles = true )
virtual

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 360 of file MSLane.cpp.

References myMoveReminders, and myVehicles.

Referenced by MSDriveWay::buildRoute().

Here is the caller graph for this function:

◆ addParking()

void MSLane::addParking ( MSBaseVehicle * veh)

add parking vehicle. This should only used during state loading

Definition at line 3683 of file MSLane.cpp.

References myParkingVehicles.

Referenced by MSVehicleTransfer::loadState().

Here is the caller graph for this function:

◆ addSecondaryShape()

virtual void MSLane::addSecondaryShape ( const PositionVector & )
inlinevirtual

Reimplemented in GUILane.

Definition at line 288 of file MSLane.h.

Referenced by NLNetShapeHandler::addLane().

Here is the caller graph for this function:

◆ addTo()

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 118 of file Named.h.

References Named::StoringVisitor::add().

◆ allowsChangingLeft()

bool MSLane::allowsChangingLeft ( SUMOVehicleClass vclass) const
inline

Returns whether the given vehicle class may change left from this lane.

Definition at line 937 of file MSLane.h.

References myChangeLeft.

Referenced by MSLaneChanger::changeOpposite(), and MSLCM_LC2013::hasFreeLane().

Here is the caller graph for this function:

◆ allowsChangingRight()

bool MSLane::allowsChangingRight ( SUMOVehicleClass vclass) const
inline

Returns whether the given vehicle class may change left from this lane.

Definition at line 942 of file MSLane.h.

References myChangeRight.

Referenced by GUILane::drawGL(), GUILane::drawJunctionChangeProhibitions(), and GUILane::drawMarkings().

Here is the caller graph for this function:

◆ allowsVehicleClass() [1/2]

bool MSLane::allowsVehicleClass ( SUMOVehicleClass vclass) const
inline

◆ allowsVehicleClass() [2/2]

bool MSLane::allowsVehicleClass ( SUMOVehicleClass vclass,
int routingMode ) const

◆ anyVehiclesBegin()

AnyVehicleIterator MSLane::anyVehiclesBegin ( ) const
inline

begin iterator for iterating over all vehicles touching this lane in downstream direction

Definition at line 489 of file MSLane.h.

References AnyVehicleIterator, myPartialVehicles, myTmpVehicles, and myVehicles.

Referenced by detectCollisions(), getFollowersOnConsecutive(), getLastVehicleInformation(), getLeader(), MSLink::getLeaderInfo(), MSPModel_Striping::getVehicleObstacles(), insertVehicle(), and MSPModel_Striping::moveInDirection().

Here is the caller graph for this function:

◆ anyVehiclesEnd()

AnyVehicleIterator MSLane::anyVehiclesEnd ( ) const
inline

end iterator for iterating over all vehicles touching this lane in downstream direction

Definition at line 495 of file MSLane.h.

References AnyVehicleIterator, myPartialVehicles, myTmpVehicles, and myVehicles.

Referenced by detectCollisions(), getFollowersOnConsecutive(), getLeader(), MSLink::getLeaderInfo(), MSPModel_Striping::getVehicleObstacles(), insertVehicle(), and MSPModel_Striping::moveInDirection().

Here is the caller graph for this function:

◆ anyVehiclesUpstreamBegin()

AnyVehicleIterator MSLane::anyVehiclesUpstreamBegin ( ) const
inline

begin iterator for iterating over all vehicles touching this lane in upstream direction

Definition at line 501 of file MSLane.h.

References AnyVehicleIterator, myPartialVehicles, myTmpVehicles, and myVehicles.

Referenced by getFirstVehicleInformation(), getFollower(), and MSPModel_Striping::getVehicleObstacles().

Here is the caller graph for this function:

◆ anyVehiclesUpstreamEnd()

AnyVehicleIterator MSLane::anyVehiclesUpstreamEnd ( ) const
inline

end iterator for iterating over all vehicles touching this lane in upstream direction

Definition at line 507 of file MSLane.h.

References AnyVehicleIterator.

Referenced by getFollower(), and MSPModel_Striping::getVehicleObstacles().

Here is the caller graph for this function:

◆ appropriate()

bool MSLane::appropriate ( const MSVehicle * veh) const
virtual

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

Definition at line 2545 of file MSLane.cpp.

References MSVehicle::getBestLanes(), MSVehicle::getBestLanesContinuation(), MSVehicle::getLaneChangeModel(), MSVehicle::getLaneIndex(), MSAbstractLaneChangeModel::isOpposite(), myEdge, myLinks, MSBaseVehicle::succEdge(), and succLinkSec().

Referenced by executeMovements().

Here is the caller graph for this function:

◆ areAttributesValid()

bool Parameterised::areAttributesValid ( const std::string & value,
bool report = false,
const std::string kvsep = "=",
const std::string sep = "|" )
staticinherited

check if given string can be parsed to an attributes map "key1=value1|key2=value2|...|keyN=valueN" (used in generic datas)

Definition at line 207 of file Parameterised.cpp.

References StringTokenizer::getVector(), invalid_return< std::string >::value, isParameterValid(), TL, and WRITE_WARNINGF.

◆ areParametersValid()

bool Parameterised::areParametersValid ( const std::string & value,
bool report = false,
const std::string kvsep = "=",
const std::string sep = "|" )
staticinherited

check if given string can be parsed to a parameters map "key1=value1|key2=value2|...|keyN=valueN"

Definition at line 188 of file Parameterised.cpp.

References StringTokenizer::getVector(), invalid_return< std::string >::value, isParameterValid(), TL, and WRITE_WARNINGF.

Referenced by GNEAttributeCarrier::isCommonAttributeValid(), and GNETLSEditorFrame::TLSAttributes::isValidParameters().

Here is the caller graph for this function:

◆ changeLanes()

void MSLane::changeLanes ( const SUMOTime time)

Definition at line 2459 of file MSLane.cpp.

References myEdge.

◆ checkBufferType()

void MSLane::checkBufferType ( )

Definition at line 321 of file MSLane.cpp.

References MSGlobals::gNumSimThreads, and myVehBuffer.

◆ checkFailure()

bool MSLane::checkFailure ( const MSVehicle * aVehicle,
double & speed,
double & dist,
const double nspeed,
const bool patchSpeed,
const std::string errorMsg,
InsertionCheck check ) const

◆ checkForPedestrians()

bool MSLane::checkForPedestrians ( const MSVehicle * aVehicle,
double & speed,
double & dist,
double pos,
bool patchSpeed ) const
protected

◆ clear()

void MSLane::clear ( )
static

Clears the dictionary.

Definition at line 2512 of file MSLane.cpp.

References myDict.

Referenced by NLBuilder::buildNet(), and MSNet::clearAll().

Here is the caller graph for this function:

◆ clearParameter()

void Parameterised::clearParameter ( )
inherited

Clears the parameter map.

Definition at line 118 of file Parameterised.cpp.

References myMap.

◆ clearState()

◆ detectCollisionBetween()

bool MSLane::detectCollisionBetween ( SUMOTime timestep,
const std::string & stage,
MSVehicle * collider,
MSVehicle * victim,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toRemove,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toTeleport ) const
protected

◆ detectCollisions()

void MSLane::detectCollisions ( SUMOTime timestep,
const std::string & stage )
virtual

Check if vehicles are too close.

Reimplemented in GUILane.

Definition at line 1657 of file MSLane.cpp.

References MSVehicleTransfer::add(), AIRCRAFT, anyVehiclesBegin(), anyVehiclesEnd(), COLLISION_ACTION_NONE, DEBUG_COND, DEBUG_COND2, detectCollisionBetween(), detectPedestrianJunctionCollision(), MSVehicle::getBackPositionOnLane(), getBidiLane(), MSVehicle::getBoundingBox(), MSVehicle::getBoundingPoly(), MSVehicleType::getGuiShape(), Named::getID(), Named::getIDSecure(), MSNet::getInstance(), MSVehicleTransfer::getInstance(), MSVehicle::getLane(), MSVehicleType::getLength(), MSVehicle::getMutableLane(), MSVehicle::getPositionOnLane(), getRightSideOnEdge(), MSVehicle::getRightSideOnEdge(), MSVehicle::getSpeed(), MSNet::getVehicleControl(), getVehicleNumberWithPartials(), MSBaseVehicle::getVehicleType(), MSVehicle::getWaitingTime(), MSVehicleType::getWidth(), MSGlobals::gIgnoreJunctionBlocker, MSGlobals::gSublane, handleCollisionBetween(), handleIntermodalCollisionBetween(), hasPedestrians(), isInternal(), MSVehicle::isLeader(), MSLane(), mustCheckJunctionCollisions(), myCheckJunctionCollisionMinGap, myCollisionAction, myEdge, myIntermodalCollisionAction, myLength, myLinks, myNeedsCollisionCheck, myPartialVehicles, myVehicles, nextBlocking(), MSMoveReminder::NOTIFICATION_TELEPORT, MSMoveReminder::NOTIFICATION_VAPORIZED_COLLISION, MSVehicle::onRemovalFromNet(), PositionVector::overlapsWith(), removeVehicle(), MSVehicleControl::scheduleVehicleRemoval(), SIMTIME, SPEED2DIST, MSNet::STAGE_MOVEMENTS, and toString().

Referenced by GUILane::detectCollisions().

Here is the caller graph for this function:

◆ detectPedestrianJunctionCollision()

void MSLane::detectPedestrianJunctionCollision ( const MSVehicle * collider,
const PositionVector & colliderBoundary,
const MSLane * foeLane,
SUMOTime timestep,
const std::string & stage,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toRemove,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toTeleport )
protected

detect whether a vehicle collids with pedestrians on the junction

Definition at line 1898 of file MSLane.cpp.

References COLLISION_ACTION_NONE, DEBUG_COND, MSVehicle::getBoundingPoly(), getEdge(), Named::getID(), MSEdge::getPersons(), MSEdge::getSortedPersons(), handleIntermodalCollisionBetween(), hasPedestrians(), MSEdge::isCrossing(), MSEdge::isWalkingArea(), MSLane(), myIntermodalCollisionAction, PositionVector::overlapsWith(), and SIMTIME.

Referenced by detectCollisions().

Here is the caller graph for this function:

◆ dictionary() [1/2]

MSLane * MSLane::dictionary ( const std::string & id)
static

Returns the MSLane associated to the key id.

The lane is returned if exists, otherwise 0 is returned.

Parameters
[in]idThe id of the lane
Returns
The lane

Definition at line 2501 of file MSLane.cpp.

References myDict.

◆ dictionary() [2/2]

bool MSLane::dictionary ( const std::string & id,
MSLane * lane )
static

Static (sic!) container methods {.

Inserts a MSLane into the static dictionary

Returns true if the key id isn't already in the dictionary. Otherwise returns false.

Parameters
[in]idThe id of the lane
[in]laneThe lane itself
Returns
Whether the lane was added
Todo

make non-static

why is the id given? The lane is named

Definition at line 2489 of file MSLane.cpp.

References MSLane(), and myDict.

Referenced by NLHandler::addConnection(), NLNetShapeHandler::addConnection(), NLHandler::addLane(), NLNetShapeHandler::addLane(), MSBaseVehicle::addStop(), MSRouteHandler::addStop(), NLEdgeControlBuilder::build(), LIBSUMO_NAMESPACE::Lane::getLane(), NLTriggerBuilder::getLane(), NLDetectorBuilder::getLaneChecking(), NLShapeHandler::getLanePos(), MSE2Collector::getLanes(), MSEdge::getStopPosition(), NEMALogic::init(), MSBaseVehicle::insertStop(), MSPedestrianPushButton::loadPushButtons(), MSRailSignalConstraint_Predecessor::loadState(), MSVehicleTransfer::loadState(), LIBSUMO_NAMESPACE::Person::moveTo(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), MSStateHandler::myStartElement(), MSTriggeredRerouter::myStartElement(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), NLTriggerBuilder::parseAndBuildOverheadWireSection(), NLHandler::parseLanes(), TraCIServerAPI_Lane::processSet(), MSPModel_Striping::PState::PState(), MSE2Collector::recalculateDetectorLength(), MSBaseVehicle::replaceRoute(), and MSBaseVehicle::replaceStop().

Here is the caller graph for this function:

◆ dictSize()

int MSLane::dictSize ( )
inlinestatic

Returns the number of stored lanes.

Returns
The number of stored lanes

Definition at line 820 of file MSLane.h.

References myDict.

◆ empty()

bool MSLane::empty ( ) const
inline

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

Definition at line 744 of file MSLane.h.

References myVehBuffer, and myVehicles.

Referenced by MSQueueExport::writeLane().

Here is the caller graph for this function:

◆ enteredByLaneChange()

void MSLane::enteredByLaneChange ( MSVehicle * v)

Definition at line 3359 of file MSLane.cpp.

References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.

Referenced by MSAbstractLaneChangeModel::primaryLaneChanged().

Here is the caller graph for this function:

◆ executeMovements()

void MSLane::executeMovements ( const SUMOTime t)
virtual

Executes planned vehicle movements with regards to right-of-way.

This method goes through all vehicles calling their executeMove method which causes vehicles to update their positions and speeds. Vehicles wich move to the next lane are stored in the targets lane buffer

Returns
Returns true, if all vehicles left the lane.
See also
MSVehicle::executeMove

Reimplemented in GUILane.

Definition at line 2279 of file MSLane.cpp.

References MSVehicleTransfer::add(), MSEdge::allowedLanes(), appropriate(), MSVehicle::brokeDown(), MSEdgeControl::checkCollisionForInactive(), COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, MSVehicle::collisionStopTime(), MSVehicleControl::countCollision(), DEBUG_COND2, MSVehicle::executeMove(), MSVehicle::getBestLanesContinuation(), getBidiLane(), getCollisionAction(), MSBaseVehicle::getDevice(), MSBaseVehicle::getEdge(), getEdge(), MSNet::getEdgeControl(), Named::getID(), MSNet::getInstance(), MSRailSignalControl::getInstance(), MSVehicleTransfer::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), getLength(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSVehicle::getMutableLane(), MSVehicleType::getParameter(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getRoute(), MSBaseVehicle::getRoutePosition(), MSAbstractLaneChangeModel::getShadowLane(), getSpeedLimit(), SUMOVTypeParameter::getTimeToTeleport(), SUMOVTypeParameter::getTimeToTeleportBidi(), MSBaseVehicle::getVClass(), MSNet::getVehicleControl(), getVehicleNumber(), MSBaseVehicle::getVehicleType(), MSVehicle::getWaitingTime(), MSGlobals::gGridlockHighwaysSpeed, MSGlobals::gRemoveGridlocked, MSGlobals::gSublane, MSGlobals::gTimeToGridlock, MSGlobals::gTimeToGridlockHighways, MSGlobals::gTimeToTeleportBidi, MSGlobals::gTimeToTeleportDisconnected, MSGlobals::gTimeToTeleportRSDeadlock, MSVehicle::hasArrived(), MSRailSignalControl::hasInstance(), MSRailSignalControl::haveDeadlock(), MSBaseVehicle::isJumping(), MSBaseVehicle::isParking(), MSBaseVehicle::isStopped(), MSEdge::isVaporizing(), MSLane(), myBruttoVehicleLengthSumToRemove, myLinks, myNeedsCollisionCheck, myNettoVehicleLengthSumToRemove, myParkingVehicles, myVehBuffer, myVehicles, MSEdgeControl::needsVehicleIntegration(), MSMoveReminder::NOTIFICATION_ARRIVED, MSMoveReminder::NOTIFICATION_TELEPORT_ARRIVED, MSMoveReminder::NOTIFICATION_VAPORIZED_BREAKDOWN, MSMoveReminder::NOTIFICATION_VAPORIZED_COLLISION, MSMoveReminder::NOTIFICATION_VAPORIZED_VAPORIZER, MSVehicle::onRemovalFromNet(), MFXSynchQue< T, Container >::push_back(), MSVehicleControl::registerTeleportJam(), MSVehicleControl::registerTeleportWrongLane(), MSVehicleControl::registerTeleportYield(), MSVehicle::resumeFromStopping(), MSVehicleControl::scheduleVehicleRemoval(), SIMTIME, MSRoute::size(), MSBaseVehicle::succEdge(), succLinkSec(), time2string(), TL, and WRITE_WARNINGF.

Referenced by GUILane::executeMovements().

Here is the caller graph for this function:

◆ fill()

template<class RTREE>
template void MSLane::fill< LANE_RTREE_QUAL > ( RTREE & into)
static

Fills the given RTree with lane instances.

Parameters
[in,filled]into The RTree to fill
See also
TraCILaneRTree

Definition at line 2529 of file MSLane.cpp.

References PositionVector::getBoxBoundary(), getShape(), MSLane(), and myDict.

Referenced by libsumo::Helper::collectObjectsInRange().

Here is the caller graph for this function:

◆ forceVehicleInsertion()

void MSLane::forceVehicleInsertion ( MSVehicle * veh,
double pos,
MSMoveReminder::Notification notification,
double posLat = 0 )

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
[in]notificationThe cause of insertion (i.e. departure, teleport, parking) defaults to departure
[in]posLatThe lateral position at which the vehicle shall be inserted

Definition at line 1392 of file MSLane.cpp.

References getDepartSpeed(), MSVehicle::getSpeed(), MSBaseVehicle::hasDeparted(), incorporateVehicle(), myVehicles, and MSVehicle::updateBestLanes().

Referenced by LIBSUMO_NAMESPACE::Vehicle::moveTo(), and MSAbstractLaneChangeModel::primaryLaneChanged().

Here is the caller graph for this function:

◆ freeInsertion()

bool MSLane::freeInsertion ( MSVehicle & veh,
double speed,
double posLat,
MSMoveReminder::Notification notification = MSMoveReminder::NOTIFICATION_DEPARTED )

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 515 of file MSLane.cpp.

References MSStop::edge, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSBaseVehicle::getCurrentRouteEdge(), MSStop::getEndPos(), MSVehicleType::getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getMissingRearGap(), MSBaseVehicle::getNextStop(), MSVehicle::getPositionOnLane(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSBaseVehicle::hasStops(), MSCFModel::insertionFollowSpeed(), isInsertionSuccess(), MAX2(), MIN2(), myLength, myPartialVehicles, myVehicles, MSMoveReminder::NOTIFICATION_TELEPORT, and MSVehicle::setTentativeLaneAndPosition().

Referenced by MSVehicleTransfer::checkInsertions(), and insertVehicle().

Here is the caller graph for this function:

◆ geometryPositionAtOffset()

◆ getBidiLane()

◆ getBruttoOccupancy()

double MSLane::getBruttoOccupancy ( ) const

Returns the brutto (including minGaps) occupancy of this lane during the last step.

Returns
The occupancy during the last step

Definition at line 3396 of file MSLane.cpp.

References getFractionalVehicleLength(), getLength(), MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), MIN2(), myBruttoVehicleLengthSum, myLength, myVehicles, and releaseVehicles().

Referenced by MSLCM_LC2013::_wantsChange(), GUILane::getColorValue(), GUILane::getParameterWindow(), GUILane::getScaleValue(), and MSEdge::insertVehicle().

Here is the caller graph for this function:

◆ getBruttoVehLenSum()

double MSLane::getBruttoVehLenSum ( ) const
inline

Returns the sum of lengths of vehicles, including their minGaps, which were on the lane during the last step.

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

Definition at line 1164 of file MSLane.h.

References myBruttoVehicleLengthSum.

Referenced by MSVehicle::checkRewindLinkLanes(), and MSLCHelper::getRoundaboutDistBonus().

Here is the caller graph for this function:

◆ getCanonicalPredecessorLane()

MSLane * MSLane::getCanonicalPredecessorLane ( ) const

Return the main predecessor lane for the current. If there are several incoming lanes, the first attempt is to return the priorized. If this does not yield an unambiguous lane, the one with the least angle difference to the current is selected.

Definition at line 3272 of file MSLane.cpp.

References MSGlobals::gNumSimThreads, myCanonicalPredecessorLane, Named::myID, and myIncomingLanes.

Referenced by getEntryLink(), getFirstInternalInConnection(), and MSE2Collector::selectLanes().

Here is the caller graph for this function:

◆ getCanonicalSuccessorLane()

MSLane * MSLane::getCanonicalSuccessorLane ( ) const

Return the main successor lane for the current. If there are several outgoing lanes, the first attempt is to return the priorized. If this does not yield an unambiguous lane, the one with the least angle difference to the current is selected.

Definition at line 3296 of file MSLane.cpp.

References Named::getID(), MSLane(), myCanonicalSuccessorLane, Named::myID, and myLinks.

Referenced by MSDevice_SSM::classifyEncounter(), MSVehicle::getDistanceToLeaveJunction(), MSPModel_Striping::getNextLane(), getNormalSuccessorLane(), getOppositeFollower(), and MSE2Collector::selectLanes().

Here is the caller graph for this function:

◆ getCenterOnEdge()

double MSLane::getCenterOnEdge ( ) const
inline

Definition at line 1208 of file MSLane.h.

References myRightSideOnEdge, and myWidth.

Referenced by MSVehicle::enterLaneAtMove().

Here is the caller graph for this function:

◆ getChangeLeft()

SVCPermissions MSLane::getChangeLeft ( ) const
inline

Returns the vehicle class permissions for changing to the left neighbour lane.

Returns
The vehicle classes allowed to change to the left neighbour lane

Definition at line 626 of file MSLane.h.

References myChangeLeft.

◆ getChangeRight()

SVCPermissions MSLane::getChangeRight ( ) const
inline

Returns the vehicle class permissions for changing to the right neighbour lane.

Returns
The vehicle classes allowed to change to the right neighbour lane

Definition at line 633 of file MSLane.h.

References myChangeRight.

◆ getCollisionAction()

CollisionAction MSLane::getCollisionAction ( )
inlinestatic

Definition at line 1362 of file MSLane.h.

References myCollisionAction.

Referenced by executeMovements(), and MSVehicle::resumeFromStopping().

Here is the caller graph for this function:

◆ getCriticalLeader()

std::pair< MSVehicle *const, double > MSLane::getCriticalLeader ( double dist,
double seen,
double speed,
const MSVehicle & veh ) const

Returns the most dangerous leader and the distance to him.

Goes along the vehicle's estimated used lanes (bestLaneConts). For each link, it is determined whether the ego vehicle will pass it. If so, the subsequent lane is investigated. Check all lanes up to the stopping distance of ego. Return the leader vehicle (and the gap) which puts the biggest speed constraint on ego.

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

Pretty slow, as it has to go along lanes.

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 (ego) vehicle for which the information shall be computed
Returns

Definition at line 3132 of file MSLane.cpp.

References MSVehicle::adaptToJunctionLeader(), MSCFModel::brakeGap(), DEBUG_COND2, gDebugFlag1, MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), Named::getID(), MSBaseVehicle::getImpatience(), MSNet::getInstance(), getLastAnyVehicle(), MSVehicle::getLateralPositionOnLane(), getLength(), MSVehicleType::getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), isInternal(), isLinkEnd(), MAX2(), MSLane(), SIMTIME, succLinkSec(), and TIME2STEPS.

Referenced by MSLaneChanger::checkChange().

Here is the caller graph for this function:

◆ getCrossingIndex()

int MSLane::getCrossingIndex ( ) const

return the index of the link to the next crossing if this is walkingArea, else -1

Definition at line 3366 of file MSLane.cpp.

References myLinks.

◆ getDefaultDepartSpeed()

double & MSLane::getDefaultDepartSpeed ( )
inlinestatic

Definition at line 1374 of file MSLane.h.

References myDefaultDepartSpeed.

Referenced by MSFrame::setMSGlobals().

Here is the caller graph for this function:

◆ getDefaultDepartSpeedDefinition()

DepartSpeedDefinition & MSLane::getDefaultDepartSpeedDefinition ( )
inlinestatic

Definition at line 1370 of file MSLane.h.

References myDefaultDepartSpeedDefinition.

Referenced by MSFrame::setMSGlobals().

Here is the caller graph for this function:

◆ getDepartPosLat()

double MSLane::getDepartPosLat ( const MSVehicle & veh)
protected

Definition at line 664 of file MSLane.cpp.

References CENTER, DEFAULT, SUMOVehicleParameter::departPosLat, SUMOVehicleParameter::departPosLatProcedure, MSBaseVehicle::getParameter(), MSBaseVehicle::getVehicleType(), getWidth(), MSVehicleType::getWidth(), GIVEN, gPrecisionRandom, LEFT, RandHelper::rand(), RANDOM, RIGHT, and roundDecimal().

Referenced by insertVehicle().

Here is the caller graph for this function:

◆ getDepartSpeed()

double MSLane::getDepartSpeed ( const MSVehicle & veh,
bool & patchSpeed )
protected

◆ getDouble()

◆ getEdge()

MSEdge & MSLane::getEdge ( ) const
inline

Returns the lane's edge.

Returns
This lane's edge

Definition at line 769 of file MSLane.h.

References myEdge.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLane::StoringVisitor::add(), addApproachingLane(), NLHandler::addConnection(), NLNetShapeHandler::addLane(), MSLaneChangerSublane::addOutsideLeaders(), MSRouteHandler::addPersonTrip(), MSDevice_Taxi::addReservation(), MSDriveWay::addReversalFoes(), MSRouteHandler::addRideOrTransport(), MSBaseVehicle::addStop(), MSRouteHandler::addStop(), MSRouteHandler::addTranship(), MSSwarmTrafficLightLogic::allowLine(), libsumo::Helper::applySubscriptionFilterLanes(), libsumo::Helper::applySubscriptionFilters(), MSVehicle::brakeForOverlap(), MSDriveWay::buildDriveWay(), MSDriveWay::buildRoute(), MSSOTLE2Sensors::buildSensorForLane(), libsumo::Helper::buildStopParameters(), MSPerson::checkAccess(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeOpposite(), checkForPedestrians(), MSVehicle::checkLinkLeader(), MSLCM_SL2015::checkStrategicChange(), MSLink::checkWalkingAreaFoe(), MSDevice_SSM::classifyEncounter(), MSEdge::closeBuilding(), GUILane::closeTraffic(), MSVehicle::computeFurtherLanes(), MSLaneChanger::continueChange(), LIBSUMO_NAMESPACE::Person::convertTraCIStage(), GUIDetectorBuilder::createInductLoop(), NLDetectorBuilder::createInductLoop(), MSDriveWay::crossingConflict(), detectCollisionBetween(), MSE3Collector::detectorUpdate(), detectPedestrianJunctionCollision(), MSLCHelper::divergentRoute(), GUILane::drawLane2LaneConnections(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtMove(), MSVehicle::estimateTimeToNextStop(), MSStoppingPlaceRerouter::evaluateDestination(), MSPModel_JuPedSim::execute(), executeMovements(), MSDriveWay::findFlankProtection(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSMeanData_Net::getAttributeValue(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSLaneChanger::getBestLanesOpposite(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), MSAbstractLaneChangeModel::getCooperativeHelpSpeed(), MSRoute::getDistanceBetween(), getFollowersOnConsecutive(), MSVehicle::getLatOffset(), MSLink::getLeaderInfo(), getLogicalPredecessorLane(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), MSLCM_SL2015::getNeighRight(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), LIBSUMO_NAMESPACE::Vehicle::getNextTLS(), MSCFModel_CC::getParameter(), GUILane::getParentName(), MSInsertionControl::getPendingEmits(), GUILane::getPopUpMenu(), MSLCHelper::getRoundaboutDistBonus(), LIBSUMO_NAMESPACE::TrafficLight::getServedPersonCount(), MSVehicle::getUpcomingLanesUntil(), MSDevice_SSM::getVehiclesOnJunction(), LIBSUMO_NAMESPACE::Person::getWalkingDistance(), MSActuatedTrafficLightLogic::init(), NEMALogic::init(), MSTrafficLightLogic::initMesoTLSPenalties(), MSBaseVehicle::insertStop(), MSLCHelper::isBidiFollower(), MSVehicle::isBidiOn(), isFrontalCollision(), isInsertionSuccess(), MSVehicle::isLeader(), MSVehicle::isOppositeLane(), MSLink::lastWasContMajor(), MSLink::lastWasContState(), MESegment::limitedControlOverride(), MSPedestrianPushButton::loadPushButtons(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), MSLeaderDistanceInfo::moveSamePosTo(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), MSPModel_Striping::PState::moveTo(), LIBSUMO_NAMESPACE::Person::moveToXY(), MSPModel_Striping::PState::moveToXY(), libsumo::Helper::moveToXYMap(), libsumo::Helper::moveToXYMap_matchingRoutePosition(), MSDevice_FCDReplay::FCDHandler::myStartElement(), MSDevice_GLOSA::notifyEnter(), MSDevice_Routing::notifyEnter(), MSDevice_SSM::notifyEnter(), MSDevice_Vehroutes::notifyEnter(), MSDevice_SSM::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSDevice_StationFinder::notifyMove(), MSE3Collector::MSE3EntryReminder::notifyMove(), GUIViewTraffic::onCmdAddRerouter(), GUIViewTraffic::onCmdCloseEdge(), MSLane::edge_finder::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), NLTriggerBuilder::parseAndBuildCalibrator(), MSRouteHandler::parseWalkPositions(), MSVehicle::planMoveInternal(), MSDevice_StationFinder::planOpportunisticCharging(), MSInternalJunction::postloadInit(), MSVehicle::Influencer::postProcessRemoteControl(), MSDevice_Taxi::prepareStop(), MSAbstractLaneChangeModel::primaryLaneChanged(), MSVehicle::processLaneAdvances(), MSPModel_Striping::PState::PState(), MSPModel_Striping::registerCrossingApproach(), MSLeaderInfo::removeOpposite(), MSBaseVehicle::replaceParkingArea(), MSBaseVehicle::replaceStop(), GUIVehicle::rerouteDRTStop(), MSTransportable::rerouteParkingArea(), MSStoppingPlaceRerouter::rerouteStoppingPlace(), MSDevice_StationFinder::rerouteToChargingStation(), LIBSUMO_NAMESPACE::Lane::setAllowed(), LIBSUMO_NAMESPACE::Lane::setDisallowed(), MSLink::setRequestInformation(), LIBSUMO_NAMESPACE::Vehicle::setRoute(), GUITriggeredRerouter::shiftProbs(), GUIViewTraffic::showLaneReachability(), MSLaneChangerSublane::startChangeSublane(), MSDevice_StationFinder::teleportToChargingStation(), MSLCM_SL2015::tieBrakeLeader(), MSVehicle::unsafeLinkAhead(), MSVehicle::updateBestLanes(), MSLaneChangerSublane::updateChanger(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::Influencer::updateRemoteControlRoute(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), and MSFCDExport::write().

◆ getEmissions()

template<PollutantsInterface::EmissionType ET>
double MSLane::getEmissions ( ) const
inline

Returns the sum of last step emissions The value is always per 1s, so multiply by step length if necessary.

Returns
emissions of vehicles on this lane during the last step

Definition at line 1174 of file MSLane.h.

References getVehiclesSecure(), and releaseVehicles().

Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), and MSFullExport::writeLane().

Here is the caller graph for this function:

◆ getEntryLink()

const MSLink * MSLane::getEntryLink ( ) const

Returns the entry link if this is an internal lane, else nullptr.

Definition at line 2768 of file MSLane.cpp.

References getCanonicalPredecessorLane(), getLinkTo(), isInternal(), and MSLane().

Referenced by MSDevice_SSM::classifyEncounter(), MSLink::computeDistToDivergence(), MSLink::getLeaderInfo(), getUpcomingLinks(), MSDevice_SSM::getVehiclesOnJunction(), MSVehicle::isLeader(), and MSLink::setRequestInformation().

Here is the caller graph for this function:

◆ getFirstAnyVehicle()

MSVehicle * MSLane::getFirstAnyVehicle ( ) const

returns the first vehicle that is fully or partially on this lane

Definition at line 2680 of file MSLane.cpp.

References myPartialVehicles, and myVehicles.

◆ getFirstFullVehicle()

MSVehicle * MSLane::getFirstFullVehicle ( ) const

returns the first vehicle for which this lane is responsible or 0

Definition at line 2652 of file MSLane.cpp.

References myVehicles.

Referenced by MSVehicle::checkRewindLinkLanes().

Here is the caller graph for this function:

◆ getFirstInternalInConnection()

const MSLane * MSLane::getFirstInternalInConnection ( double & offset) const

Returns 0 if the lane is not internal. Otherwise the first part of the connection (sequence of internal lanes along junction) corresponding to the lane is returned and the offset is set to the distance of the begin of this lane to the begin of the returned.

Definition at line 2471 of file MSLane.cpp.

References getCanonicalPredecessorLane(), getLength(), isInternal(), and MSLane().

Referenced by MSDevice_SSM::classifyEncounter().

Here is the caller graph for this function:

◆ getFirstVehicleInformation()

const MSLeaderInfo MSLane::getFirstVehicleInformation ( const MSVehicle * ego,
double latOffset,
bool onlyFrontOnLane,
double maxPos = std::numeric_limits<double>::max(),
bool allowCached = true ) const

analogue to getLastVehicleInformation but in the upstream direction

Definition at line 1501 of file MSLane.cpp.

References MSLeaderInfo::addLeader(), anyVehiclesUpstreamBegin(), DEBUG_COND2, MSNet::getCurrentTimeStep(), Named::getID(), MSNet::getInstance(), MSVehicle::getLatOffset(), MSVehicle::getPositionOnLane(), MSGlobals::gNumSimThreads, MSVehicle::isFrontOnLane(), myFollowerInfo, myFollowerInfoTime, myLength, and myWidth.

Referenced by getFollowersOnConsecutive().

Here is the caller graph for this function:

◆ getFollower()

std::pair< MSVehicle *const, double > MSLane::getFollower ( const MSVehicle * ego,
double egoPos,
double dist,
MinorLinkMode mLinkMode ) const

Find follower vehicle for the given ego vehicle (which may be on the opposite direction lane).

Parameters
[in]egoThe ego vehicle
[in]egoPosThe ego position mapped to the current lane
[in]distThe look-back distance when looking at consecutive lanes
[in]ignoreMinorLinksWhether backward search should stop at minor links
Returns
the follower vehicle and its gap to ego

Definition at line 4400 of file MSLane.cpp.

References anyVehiclesUpstreamBegin(), anyVehiclesUpstreamEnd(), DEBUG_COND2, MSLeaderDistanceInfo::getClosest(), getFollowersOnConsecutive(), Named::getID(), MSVehicleType::getLength(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), and MSBaseVehicle::getVehicleType().

Referenced by libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::getOncomingVehicle(), getOppositeFollower(), and getOppositeLeader().

Here is the caller graph for this function:

◆ getFollowersOnConsecutive()

MSLeaderDistanceInfo MSLane::getFollowersOnConsecutive ( const MSVehicle * ego,
double backOffset,
bool allSublanes,
double searchDist = -1,
MinorLinkMode mLinkMode = FOLLOW_ALWAYS ) const

return the sublane followers with the largest missing rear gap among all predecessor lanes (within dist)

XXX iterate in reverse and abort when there are no more freeSublanes

Definition at line 3803 of file MSLane.cpp.

References anyVehiclesBegin(), anyVehiclesEnd(), DEBUG_COND2, FOLLOW_ALWAYS, FOLLOW_ONCOMING, gDebugFlag1, getBidiLane(), getEdge(), getFirstVehicleInformation(), MSVehicle::getFurtherLanes(), Named::getID(), Named::getIDSecure(), getIncomingLanes(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicle::getLateralPositionOnLane(), MSVehicle::getLatOffset(), MSVehicle::getLeftSideOnLane(), MSBaseVehicle::getLength(), getLength(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), getLogicalPredecessorLane(), getMaximumBrakeDist(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), getRightSideOnEdge(), MSVehicle::getRightSideOnLane(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), getWidth(), MSGlobals::gLateralResolution, MSGlobals::gUsingInternalLanes, MSVehicle::isBidiOn(), MSVehicle::isFrontOnLane(), MSVehicle::isOnRoad(), MSAbstractLaneChangeModel::isOpposite(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, MAX2(), MSLane(), myEdge, myIncomingLanes, myWidth, MSLeaderInfo::numSublanes(), SIMTIME, STRAIGHT, SUMO_const_haltingSpeed, MSLeaderInfo::toString(), and MSLane::IncomingLaneInfo::viaLink.

Referenced by MSLaneChangerSublane::checkChangeOpposite(), getFollower(), getMissingRearGap(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), isInsertionSuccess(), and MSVehicle::planMoveInternal().

Here is the caller graph for this function:

◆ getFractionalVehicleLength()

double MSLane::getFractionalVehicleLength ( bool brutto) const
protected

return length of fractional vehicles on this lane

Definition at line 3377 of file MSLane.cpp.

References getBidiLane(), MSGlobals::gSublane, MSLane(), myLength, and myPartialVehicles.

Referenced by getBruttoOccupancy(), and getNettoOccupancy().

Here is the caller graph for this function:

◆ getFrictionCoefficient()

double MSLane::getFrictionCoefficient ( ) const
inline

Returns the lane's friction coefficient.

Returns
This lane's friction coefficient

Definition at line 604 of file MSLane.h.

References myFrictionCoefficient.

Referenced by GUILane::getParameterWindow().

Here is the caller graph for this function:

◆ getHarmonoise_NoiseEmissions()

double MSLane::getHarmonoise_NoiseEmissions ( ) const

Returns the sum of last step noise emissions.

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

Definition at line 3485 of file MSLane.cpp.

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

Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), and MSFullExport::writeLane().

Here is the caller graph for this function:

◆ getID()

const std::string & Named::getID ( ) const
inlineinherited

Returns the id.

Returns
The stored id

Definition at line 74 of file Named.h.

References myID.

Referenced by MSDriveWay::_saveState(), MSCFModel_ACC::_v(), MSCFModel_CACC::_v(), MSCFModel_EIDM::_v(), MSCFModel_IDM::_v(), MSCFModel_Wiedemann::_v(), MSLCM_LC2013::_wantsChange(), MSTransportableControl::abortAnyWaitingForVehicle(), MSLaneChangerSublane::abortLCManeuver(), MSTransportable::abortStage(), AccessEdge< E, L, N, V >::AccessEdge(), MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToJunctionLeader(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaderDistance(), MSVehicle::adaptToLeaders(), MSVehicle::adaptToOncomingLeader(), MSDetectorControl::add(), MSDetectorControl::add(), MSDetectorControl::add(), MSPModel_JuPedSim::add(), MSPModel_Striping::add(), MSVehicleTransfer::add(), PCPolyContainer::add(), PCPolyContainer::add(), ShapeContainer::add(), ShapeContainer::add(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), MSLane::addApproachingLane(), MSChargingStation::addChargeValueForOutput(), MSOverheadWire::addChargeValueForOutput(), MSTractionSubstation::addChargeValueForOutput(), NBNodeCont::addCluster2Join(), NLHandler::addConflict(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSLane::addLeaders(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), MSLaneChangerSublane::addOutsideLeaders(), MSTractionSubstation::addOverheadWireClampToCircuit(), MSTractionSubstation::addOverheadWireInnerSegmentToCircuit(), MSTractionSubstation::addOverheadWireSegmentToCircuit(), MSDriveWay::addParallelFoes(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), MSDevice_Taxi::addReservation(), MSDispatch::addReservation(), MSDriveWay::addReversalFoes(), MSRouteHandler::addRideOrTransport(), RONet::addRouteDef(), MSDriveWay::addSidings(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), MSBaseVehicle::addStop(), MSRouteHandler::addStop(), RORouteHandler::addStop(), ROVehicle::addStop(), MSNet::addStoppingPlace(), MSRouteHandler::addTranship(), MSVehicle::addTransportable(), AGActivityTripWriter::addTrip(), MSPModel_JuPedSim::addWaitingSet(), NIXMLConnectionsHandler::addWalkingArea(), MSBaseVehicle::allowsBoarding(), MSTransportable::appendStage(), LIBSUMO_NAMESPACE::Person::appendWalkingStage(), MSCFModel::applyHeadwayAndSpeedDifferencePerceptionErrors(), MSCFModel::applyHeadwayPerceptionError(), libsumo::Helper::applySubscriptionFilterLanes(), libsumo::Helper::applySubscriptionFilterLateralDistance(), libsumo::Helper::applySubscriptionFilterLateralDistanceSinglePass(), libsumo::Helper::applySubscriptionFilters(), libsumo::Helper::applySubscriptionFilterTurn(), MSLaneChanger::avoidDeadlock(), MSPModel_Interacting::blockedAtDist(), MSLink::blockedAtTime(), MSLink::blockedByFoe(), MSVehicle::boardTransportables(), MSVehicle::brakeForOverlap(), NIVisumTL::build(), LIBSUMO_NAMESPACE::TrafficLight::buildConstraint(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), NBNode::buildCrossings(), NBNode::buildCrossingsAndWalkingAreas(), MSTransportableDevice_BTreceiver::buildDevices(), MSTransportableDevice_BTsender::buildDevices(), MSTransportableDevice_FCD::buildDevices(), MSTransportableDevice_FCDReplay::buildDevices(), MSTransportableDevice_Routing::buildDevices(), NIImporter_VISUM::buildDistrictNode(), MSDriveWay::buildDriveWay(), NLDetectorBuilder::buildE2Detector(), NLDetectorBuilder::buildE2Detector(), RODFNet::buildEdgeFlowMap(), NLDetectorBuilder::buildInductLoop(), NLTriggerBuilder::buildInnerOverheadWireSegments(), GNETLSEditorFrame::buildInternalLanes(), NIVissimEdge::buildNBEdge(), NBOwnTLDef::buildNemaPhases(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSPModel_JuPedSim::buildPedestrianNetwork(), MSDriveWay::buildRoute(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), libsumo::Helper::buildStopParameters(), MSDriveWay::buildSubFoe(), MSDevice_Battery::buildVehicleDevices(), MSDevice_Bluelight::buildVehicleDevices(), MSDevice_DriverState::buildVehicleDevices(), MSDevice_ElecHybrid::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice_FCD::buildVehicleDevices(), MSDevice_FCDReplay::buildVehicleDevices(), MSDevice_Friction::buildVehicleDevices(), MSDevice_GLOSA::buildVehicleDevices(), MSDevice_Routing::buildVehicleDevices(), MSDevice_SSM::buildVehicleDevices(), MSDevice_Taxi::buildVehicleDevices(), MSDevice_ToC::buildVehicleDevices(), MSDevice_Transportable::buildVehicleDevices(), MSDevice_Tripinfo::buildVehicleDevices(), MSDevice_Vehroutes::buildVehicleDevices(), MSVehicleDevice_BTreceiver::buildVehicleDevices(), MSVehicleDevice_BTsender::buildVehicleDevices(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), NEMALogic::calculateInitialPhases170(), MSE2Collector::calculateTimeLossAndTimeOnDetector(), MSDevice_Taxi::cancelCustomer(), MSStageDriving::canLeaveVehicle(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSLCHelper::canSaveBlockerLength(), MSDriveWay::canUseSiding(), CarEdge< E, L, N, V >::CarEdge(), MSLaneChanger::change(), MSLaneChangerSublane::change(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSActuatedTrafficLightLogic::changeStepAndDuration(), MSSimpleTrafficLightLogic::changeStepAndDuration(), LIBSUMO_NAMESPACE::Vehicle::changeTarget(), MSCFModel_CC::changeWholePlatoonLane(), MSTLLogicControl::check2Switch(), MSLaneChanger::checkChange(), MSLaneChanger::checkChangeOpposite(), MSLaneChangerSublane::checkChangeOpposite(), MSLaneChangerSublane::checkChangeSublane(), NBEdgeCont::checkConsistency(), MSDriveWay::checkCrossingFlanks(), MSLane::checkFailure(), MSDriveWay::checkFlanks(), MSLane::checkForPedestrians(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), MSRoute::checkRemoval(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), MEVehicle::checkStop(), MSTriggeredRerouter::checkStopSwitch(), MSLCM_SL2015::checkStrategicChange(), MSLaneChanger::checkTraCICommands(), MSLink::checkWalkingAreaFoe(), MSSwarmTrafficLightLogic::choosePolicy(), MSDevice_SSM::classifyEncounter(), ShapeContainer::clearHighlights(), NBTrafficLightLogic::closeBuilding(), NLHandler::closeEdge(), MSRouteHandler::closeVehicle(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), NBTrafficLightDefinition::compute(), ROJTRRouter::compute(), MSVehicle::computeAngle(), MSDispatch::computeDetourTime(), MSVehicle::computeFurtherLanes(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBRampsComputer::computeRamps(), RODFNet::computeRoutesFor(), MSLaneChanger::computeSafeOppositeLength(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), MSDevice_SSM::computeSSMs(), MSLaneChanger::computeSurplusGap(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), MSVehicle::Manoeuvre::configureEntryManoeuvre(), MSVehicle::Manoeuvre::configureExitManoeuvre(), MSDriveWay::conflictLaneOccupied(), NGNet::connect(), MSRailSignal::constraintsAllow(), NEMALogic::constructTimingAndPhaseDefs(), MSLaneChanger::continueChange(), MSLaneChangerSublane::continueChangeSublane(), libsumo::Helper::convertCartesianToRoadMap(), LIBSUMO_NAMESPACE::Person::convertTraCIStage(), NBLoadedSUMOTLDef::copyIndices(), NBOwnTLDef::correctConflicting(), NBOwnTLDef::corridorLike(), MSSOTLE2Sensors::countVehicles(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSDevice_SSM::createEncounters(), GNETLSEditorFrame::TLSPrograms::createTLS(), GUINet::createTLWrapper(), NBNodeCont::customTLID(), libsumo::Helper::debugPrint(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), MSVehicleControl::deleteVehicle(), MSDevice_ElecHybrid::deleteVehicleFromCircuit(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSE3Collector::detectorUpdate(), MSLane::detectPedestrianJunctionCollision(), NIVissimDistrictConnection::dict_BuildDistrictNodes(), NIVissimDistrictConnection::dict_BuildDistricts(), MSEdge::dictionaryHint(), NBNodeCont::discardTrafficLights(), MSDispatch_Greedy::dispatch(), MSDispatch_GreedyShared::dispatch(), MSDispatch_RouteExtension::dispatch(), MSDevice_Taxi::dispatchShared(), GUILane::drawGL(), MSDevice_SSM::Encounter::Encounter(), MSE3Collector::enter(), MSParkingArea::enter(), NEMAPhase::enter(), MSDriveWay::enterDriveWay(), MSVehicle::enterLaneAtInsertion(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::Manoeuvre::entryManoeuvreIsComplete(), MSTransportableControl::erase(), NEMALogic::error_handle_not_set(), MSStoppingPlaceRerouter::evaluateDestination(), Command_RouteReplacement::execute(), Command_SaveTLSSwitches::execute(), METriggeredCalibrator::execute(), MSCalibrator::execute(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSPModel_JuPedSim::execute(), MSPModel_Striping::MovePedestrians::execute(), MSVTypeProbe::execute(), MSVehicle::executeFractionalMove(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), MSDevice_SSM::filterByConflictType(), LIBSUMO_NAMESPACE::Person::filterReservation(), NBLoadedSUMOTLDef::finalChecks(), MSCFModel::finalizeSpeed(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel_EIDM::finalizeSpeed(), MSLaneChanger::findCandidate(), LIBSUMO_NAMESPACE::TrafficLight::findConstraintsDeadLocks(), MSRailSignalControl::findDeadlockFoes(), MSDriveWay::findFlankProtection(), MSDevice_SSM::findFoeConflictLane(), LIBSUMO_NAMESPACE::Simulation::findIntermodalRoute(), MSDevice_SSM::findSurroundingVehicles(), MSDevice_SSM::flushConflicts(), MSDriveWay::foeDriveWayOccupied(), MSCFModel_CACC::followSpeed(), MSCFModel_EIDM::followSpeed(), MSCFModel_W99::followSpeed(), NBTrafficLightDefinition::forbids(), MSLaneChanger::foundHilltop(), MSCFModel_EIDM::freeSpeed(), NBNodeCont::generateNodeClusters(), MSStopOut::generateOutputForUnfinished(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSPModel_Striping::getArbitraryPath(), MSVehicle::getBackPosition(), MSVehicle::getBackPositionOnLane(), LIBSUMO_NAMESPACE::Vehicle::getBestLanes(), MSLaneChanger::getBestLanesOpposite(), NBOwnTLDef::getBestPair(), LIBSUMO_NAMESPACE::Edge::getBidiEdge(), LIBSUMO_NAMESPACE::Lane::getBidiLane(), SUMOTrafficObject::getBoolParam(), MSLane::getCanonicalSuccessorLane(), MSVehicle::getCenterOnEdge(), MSDriveWay::getClickableTLLinkID(), LIBSUMO_NAMESPACE::Simulation::getCollisions(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), MSActuatedTrafficLightLogic::getConditions(), LIBSUMO_NAMESPACE::TrafficLight::getConstraintsByFoe(), LIBSUMO_NAMESPACE::TrafficLight::getControlledLinks(), MSLane::getCriticalLeader(), MSCalibrator::getCurrentStateInterval(), MSDriveWay::getDepartureDriveway(), MSLink::getDescription(), MSRailSignalConstraint_Predecessor::getDescription(), NBTrafficLightDefinition::getDescription(), GUIPerson::getDestinationEdgeID(), GUIPerson::getDestinationStopID(), MSDevice_SSM::getDetectionRange(), RODFNet::getDetectorEdge(), MSActuatedTrafficLightLogic::getDetectorPriority(), MSRailSignal::LinkInfo::getDriveWay(), MSRailSignal::LinkInfo::getDriveWay(), GUIVehicle::getDriveWays(), MSSimpleTrafficLightLogic::getEarliest(), GUIMEVehicle::getEdgeID(), GUIPerson::getEdgeID(), LIBSUMO_NAMESPACE::RouteProbe::getEdgeID(), MSMeanData::getEdgeID(), MSDevice_SSM::getExtraTime(), MSLane::getFirstVehicleInformation(), SUMOTrafficObject::getFloatParam(), MSBaseVehicle::getFlowID(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), GUIPerson::getFromEdgeID(), NBEdge::getID(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), MSDriveWay::getJunctionLinkID(), GUIPerson::getLaneID(), LIBSUMO_NAMESPACE::Calibrator::getLaneID(), NEMALogic::getLaneInfoFromNEMAState(), MSParkingArea::getLastFreePos(), MSParkingArea::getLastFreePosWithReservation(), MSLane::getLastVehicleInformation(), MSSimpleTrafficLightLogic::getLatest(), MSVehicle::getLatOffset(), MSLane::getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), MSLane::getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), MSDevice_BTsender::getLocation(), MSDevice_SSM::getMDRAC_PRT(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), MSDevice_SSM::getMeasuresAndThresholds(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPModel_Striping::getNeighboringObstacles(), MSRailSignal::getNewDrivewayID(), MSCalibrator::getNewVehicleID(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSLaneChanger::getOncomingOppositeVehicle(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSDevice_SSM::getOutputFilename(), MSOverheadWire::getOverheadWireSegmentName(), LIBSUMO_NAMESPACE::Simulation::getParameter(), MSActuatedTrafficLightLogic::getParameter(), NEMALogic::getParameter(), GUIContainer::getParameterWindow(), GUILane::getParameterWindow(), GUILane::getParentName(), MSLane::getPartialBehind(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), MSBaseVehicle::getPrefixedParameter(), MSCFModel_CC::getRadarMeasurements(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), LIBSUMO_NAMESPACE::Vehicle::getRoadID(), MSLCHelper::getRoundaboutDistBonus(), LIBSUMO_NAMESPACE::Vehicle::getRouteID(), LIBSUMO_NAMESPACE::Calibrator::getRouteProbeID(), MSBaseVehicle::getRouteValidity(), LIBSUMO_NAMESPACE::TrafficLight::getServedPersonCount(), MSBaseVehicle::getSingularType(), MSTransportable::getSingularType(), LIBSUMO_NAMESPACE::Person::getStage(), MSPerson::MSPersonStage_Access::getStageSummary(), MSStageDriving::getStageSummary(), MSStageTranship::getStageSummary(), MSStageWaiting::getStageSummary(), MSStageWalking::getStageSummary(), MSDevice_Taxi::getStopLane(), MSNet::getStoppingPlaceID(), SUMOTrafficObject::getStringParam(), MSLane::getSurroundingVehicles(), MSActuatedTrafficLightLogic::getTarget(), LIBSUMO_NAMESPACE::Vehicle::getTeleportingIDList(), SUMOTrafficObject::getTimeParam(), MSDriveWay::getTLLinkID(), NIImporter_OpenDrive::getTLSSecure(), MSDevice_ElecHybrid::getTractionSubstationID(), PedestrianEdge< E, L, N, V >::getTravelTime(), MSVehicle::getUpcomingLanesUntil(), MSLane::getUpcomingLinks(), MSDevice_SSM::getUpstreamVehicles(), MSRailSignalConstraint::getVeh(), LIBSUMO_NAMESPACE::Person::getVehicle(), LIBSUMO_NAMESPACE::TrafficLight::getVehicleByTripId(), GUIPerson::getVehicleID(), MSPModel_Striping::getVehicleObstacles(), MSStageTrip::getVehicles(), MSDevice_SSM::getVehiclesOnJunction(), MSEdge::getWaitingVehicle(), MSStoppingPlaceRerouter::getWeight(), MSLink::getZipperSpeed(), GNEEdge::GNEEdge(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), MSLane::handleCollisionBetween(), MSLane::handleIntermodalCollisionBetween(), MSRailSignal::hasInsertionConstraint(), MSDriveWay::hasJoin(), MSDriveWay::hasLinkConflict(), MSBaseVehicle::hasValidRouteStart(), MSVehicle::hasValidRouteStart(), MSRailSignalControl::haveDeadlock(), MSBaseVehicle::haveValidStopEdges(), LIBSUMO_NAMESPACE::POI::highlight(), LIBSUMO_NAMESPACE::Vehicle::highlight(), MSIdling_RandomCircling::idle(), MSIdling_Stop::idle(), MSIdling_TaxiStand::idle(), MSLink::ignoreFoe(), MSVehicle::ignoreFoe(), MSVehicle::ignoreRed(), MSVehicle::Influencer::implicitDeltaPosRemote(), NBNode::indirectLeftShape(), MSLCM_LC2013::inform(), MSLCM_SL2015::inform(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informFollower(), MSLCM_LC2013::informLeader(), MSLCM_SL2015::informLeader(), MSActuatedTrafficLightLogic::init(), MSCalibrator::init(), MSDelayBasedTrafficLightLogic::init(), MSDeterministicHiLevelTrafficLightLogic::init(), MSMeanData::init(), MSRailSignal::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), MSTrafficLightLogic::init(), NEMALogic::init(), MSActuatedTrafficLightLogic::initAttributeOverride(), MSE2Collector::initAuxiliaries(), MESegment::initialise(), MSPModel_JuPedSim::initialize(), MSTrafficLightLogic::initMesoTLSPenalties(), NBOwnTLDef::initNeedsContRelation(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NIImporter_OpenStreetMap::insertEdge(), MSCFModel_IDM::insertionFollowSpeed(), MSBaseVehicle::insertStop(), MSEdge::insertVehicle(), MSLane::insertVehicle(), MSPModel_Striping::insertWalkArePaths(), MSLane::integrateNewVehicles(), IntermodalNetwork< E, L, N, V >::IntermodalNetwork(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isAllowed(), RODFNet::isDestination(), RODFNet::isFalseSource(), MSLane::isInsertionSuccess(), MSBaseVehicle::isJumping(), MSVehicle::isLeader(), MESegment::isOpen(), MSCFModel_CC::isPlatoonLaneChangeSafe(), RODFNet::isSource(), NIImporter_VISUM::isSplitEdge(), MSSOTLTrafficLightLogic::isThresholdPassed(), RORoute::isValid(), MSStageDriving::isWaitingFor(), MESegment::jamThresholdForSpeed(), NBNodeCont::joinNodeCluster(), MSVehicle::joinTrainPartFront(), MSAbstractLaneChangeModel::laneChangeOutput(), MSVehicle::lateralDistanceToLane(), MSE3Collector::leave(), MSE3Collector::leaveFront(), MSVehicle::leaveLane(), MSVehicle::leaveLaneBack(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), MSPedestrianPushButton::loadCrossingEdgeMap(), MSStopOut::loadedContainers(), MSStopOut::loadedPersons(), NIImporter_OpenDrive::loadNetwork(), MSPedestrianPushButton::loadPushButtons(), MEVehicle::loadState(), MSActuatedTrafficLightLogic::loadState(), MSVehicle::loadState(), MSVehicleTransfer::loadState(), ODDistrictCont::makeDistricts(), MSE2Collector::makeMoveNotification(), MSE2Collector::makeVehicleInfo(), NWWriter_OpenDrive::mapmatchRoadObjects(), MSDriveWay::match(), MEVehicle::mayProceed(), MSMeanData::MeanDataValues::MeanDataValues(), MSSOTLE2Sensors::meanVehiclesSpeed(), METriggeredCalibrator::METriggeredCalibrator(), MSTransportableDevice_FCDReplay::move(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), MSPModel_Striping::PState::moveTo(), MSPModel_Striping::PState::moveToNextLane(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), MSPModel_Striping::PState::moveToXY(), libsumo::Helper::moveToXYMap(), MSChargingStation::MSChargingStation(), MSDevice_Battery::MSDevice_Battery(), MSDevice_ElecHybrid::MSDevice_ElecHybrid(), MSDevice_Emissions::MSDevice_Emissions(), MSDevice_StationFinder::MSDevice_StationFinder(), MSDevice_ToC::MSDevice_ToC(), MSDevice_Transportable::MSDevice_Transportable(), MSE2Collector::MSE2Collector(), MSE3Collector::MSE3EntryReminder::MSE3EntryReminder(), MSE3Collector::MSE3LeaveReminder::MSE3LeaveReminder(), MSParkingArea::MSParkingArea(), MSSimpleDriverState::MSSimpleDriverState(), NBLoadedTLDef::myCompute(), MSCalibrator::myStartElement(), MSDevice_FCDReplay::FCDHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), GUIE2Collector::MyWrapper::MyWrapper(), GUIE3Collector::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIMEInductLoop::MyWrapper::MyWrapper(), NBLoadedSUMOTLDef::NBLoadedSUMOTLDef(), NBTrafficLightLogic::NBTrafficLightLogic(), MSPModel_Interacting::nextBlocking(), MSLane::AnyVehicleIterator::nextIsMyVehicles(), MSDevice_Bluelight::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_ElecHybrid::notifyEnter(), MSDevice_Example::notifyEnter(), MSDevice_GLOSA::notifyEnter(), MSDevice_SSM::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSDriveWay::notifyEnter(), MSE2Collector::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSRailSignalConstraint_Predecessor::PassedTracker::notifyEnter(), MSDevice_Bluelight::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_ElecHybrid::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_SSM::notifyLeave(), MSDevice_Transportable::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSDriveWay::notifyLeave(), MSE2Collector::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSDriveWay::notifyLeaveBack(), MSDevice_Battery::notifyMove(), MSDevice_Bluelight::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_ElecHybrid::notifyMove(), MSDevice_Example::notifyMove(), MSDevice_SSM::notifyMove(), MSDevice_StationFinder::notifyMove(), MSE2Collector::notifyMove(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSInductLoop::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), MSDriveWay::notifyReroute(), GNETLSEditorFrame::TLSPrograms::onCmdResetCurrentProgram(), MSVehicle::onRemovalFromNet(), MSLink::opened(), MSEdge::transportable_by_position_sorter::operator()(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), RODFNet::idComp::operator()(), MSBaseVehicle::optimizeSkipped(), MSLaneChangerSublane::outputLCStarted(), MSTriggeredRerouter::overtakingTrain(), NIImporter_VISUM::parse_Connectors_legacy(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_stopPoints(), NIImporter_VISUM::parse_Turns(), NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildOverheadWireSection(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSRoutingEngine::patchSpeedForTurns(), NBLoadedTLDef::SignalGroup::patchTYellow(), PedestrianEdge< E, L, N, V >::PedestrianEdge(), MSCFModel_CC::performAutoLaneChange(), MSVehicle::planMove(), MSVehicle::planMoveInternal(), MSLane::planMovements(), MSDevice_StationFinder::planOpportunisticCharging(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::Influencer::postProcessRemoteControl(), MSDevice_Taxi::prepareStop(), MSAbstractLaneChangeModel::primaryLaneChanged(), AGStreet::print(), MSStageDriving::proceed(), MSDevice_SSM::processEncounters(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), MSVehicle::processNextStop(), NIXMLNodesHandler::processNodeType(), TraCIServerAPI_Vehicle::processSet(), MSVehicle::processTraCISpeedControl(), NIXMLNodesHandler::processTrafficLightDefinitions(), MSDelayBasedTrafficLightLogic::proposeProlongation(), NBNodeCont::pruneSlipLaneNodes(), MSPModel_Striping::PState::PState(), PublicTransportEdge< E, L, N, V >::PublicTransportEdge(), MSDevice_Battery::readParameterValue(), MSOffTrafficLightLogic::rebuildPhase(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedSUMOTLDef::reconstructLogic(), MSNet::registerCollision(), MSPModel_Striping::registerCrossingApproach(), MSLink::removeApproaching(), MSLink::removeApproachingPerson(), LIBSUMO_NAMESPACE::TrafficLight::removeConstraints(), MSVehicle::removePassedDriveItems(), MSCalibrator::removePending(), MSDispatch::removeReservation(), GNEJunction::removeTLSConnections(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBTrafficLightLogicCont::rename(), RORouteDef::repairCurrentRoute(), GNEJunction::replaceIncomingConnections(), MSBaseVehicle::replaceParkingArea(), MSBaseVehicle::replaceRoute(), MSBaseVehicle::replaceRouteEdges(), MSBaseVehicle::replaceStop(), MSTransportable::replaceVehicleType(), MSPerson::replaceWalk(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), MSDevice_SSM::requestsTrajectories(), MSBaseVehicle::reroute(), MSRailSignal::LinkInfo::reroute(), MSStageTrip::reroute(), GUIVehicle::rerouteDRTStop(), MSTransportable::rerouteParkingArea(), MSVehicle::rerouteParkingArea(), MSStoppingPlaceRerouter::rerouteStoppingPlace(), MSDevice_StationFinder::rerouteToChargingStation(), MSDriveWay::reserve(), MSLane::resetManeuverReservation(), MSLane::resetPartialOccupation(), MSDevice_Bluelight::resetVehicle(), MSLaneChanger::resolveDeadlock(), LIBSUMO_NAMESPACE::Vehicle::resume(), MSVehicle::resumeFromStopping(), MSRailSignal::retrieveDriveWay(), RODFNet::revalidateFlows(), NBRailwayTopologyAnalyzer::reverseEdges(), MSStageDriving::routeOutput(), MSLane::safeInsertionSpeed(), RONet::saveAndRemoveRoutesUntil(), ROVehicle::saveAsXML(), MESegment::saveState(), MSDevice::saveState(), MSDevice_Battery::saveState(), MSDevice_Routing::saveState(), MSDevice_StationFinder::saveState(), MSDevice_Transportable::saveState(), MSDevice_Tripinfo::saveState(), MSDevice_Vehroutes::saveState(), MSLane::saveState(), MSSimpleTrafficLightLogic::saveState(), MSTransportable::saveState(), MSTransportableDevice_Routing::saveState(), MSCalibrator::scheduleRemoval(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSVehicle::setAngle(), MSLink::setApproaching(), MSLink::setApproaching(), MSVehicle::setApproachingForAllLinks(), NBNodeCont::setAsTLControlled(), GNEJunction::setAttribute(), MSLane::setBidiLane(), MSEdge::setBidiLanes(), MSBaseVehicle::setDepartAndArrivalEdge(), MSCalibrator::setFlow(), MSBaseVehicle::setJunctionModelParameter(), MSTransportable::setJunctionModelParameter(), MSLane::setManeuverReservation(), MSDevice_Battery::setMaximumBatteryCapacity(), MSDevice_Battery::setMaximumChargeRate(), NBEdge::setNodeBorder(), MSLane::setOpposite(), MSActuatedTrafficLightLogic::setParameter(), MSCFModel_CACC::setParameter(), MSCFModel_CC::setParameter(), MSSimpleTrafficLightLogic::setParameter(), NEMALogic::setParameter(), MSLane::setPartialOccupation(), libsumo::Helper::setRemoteControlled(), libsumo::Helper::setRemoteControlled(), MSLink::setRequestInformation(), LIBSUMO_NAMESPACE::Vehicle::setRoute(), LIBSUMO_NAMESPACE::Vehicle::setRouteID(), MSDevice_Battery::setStoppingThreshold(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), MSStageDriving::setVehicle(), MSOverheadWire::setVoltage(), NBEdge::shiftPositionAtNode(), MSVehicle::slowDownForSchedule(), MSLane::sortManeuverReservations(), IntermodalNetwork< E, L, N, V >::splitEdge(), MSDispatch_TraCI::splitReservation(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSCFModel_EIDM::stopSpeed(), MSRailSignal::storeTraCIVehicles(), MSLane::succLinkSec(), LIBSUMO_NAMESPACE::TrafficLight::swapConstraints(), GNETLSEditorFrame::TLSPrograms::switchProgram(), MSDevice_StationFinder::teleportToChargingStation(), MELoop::teleportVehicle(), libsumo::Helper::TransportableStateListener::transportableStateChanged(), TraCIServer::transportableStateChanged(), MSDevice_ToC::triggerMRM(), MSTriggeredRerouter::triggerRouting(), MSPerson::MSPersonStage_Access::tripInfoOutput(), MSTransportable::tripInfoOutput(), METriggeredCalibrator::tryEmit(), MSPModel_JuPedSim::tryPedestrianInsertion(), MSActuatedTrafficLightLogic::trySwitch(), MSSOTLTrafficLightLogic::trySwitch(), NEMALogic::trySwitch(), MSStopOut::unloadedContainers(), MSStopOut::unloadedPersons(), MSPModel_Interacting::unregisterCrossingApproach(), MSDevice_SSM::update(), MSDevice_SSM::updateAndWriteOutput(), MSVehicle::updateBestLanes(), MSLCHelper::updateBlockerLength(), LIBSUMO_NAMESPACE::TrafficLight::updateConstraints(), MSSOTLTrafficLightLogic::updateCTS(), MSRailSignal::updateCurrentPhase(), MSVehicle::updateDriveItems(), MSDevice_SSM::updateEncounter(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::updateFurtherLanes(), MSLCM_SL2015::updateGaps(), GNENetHelper::AttributeCarriers::updateJunctionID(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSVehicle::Influencer::updateRemoteControlRoute(), MSDispatch::updateReservationFromPos(), MSSwarmTrafficLightLogic::updateSensitivities(), MSVehicle::updateState(), MSAbstractLaneChangeModel::updateTargetLane(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), MSDevice_SSM::useGeoCoords(), NEMALogic::validate_timing(), MSInductLoop::VehicleData::VehicleData(), MSE2Collector::VehicleInfo::VehicleInfo(), MSCalibrator::VehicleRemover::VehicleRemover(), libsumo::Helper::VehicleStateListener::vehicleStateChanged(), MSDynamicShapeUpdater::vehicleStateChanged(), TraCIServer::vehicleStateChanged(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSBatteryExport::write(), MSElecHybridExport::write(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), NBParking::write(), MSElecHybridExport::writeAggregated(), MSLink::writeApproaching(), MSDriveWay::writeBlocks(), MSRailSignal::writeBlocks(), MSDriveWay::writeDepatureBlocks(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSMeanData::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSRoute::writeEdgeIDs(), NWWriter_XML::writeEdgesAndConnections(), MSEmissionExport::writeEmissions(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_OpenDrive::writeInternalEdge(), ROMAAssignments::writeInterval(), MSFullExport::writeLane(), MSQueueExport::writeLane(), MSXMLRawOut::writeLane(), MSDevice_SSM::writeLanesPositions(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), MSTractionSubstation::writeOut(), MSNet::writeOutput(), MSOverheadWire::writeOverheadWireSegmentOutput(), MSFullExport::writePersons(), MSDevice_SSM::writePositions(), NWWriter_OpenDrive::writeRoadObjectPOI(), NWWriter_OpenDrive::writeRoadObjectPoly(), NWWriter_SUMO::writeRoundabout(), NWWriter_OpenDrive::writeSignals(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_SUMO::writeTrafficLight(), MSFCDExport::writeTransportable(), MSXMLRawOut::writeTransportable(), RODFDetectorCon::writeValidationDetectors(), MSAmitranTrajectories::writeVehicle(), MSXMLRawOut::writeVehicle(), MSFullExport::writeVehicles(), PointOfInterest::writeXML(), SUMOPolygon::writeXML(), MSCalibrator::writeXMLOutput(), MSE2Collector::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSRouteProbe::writeXMLOutput(), MSLaneChanger::yieldToDeadlockOncoming(), MSLaneChanger::yieldToOppositeWaiting(), MSCalibrator::~MSCalibrator(), MSDevice_Transportable::~MSDevice_Transportable(), MSLaneSpeedTrigger::~MSLaneSpeedTrigger(), MSTriggeredRerouter::~MSTriggeredRerouter(), and RONet::~RONet().

◆ getIDSecure()

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

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

Definition at line 67 of file Named.h.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSDriveWay::addSidings(), MSLaneChanger::avoidDeadlock(), NLEdgeControlBuilder::build(), MSDriveWay::canUseSiding(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChangeOpposite(), MSDriveWay::checkFlanks(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), MSTriggeredRerouter::checkStopSwitch(), AFRouter< E, N, V, M >::compute(), AStarRouter< _IntermodalEdge, _IntermodalTrip, _MapMatcher >::compute(), DijkstraRouter< _IntermodalEdge, _IntermodalTrip >::compute(), AFBuild< E, N, V, M >::computeArcFlagsAux(), AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree(), NBNode::computeLanes2Lanes(), NBOwnTLDef::computeLogicAndConts(), Node2EdgeRouter< E, N, V, M >::computeNode2Edge(), Node2EdgeRouter< E, N, V, M >::computeNode2Edges(), MSDriveWay::conflictLaneOccupied(), NBPTLineCont::constructRoute(), MSLaneChanger::continueChange(), MSLane::detectCollisions(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::executeMove(), NBRailwayTopologyAnalyzer::extendDirectionPriority(), NBPTLineCont::findWay(), MSDriveWay::foeDriveWayOccupied(), MSCFModel_CACC::followSpeed(), MSCFModel_W99::followSpeed(), MSStopOut::generateOutputForUnfinished(), MSVehicle::getBackPositionOnLane(), NBOwnTLDef::getBestCombination(), NBOwnTLDef::getBestPair(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), NBEdge::Connection::getDescription(), MSLane::getFollowersOnConsecutive(), GUIVehicle::getLaneID(), LIBSUMO_NAMESPACE::Person::getLaneID(), MSVehicle::getLatOffset(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getOncomingOppositeVehicle(), MSLaneChanger::getRealLeader(), GUIVehicle::getShadowLaneID(), GUIVehicle::getTargetLaneID(), MSDevice_SSM::getVehiclesOnJunction(), NBEdgeCont::guessRoundabouts(), MSDriveWay::hasLinkConflict(), MSCFModel_IDM::insertionFollowSpeed(), MSLane::isInsertionSuccess(), MESegment::isOpen(), joinNamedToString(), joinNamedToString(), joinNamedToStringSorting(), joinNamedToStringSorting(), MSPModel_Striping::PState::moveToNextLane(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), MSPModel_Striping::PState::moveToXY(), libsumo::Helper::moveToXYMap(), libsumo::Helper::moveToXYMap_matchingRoutePosition(), MSDevice_Bluelight::notifyEnter(), MSDriveWay::notifyEnter(), MSDevice_Bluelight::notifyLeave(), MSDriveWay::notifyLeave(), MSDriveWay::notifyLeaveBack(), NBConnection::operator<<, MSVehicle::Influencer::postProcessRemoteControl(), MSVehicle::processNextStop(), MSBaseVehicle::replaceRoute(), MSBaseVehicle::reroute(), MSStoppingPlaceRerouter::rerouteStoppingPlace(), MSLaneChanger::resolveDeadlock(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), MSCriticalFollowerDistanceInfo::toString(), MSLeaderDistanceInfo::toString(), MSLeaderInfo::toString(), toString(), toString(), toString(), MSTriggeredRerouter::triggerRouting(), MSVehicle::updateBestLanes(), MSLCHelper::updateBlockerLength(), MSAbstractLaneChangeModel::updateShadowLane(), MSPModel_Striping::PState::walk(), and MSLaneChanger::yieldToDeadlockOncoming().

◆ getIncomingLanes()

◆ getIncomingLinkState()

LinkState MSLane::getIncomingLinkState ( ) const

get the state of the link from the logical predecessor to this lane

Definition at line 3317 of file MSLane.cpp.

References getLinkTo(), getLogicalPredecessorLane(), MSLink::getState(), LINKSTATE_DEADEND, and MSLane().

◆ getIndex()

◆ getIntermodalCollisionAction()

CollisionAction MSLane::getIntermodalCollisionAction ( )
inlinestatic

Definition at line 1366 of file MSLane.h.

References myIntermodalCollisionAction.

◆ getInternalFollowingLane()

const MSLane * MSLane::getInternalFollowingLane ( const MSLane * const target) const

returns the internal lane leading to the given lane or nullptr, if there is none

Definition at line 2757 of file MSLane.cpp.

References MSLane(), and myLinks.

Referenced by MSTractionSubstation::addOverheadWireSegmentToCircuit(), MSPModel_Striping::getNextLane(), and NLTriggerBuilder::parseAndBuildOverheadWireSection().

Here is the caller graph for this function:

◆ getLaneStopOffsets()

const StopOffset & MSLane::getLaneStopOffsets ( ) const

Returns vehicle class specific stopOffsets.

Definition at line 3791 of file MSLane.cpp.

References myLaneStopOffset.

◆ getLaneType()

const std::string & MSLane::getLaneType ( ) const
inline

return the type of this lane

Definition at line 548 of file MSLane.h.

References myLaneType.

◆ getLastAnyVehicle()

MSVehicle * MSLane::getLastAnyVehicle ( ) const

returns the last vehicle that is fully or partially on this lane

Definition at line 2661 of file MSLane.cpp.

References myBidiLane, myPartialVehicles, and myVehicles.

Referenced by MSVehicle::checkRewindLinkLanes(), MSLaneChanger::getColumnleader(), getCriticalLeader(), getDepartSpeed(), getLeaderOnConsecutive(), isInsertionSuccess(), and lastInsertion().

Here is the caller graph for this function:

◆ getLastFullVehicle()

MSVehicle * MSLane::getLastFullVehicle ( ) const

returns the last vehicle for which this lane is responsible or 0

Definition at line 2643 of file MSLane.cpp.

References myVehicles.

Referenced by MSCalibrator::remainingVehicleCapacity().

Here is the caller graph for this function:

◆ getLastVehicleInformation()

const MSLeaderInfo MSLane::getLastVehicleInformation ( const MSVehicle * ego,
double latOffset,
double minPos = 0,
bool allowCached = true ) const

Returns the last vehicles on the lane.

The information about the last vehicles in this lanes in all sublanes occupied by ego are returned. Partial occupators are included

Parameters
[in]egoThe vehicle for which to restrict the returned leaderInfo
[in]minPosThe minimum position from which to start search for leaders
[in]allowCachedWhether the cached value may be used
Returns
Information about the last vehicles

Definition at line 1445 of file MSLane.cpp.

References MSLeaderInfo::addLeader(), anyVehiclesBegin(), DEBUG_COND, DEBUG_COND2, gDebugFlag1, MSNet::getCurrentTimeStep(), Named::getID(), MSNet::getInstance(), MSVehicle::getLatOffset(), MSVehicle::getPositionOnLane(), MSGlobals::gNumSimThreads, MAX2(), myLeaderInfo, myLeaderInfoTime, myWidth, and MSLeaderInfo::toString().

Referenced by addLeaders(), getLeadersOnConsecutive(), isInsertionSuccess(), and MSVehicle::planMoveInternal().

Here is the caller graph for this function:

◆ getLeader()

std::pair< MSVehicle *const, double > MSLane::getLeader ( const MSVehicle * veh,
const double vehPos,
const std::vector< MSLane * > & bestLaneConts,
double dist = -1,
bool checkTmpVehicles = false ) const

Returns the immediate leader of veh and the distance to veh starting on this lane.

Iterates over the current lane to find a leader and then uses getLeaderOnConsecutive()

Parameters
[in]vehThe vehicle for which the information shall be computed
[in]vehPosThe vehicle position relative to this lane (may be negative)
[in]bestLaneContsThe succeding lanes that shall be checked (if any)
[in]distOptional distance to override default (ego stopDist)
[in]checkTmpVehiclesWhether myTmpVehicles should be used instead of myVehicles
Returns

Definition at line 2919 of file MSLane.cpp.

References anyVehiclesBegin(), anyVehiclesEnd(), MSCFModel::brakeGap(), DEBUG_COND2, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), Named::getID(), MSVehicle::getLaneChangeModel(), getLeaderOnConsecutive(), getLength(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), MSAbstractLaneChangeModel::getShadowLane(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSGlobals::gLaneChangeDuration, gPrecision, MSAbstractLaneChangeModel::isChangingLanes(), MSAbstractLaneChangeModel::isOpposite(), myTmpVehicles, myVehicles, and toString().

Referenced by libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChange(), MSLaneChanger::getOncomingOppositeVehicle(), getOppositeFollower(), getOppositeLeader(), MSLCM_LC2013::hasFreeLane(), insertVehicle(), and lastInsertion().

Here is the caller graph for this function:

◆ getLeaderOnConsecutive()

std::pair< MSVehicle *const, double > MSLane::getLeaderOnConsecutive ( double dist,
double seen,
double speed,
const MSVehicle & veh,
const std::vector< MSLane * > & bestLaneConts,
bool considerCrossingFoes = true ) const

Returns the immediate 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
[in]considerCrossingFoesWhether vehicles on crossing foe links should be considered
Returns

Definition at line 2991 of file MSLane.cpp.

References MSCFModel::brakeGap(), DEBUG_COND2, MSGlobals::gComputeLC, gDebugFlag1, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSBaseVehicle::getCurrentRouteEdge(), Named::getID(), Named::getIDSecure(), MSVehicle::getLane(), MSEdge::getLanes(), getLastAnyVehicle(), getLength(), getLinkCont(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSEdge::getNumLanes(), MSBaseVehicle::getRoute(), MSBaseVehicle::getRoutePosition(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), isInternal(), MSVehicle::isLeader(), isLinkEnd(), MAX2(), MSLane(), myPartialVehicles, releaseVehicles(), MSRoute::size(), succLinkSec(), and toString().

Referenced by getLeader().

Here is the caller graph for this function:

◆ getLeadersOnConsecutive()

void MSLane::getLeadersOnConsecutive ( double dist,
double seen,
double speed,
const MSVehicle * ego,
const std::vector< MSLane * > & bestLaneConts,
MSLeaderDistanceInfo & result,
bool oppositeDirection = false ) const

◆ getLength()

double MSLane::getLength ( ) const
inline

Returns the lane's length.

Returns
This lane's length

Definition at line 611 of file MSLane.h.

References myLength.

Referenced by MSStageWalking::activateLeaveReminders(), MSVehicle::adaptToJunctionLeader(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaders(), NLTriggerBuilder::addAccess(), NLHandler::addConnection(), MSPModel_Striping::addCrossingVehs(), NLHandler::addE2Detector(), addIncomingLane(), addLeaders(), MSParkingArea::addLotEntry(), MSTractionSubstation::addOverheadWireInnerSegmentToCircuit(), MSTractionSubstation::addOverheadWireSegmentToCircuit(), MSBaseVehicle::addStop(), libsumo::Helper::applySubscriptionFilterLanes(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), NLDetectorBuilder::buildE2Detector(), NLDetectorBuilder::buildE2Detector(), NLDetectorBuilder::buildInductLoop(), NLTriggerBuilder::buildInnerOverheadWireSegments(), MSDriveWay::buildRoute(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChange(), checkForPedestrians(), MSVehicle::checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::classifyEncounter(), MSVehicle::computeAngle(), MSTrainHelper::computeCarriages(), MSLink::computeDistToDivergence(), MSVehicle::computeFurtherLanes(), GUILane::debugDrawFoeIntersections(), detectCollisionBetween(), GUIVehicle::drawRouteHelper(), MSVehicle::estimateTimeToNextStop(), executeMovements(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSMeanData_Net::getAttributeValue(), MSVehicle::getBackPositionOnLane(), getBruttoOccupancy(), GUILane::getColorValue(), MSLaneChanger::getColumnleader(), MSAbstractLaneChangeModel::getCooperativeHelpSpeed(), getCriticalLeader(), MSRoute::getDistanceBetween(), MSVehicle::getDistanceToLeaveJunction(), getFirstInternalInConnection(), getFollowersOnConsecutive(), MSLink::getInternalLengthsAfter(), MSLink::getInternalLengthsBefore(), libsumo::Helper::getLaneChecking(), NLShapeHandler::getLanePos(), getLeader(), MSLink::getLeaderInfo(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), MSLink::ConflictInfo::getLengthBehindCrossing(), MSLink::getLengthsBeforeCrossing(), getNettoOccupancy(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), LIBSUMO_NAMESPACE::Vehicle::getNextTLS(), getOppositeFollower(), MSCFModel_CC::getParameter(), MSVehicle::getPastLanesUntil(), NLTriggerBuilder::getPosition(), MSVehicle::getPositionAlongBestLanes(), NLDetectorBuilder::getPositionChecking(), MSLaneChanger::getRealLeader(), MSLCHelper::getRoundaboutDistBonus(), getSpaceTillLastStanding(), getSurroundingVehicles(), LIBSUMO_NAMESPACE::Lane::getTraveltime(), MSVehicle::getUpcomingLanesUntil(), getUpcomingLinks(), MSPModel_Striping::getVehicleObstacles(), handleCollisionBetween(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSE2Collector::initAuxiliaries(), insertVehicle(), MSPModel_Striping::insertWalkArePaths(), MSCFModel_EIDM::internalspeedlimit(), isInsertionSuccess(), MSVehicle::joinTrainPartFront(), lastInsertion(), MSVehicle::leaveLane(), MSPModel_Striping::moveInDirectionOnLane(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), MSE2Collector::MSE2Collector(), MSParkingArea::MSParkingArea(), MSDevice_GLOSA::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_ElecHybrid::notifyMove(), MSDevice_StationFinder::notifyMove(), NLTriggerBuilder::parseAndBeginParkingArea(), NLTriggerBuilder::parseAndBuildChargingStation(), NLTriggerBuilder::parseAndBuildOverheadWireSegment(), NLTriggerBuilder::parseAndBuildStoppingPlace(), MSRouteHandler::parseWalkPositions(), MSVehicle::planMoveInternal(), MSVehicle::Influencer::postProcessRemoteControl(), MSVehicle::processLaneAdvances(), MSLink::recheckSetRequestInformation(), MSPModel_Striping::registerCrossingApproach(), MSCalibrator::remainingVehicleCapacity(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), setBidiLane(), MSVehicle::setBlinkerInformation(), setOpposite(), MSLink::setRequestInformation(), MSVehicle::unsafeLinkAhead(), MSVehicle::updateBestLanes(), MSVehicle::validatePosition(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSMeanData::writeEdge(), and MSQueueExport::writeLane().

◆ getLengthGeometryFactor() [1/2]

double MSLane::getLengthGeometryFactor ( ) const
inline

return shape.length() / myLength

Definition at line 538 of file MSLane.h.

References myLengthGeometryFactor.

Referenced by GUILane::getColorValue(), and GUILane::getScaleValue().

Here is the caller graph for this function:

◆ getLengthGeometryFactor() [2/2]

virtual double MSLane::getLengthGeometryFactor ( bool ) const
inlinevirtual

Reimplemented in GUILane.

Definition at line 290 of file MSLane.h.

References myLengthGeometryFactor.

Referenced by MSTrainHelper::computeCarriages(), and GUIMEVehicle::getVisualPosition().

Here is the caller graph for this function:

◆ getLinkCont()

const std::vector< MSLink * > & MSLane::getLinkCont ( ) const
inline

returns the container with all links !!!

Definition at line 729 of file MSLane.h.

References myLinks.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSPModel_Striping::addCrossingVehs(), MSPModel_JuPedSim::addWaitingSet(), MSDriveWay::buildRoute(), MSDevice_SSM::classifyEncounter(), MSVehicle::computeFurtherLanes(), MSLink::computeParallelLink(), MSLink::contIntersect(), GUILane::debugDrawFoeIntersections(), GUILane::drawGL(), MSPModel_JuPedSim::execute(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSVehicle::getBestLanesContinuation(), MSLink::getCorrespondingExitLink(), LIBSUMO_NAMESPACE::Lane::getInternalFoes(), MSLink::getInternalLengthsAfter(), LIBSUMO_NAMESPACE::Vehicle::getLeader(), MSLink::getLeaderInfo(), getLeaderOnConsecutive(), MSLink::getLengthsBeforeCrossing(), MESegment::getLink(), LIBSUMO_NAMESPACE::Lane::getLinks(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextWalkingArea(), MSVehicle::getPastLanesUntil(), MSVehicle::getPositionAlongBestLanes(), MSLCHelper::getRoundaboutDistBonus(), LIBSUMO_NAMESPACE::TrafficLight::getServedPersonCount(), getSurroundingVehicles(), MSVehicle::getUpcomingLanesUntil(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSTrafficLightLogic::init(), NEMALogic::init(), MSE2Collector::initAuxiliaries(), isInsertionSuccess(), NEMALogic::isLeftTurnLane(), MSVehicle::isOppositeLane(), MSDriveWay::isSwitch(), MSVehicle::planMoveInternal(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::processLaneAdvances(), MSVehicle::setBlinkerInformation(), MSLink::setRequestInformation(), MSVehicle::updateBestLanes(), MSVehicle::updateDriveItems(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().

◆ getLinkTo()

◆ getLogicalPredecessorLane() [1/2]

◆ getLogicalPredecessorLane() [2/2]

MSLane * MSLane::getLogicalPredecessorLane ( const MSEdge & fromEdge) const

return the (first) predecessor lane from the given edge

Definition at line 3261 of file MSLane.cpp.

References myIncomingLanes.

◆ getMaximumBrakeDist()

double MSLane::getMaximumBrakeDist ( ) const

compute maximum braking distance on this lane

Definition at line 2907 of file MSLane.cpp.

References MSNet::getInstance(), MSVehicleControl::getMaxSpeedFactor(), MSVehicleControl::getMinDeceleration(), MSVehicleControl::getMinDecelerationRail(), getSpeedLimit(), MSNet::getVehicleControl(), isRailway(), MIN2(), myPermissions, and SVC_SHIP.

Referenced by getFollowersOnConsecutive(), and getOppositeFollower().

Here is the caller graph for this function:

◆ getMeanSpeed()

double MSLane::getMeanSpeed ( ) const

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 3439 of file MSLane.cpp.

References getVehiclesSecure(), myEdge, myMaxSpeed, myVehicles, and releaseVehicles().

Referenced by GUILane::getColorValue(), getDepartSpeed(), GUILane::getScaleValue(), LIBSUMO_NAMESPACE::Lane::getTraveltime(), MSCalibrator::invalidJam(), isInsertionSuccess(), and MSFullExport::writeLane().

Here is the caller graph for this function:

◆ getMeanSpeedBike()

double MSLane::getMeanSpeedBike ( ) const

get the mean speed of all bicycles on this lane

Definition at line 3460 of file MSLane.cpp.

References getVehiclesSecure(), myMaxSpeed, myVehicles, releaseVehicles(), and SVC_BICYCLE.

◆ getMissingRearGap()

double MSLane::getMissingRearGap ( const MSVehicle * leader,
double backOffset,
double leaderSpeed ) const

return by how much further the leader must be inserted to avoid rear end collisions

Definition at line 2891 of file MSLane.cpp.

References MSVehicle::getCarFollowModel(), getFollowersOnConsecutive(), MSCFModel::getMaxDecel(), MSCFModel::getSecureGap(), and MSVehicle::getSpeed().

Referenced by freeInsertion(), and isInsertionSuccess().

Here is the caller graph for this function:

◆ getMoveReminders()

const std::vector< MSMoveReminder * > & MSLane::getMoveReminders ( ) const
inline

Return the list of this lane's move reminders.

Returns
Previously added move reminder

Definition at line 323 of file MSLane.h.

References myMoveReminders.

Referenced by MSStageWalking::activateEntryReminders(), MSVehicle::adaptLaneEntering2MoveReminder(), MSVehicle::enterLaneAtInsertion(), and MSVehicle::enterLaneAtLaneChange().

Here is the caller graph for this function:

◆ getNettoOccupancy()

double MSLane::getNettoOccupancy ( ) const

Returns the netto (excluding minGaps) occupancy of this lane during the last step (including minGaps).

Returns
The occupancy during the last step

Definition at line 3411 of file MSLane.cpp.

References getFractionalVehicleLength(), getLength(), MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), myLength, myNettoVehicleLengthSum, myVehicles, and releaseVehicles().

Referenced by GUILane::getColorValue(), GUILane::getParameterWindow(), GUILane::getScaleValue(), and MSFullExport::writeLane().

Here is the caller graph for this function:

◆ getNextNormal()

const MSEdge * MSLane::getNextNormal ( ) const

Returns the lane's follower if it is an internal lane, the edge of the lane otherwise.

Returns
This lane's follower

Definition at line 2465 of file MSLane.cpp.

References myEdge.

Referenced by MSBaseVehicle::addStop(), MSDriveWay::buildRoute(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), and MSVehicle::updateBestLanes().

Here is the caller graph for this function:

◆ getNormalIncomingLanes()

std::vector< const MSLane * > MSLane::getNormalIncomingLanes ( ) const

get the list of all direct (disregarding internal predecessors) non-internal predecessor lanes of this lane

Definition at line 3338 of file MSLane.cpp.

References myApproachingLanes.

Referenced by MSTractionSubstation::addOverheadWireSegmentToCircuit(), and NLTriggerBuilder::parseAndBuildOverheadWireSection().

Here is the caller graph for this function:

◆ getNormalPredecessorLane()

const MSLane * MSLane::getNormalPredecessorLane ( ) const

get normal lane leading to this internal lane, for normal lanes, the lane itself is returned

Definition at line 3241 of file MSLane.cpp.

References getLogicalPredecessorLane(), getNormalPredecessorLane(), and isInternal().

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), GUILane::drawGL(), MSLink::getCustomConflict(), MSLink::getLeaderInfo(), getNormalPredecessorLane(), MSLCHelper::isBidiFollower(), MSLCHelper::isBidiLeader(), MSVehicle::isLeader(), MSDriveWay::isSwitch(), and MSVehicle::updateBestLanes().

Here is the caller graph for this function:

◆ getNormalSuccessorLane()

const MSLane * MSLane::getNormalSuccessorLane ( ) const

get normal lane following this internal lane, for normal lanes, the lane itself is returned

Definition at line 3251 of file MSLane.cpp.

References getCanonicalSuccessorLane(), getNormalSuccessorLane(), and isInternal().

Referenced by GUILane::drawGL(), MSLink::getCustomConflict(), getNormalSuccessorLane(), MSLCHelper::isBidiFollower(), and MSLCHelper::isBidiLeader().

Here is the caller graph for this function:

◆ getNumericalID()

int MSLane::getNumericalID ( ) const
inline

Returns this lane's numerical id.

Returns
This lane's numerical id

Definition at line 525 of file MSLane.h.

References myNumericalID.

Referenced by MSDevice_ToC::checkDynamicToC(), and MSPModel_Striping::walkingarea_path_sorter::operator()().

Here is the caller graph for this function:

◆ getNumRNGs()

int MSLane::getNumRNGs ( )
inlinestatic

return the number of RNGs

Definition at line 251 of file MSLane.h.

References myRNGs.

Referenced by loadRNGState(), and saveRNGStates().

Here is the caller graph for this function:

◆ getOpposite()

MSLane * MSLane::getOpposite ( ) const

return the neighboring opposite direction lane for lane changing or nullptr

Definition at line 4383 of file MSLane.cpp.

References myOpposite.

Referenced by MSLaneChanger::changeOpposite(), MSVehicle::executeMove(), MSVehicle::getUpstreamOppositeLanes(), MSLaneChangerSublane::startChangeSublane(), and swapAfterLaneChange().

Here is the caller graph for this function:

◆ getOppositeFollower()

std::pair< MSVehicle *const, double > MSLane::getOppositeFollower ( const MSVehicle * ego) const

◆ getOppositeLeader()

std::pair< MSVehicle *const, double > MSLane::getOppositeLeader ( const MSVehicle * ego,
double dist,
bool oppositeDir,
MinorLinkMode mLinkMode = MinorLinkMode::FOLLOW_NEVER ) const

◆ getOppositePos()

double MSLane::getOppositePos ( double pos) const

return the corresponding position on the opposite lane

Definition at line 4395 of file MSLane.cpp.

References MAX2(), and myLength.

Referenced by libsumo::Helper::applySubscriptionFilterLateralDistance(), MSLaneChanger::changeOpposite(), MSLaneChangerSublane::checkChangeOpposite(), MSLaneChanger::computeSafeOppositeLength(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), getOppositeFollower(), getOppositeLeader(), and MSAbstractLaneChangeModel::primaryLaneChanged().

Here is the caller graph for this function:

◆ getOutgoingViaLanes()

const std::vector< std::pair< const MSLane *, const MSEdge * > > MSLane::getOutgoingViaLanes ( ) const

get the list of outgoing lanes

Definition at line 3328 of file MSLane.cpp.

References myLinks.

Referenced by MSTractionSubstation::addOverheadWireSegmentToCircuit(), and NLTriggerBuilder::parseAndBuildOverheadWireSection().

Here is the caller graph for this function:

◆ getOutlineShape()

const PositionVector * MSLane::getOutlineShape ( ) const
inline

Definition at line 1355 of file MSLane.h.

References myOutlineShape.

Referenced by MSPModel_JuPedSim::buildPedestrianNetwork().

Here is the caller graph for this function:

◆ getParallelLane()

MSLane * MSLane::getParallelLane ( int offset,
bool includeOpposite = true ) const

Returns the lane with the given offset parallel to this one or 0 if it does not exist.

Parameters
[in]offsetThe offset of the result lane

Definition at line 2850 of file MSLane.cpp.

References myEdge.

Referenced by libsumo::Helper::applySubscriptionFilterLanes(), libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChange(), MSLink::computeParallelLink(), MSLaneChanger::continueChange(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), MSAbstractLaneChangeModel::getShadowLane(), MSLCM_SL2015::mustOvertakeStopped(), GUILane::neighLaneNotBidi(), and MSAbstractLaneChangeModel::updateTargetLane().

Here is the caller graph for this function:

◆ getParallelOpposite()

MSLane * MSLane::getParallelOpposite ( ) const

return the opposite direction lane of this lanes edge or nullptr

Definition at line 4389 of file MSLane.cpp.

References myEdge.

Referenced by libsumo::Helper::applySubscriptionFilterLateralDistance(), MSDevice_SSM::findSurroundingVehicles(), and MSVehicle::planMoveInternal().

Here is the caller graph for this function:

◆ getParameter()

const std::string Parameterised::getParameter ( const std::string & key,
const std::string defaultValue = "" ) const
virtualinherited

Returns the value for a given key.

Parameters
[in]keyThe key to ask for
[in]defaultValueThe default value to return if no value is stored under the key
Returns
The value stored under the key

Reimplemented in MSActuatedTrafficLightLogic, MSSimpleTrafficLightLogic, and NEMALogic.

Definition at line 90 of file Parameterised.cpp.

References myMap.

Referenced by MSPModel_JuPedSim::add(), NBRailwayTopologyAnalyzer::addBidiEdge(), NBEdge::addRestrictedLane(), FareModul::addStop(), NBEdge::append(), NBEdgeCont::attachRemoved(), GUIInductLoop::buildDetectorGUIRepresentation(), MSDevice_ElecHybrid::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), ROEdge::cacheParamRestrictions(), SUMOVTypeParameter::cacheParamRestrictions(), MSRailSignal::constraintsAllow(), GUINet::createTLWrapper(), GNEEdge::drawEdgeName(), GNEConnection::drawEdgeValues(), GNEGenericData::drawFilteredAttribute(), GUIEdge::drawGL(), GUIPointOfInterest::drawGL(), GNEPOI::drawPOI(), EnergyParams::EnergyParams(), MSPModel_JuPedSim::execute(), MSDevice_SSM::filterByConflictType(), LIBSUMO_NAMESPACE::TrafficLight::findConstraintsDeadLocks(), LIBSUMO_NAMESPACE::Simulation::findIntermodalRoute(), GUIBusStop::finishedLoading(), MSStoppingPlace::finishedLoading(), GNEEdgeData::getColorValue(), GNEEdgeRelData::getColorValue(), GNETAZRelData::getColorValue(), GUIEdge::getColorValue(), GUILane::getColorValue(), MSDevice_SSM::getDetectionRange(), MSDevice_SSM::getExtraTime(), LIBSUMO_NAMESPACE::TrafficLight::getFutureTripIds(), MSTLLogicControl::WAUTSwitchProcedure::getGSPTime(), RORoutable::getMaxSpeed(), MSDevice_SSM::getMDRAC_PRT(), MSDevice_SSM::getMeasuresAndThresholds(), MSSOTLRequestPolicy::getMinDecisionalPhaseDuration(), MSDevice_SSM::getOutputFilename(), LIBSUMO_NAMESPACE::Simulation::getParameter(), MSSimpleTrafficLightLogic::getParameter(), NEMALogic::getParameter(), MSBaseVehicle::getPrefixedParameter(), GNETAZRelData::getScaleValue(), LIBSUMO_NAMESPACE::Vehicle::getStopParameter(), SUMOTrafficObject::getStringParam(), MSRailSignalConstraint::getVeh(), LIBSUMO_NAMESPACE::TrafficLight::getVehicleByTripId(), MSStoppingPlaceRerouter::getWeight(), MSRailSignal::hasInsertionConstraint(), MSInsertionControl::hasTaxiDeviceType(), MSRailSignalControl::haveDeadlock(), MSLink::ignoreFoe(), MSSOTLPhasePolicy::init(), MSStageDriving::init(), PushButtonLogic::init(), SigmoidLogic::init(), SUMOVTypeParameter::initRailVisualizationParameters(), NWWriter_OpenDrive::mapmatchRoadObjects(), mergeParameters(), MSDispatch_Greedy::MSDispatch_Greedy(), MSDispatch_GreedyShared::MSDispatch_GreedyShared(), MSSimpleTrafficLightLogic::MSSimpleTrafficLightLogic(), MSSOTLPolicy::MSSOTLPolicy(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), NIImporter_OpenStreetMap::RelationHandler::myEndElement(), MSRailSignalConstraint_Predecessor::PassedTracker::notifyEnter(), GNEVType::overwriteVType(), NWWriter_OpenDrive::parseTrafficSign(), NBTrafficLightDefinition::railSignalUncontrolled(), MSDevice_Battery::readParameterValue(), MSDevice_SSM::requestsTrajectories(), MSDevice_Bluelight::resetVehicle(), GNEEdgeData::setColor(), GNEEdgeRelData::setColor(), NBTrafficLightLogicCont::setOpenDriveSignalParameters(), NBEdge::setOrigID(), MSVehicle::slowDownForSchedule(), NBEdgeCont::splitAt(), LIBSUMO_NAMESPACE::TrafficLight::swapParameters(), LIBSUMO_NAMESPACE::TrafficLight::updateConstraints(), NBEdge::updateRemovedNodes(), MSDevice_SSM::useGeoCoords(), MSDevice_SSM::writeLanesPositions(), NWWriter_DlrNavteq::writeLinksUnsplitted(), MSDevice_SSM::writePositions(), NWWriter_OpenDrive::writeRoadObjectPOI(), NWWriter_OpenDrive::writeRoadObjectPoly(), NWWriter_OpenDrive::writeRoadObjects(), and NWWriter_OpenDrive::writeSignals().

◆ getParametersMap()

const Parameterised::Map & Parameterised::getParametersMap ( ) const
inherited

◆ getParametersStr()

std::string Parameterised::getParametersStr ( const std::string kvsep = "=",
const std::string sep = "|" ) const
inherited

Returns the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN".

Definition at line 130 of file Parameterised.cpp.

References myMap.

Referenced by GNEAttributeCarrier::getCommonAttribute().

Here is the caller graph for this function:

◆ getParkingVehicles()

const std::set< const MSBaseVehicle * > & MSLane::getParkingVehicles ( ) const
inline

retrieve the parking vehicles (see GUIParkingArea)

Definition at line 1259 of file MSLane.h.

References myParkingVehicles.

Referenced by MSLane::StoringVisitor::add().

Here is the caller graph for this function:

◆ getPartialBehind()

MSVehicle * MSLane::getPartialBehind ( const MSVehicle * ego) const

◆ getPartialBeyond()

MSLeaderInfo MSLane::getPartialBeyond ( ) const

get all vehicles that are inlapping from consecutive edges

Definition at line 4237 of file MSLane.cpp.

References MSVehicle::getLatOffset(), MSVehicle::isFrontOnLane(), myPartialVehicles, and myWidth.

◆ getPartialVehicleNumber()

int MSLane::getPartialVehicleNumber ( ) const
inline

Returns the number of vehicles partially on this lane (for which this lane is not responsible).

Returns
The number of vehicles touching this lane but with their front on another lane

Definition at line 472 of file MSLane.h.

References myPartialVehicles.

◆ getPermissions()

SVCPermissions MSLane::getPermissions ( ) const
inline

Returns the vehicle class permissions for this lane.

Returns
This lane's allowed vehicle classes

Definition at line 619 of file MSLane.h.

References myPermissions.

Referenced by MSSwarmTrafficLightLogic::allowLine(), MSVehicle::computeFurtherLanes(), GUILane::drawGL(), GUILane::drawLinkRule(), MSVehicle::enterLaneAtLaneChange(), incorporateVehicle(), MSInternalJunction::indirectBicycleTurn(), MSDelayBasedTrafficLightLogic::init(), GUIApplicationWindow::onCmdEditChosen(), MSPModel_Striping::PState::PState(), and MSVehicle::updateFurtherLanes().

Here is the caller graph for this function:

◆ getRightmostSublane()

int MSLane::getRightmostSublane ( ) const
inline

Definition at line 1204 of file MSLane.h.

References myRightmostSublane.

Referenced by MSLCM_SL2015::_wantsChangeSublane().

Here is the caller graph for this function:

◆ getRightSideOnEdge()

◆ getRNG()

SumoRNG * MSLane::getRNG ( ) const
inline

return the associated RNG

Definition at line 246 of file MSLane.h.

References myRNGIndex, and myRNGs.

Referenced by MSBaseVehicle::getRNG().

Here is the caller graph for this function:

◆ getRNGIndex()

int MSLane::getRNGIndex ( ) const
inline

returns the associated RNG index

Definition at line 241 of file MSLane.h.

References myRNGIndex.

Referenced by MSEdgeControl::changeLanes(), and MSBaseVehicle::getRNGIndex().

Here is the caller graph for this function:

◆ getShape() [1/2]

const PositionVector & MSLane::getShape ( ) const
inline

◆ getShape() [2/2]

virtual const PositionVector & MSLane::getShape ( bool ) const
inlinevirtual

Reimplemented in GUILane.

Definition at line 294 of file MSLane.h.

References myShape.

Referenced by MSLane::StoringVisitor::add(), MSPModel_JuPedSim::add(), NLHandler::addConnection(), MSParkingArea::addLotEntry(), MSTractionSubstation::addOverheadWireClampToCircuit(), MSPModel_JuPedSim::addWaitingSet(), GUIE3Collector::MyWrapper::buildDefinition(), MSPModel_JuPedSim::buildPedestrianNetwork(), MSLane::by_connections_to_sorter::by_connections_to_sorter(), MSPerson::checkAccess(), MSDevice_SSM::classifyEncounter(), MSTrainHelper::computeCarriages(), MSLink::computeDistToDivergence(), MSLink::contIntersect(), libsumo::Helper::convertCartesianToRoadMap(), GUILane::debugDrawFoeIntersections(), GUIVehicle::drawAction_drawLinkItems(), GUIBaseVehicle::drawStopLabels(), fill(), libsumo::Helper::findObjectShape(), MSLaneChanger::foundHilltop(), LIBSUMO_NAMESPACE::Lane::getAngle(), MEVehicle::getAngle(), MSStage::getLanePosition(), MSPModel_Striping::getNextLaneObstacles(), GUIContainer::getPosition(), LIBSUMO_NAMESPACE::Person::getSlope(), MEVehicle::getSlope(), LIBSUMO_NAMESPACE::InductionLoop::getTree(), GUIMEVehicle::getVisualPosition(), GUIOverheadWire::GUIOverheadWire(), GUIOverheadWireClamp::GUIOverheadWireClamp(), MSLane::incoming_lane_priority_sorter::incoming_lane_priority_sorter(), MSInternalJunction::indirectBicycleTurn(), GUIChargingStation::initAppearance(), MSPModel_Striping::insertWalkArePaths(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), MSLink::MSLink(), MSParkingArea::MSParkingArea(), MSDevice_FCDReplay::FCDHandler::myStartElement(), GUIInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIMEInductLoop::MyWrapper::MyWrapper(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::outgoing_lane_priority_sorter(), libsumo::Helper::patchShapeDistance(), MSLink::recheckSetRequestInformation(), MSStageDriving::setArrived(), MSEdge::setBidiLanes(), MSLink::setRequestInformation(), LIBSUMO_NAMESPACE::InductionLoop::storeShape(), and MSStageWalking::walkDistance().

◆ getSpaceTillLastStanding()

double MSLane::getSpaceTillLastStanding ( const MSVehicle * ego,
bool & foundStopped ) const

return the empty space up to the last standing vehicle or the empty space on the whole lane if no vehicle is standing

Todo
if ego isn't on this lane, we could use a cached value

Definition at line 4694 of file MSLane.cpp.

References getLength(), MSBaseVehicle::getVehicleType(), getWidth(), MSVehicleType::getWidth(), MSGlobals::gSublane, MSVehicle::isFrontOnLane(), myVehicles, and SUMO_const_haltingSpeed.

Referenced by MSVehicle::checkRewindLinkLanes().

Here is the caller graph for this function:

◆ getSpeedLimit()

◆ getStopWatch()

std::vector< StopWatch< std::chrono::nanoseconds > > & MSLane::getStopWatch ( )
inline

Definition at line 1291 of file MSLane.h.

References myStopWatch.

◆ getSurroundingVehicles()

std::set< MSVehicle * > MSLane::getSurroundingVehicles ( double startPos,
double downstreamDist,
double upstreamDist,
std::shared_ptr< LaneCoverageInfo > checkedLanes ) const

Returns all vehicles closer than downstreamDist along the road network starting on the given position. Predecessor lanes are searched upstream for the given upstreamDistance.

Note
Re-implementation of the corresponding method in MSDevice_SSM, which cannot be easily adapted, as it gathers additional information for conflict lanes, etc.
Parameters
[in]startPos- start position of the search on the first lane
[in]downstreamDist- distance to search downstream
[in]upstreamDist- distance to search upstream
[in/out]checkedLanes - lanes, which were already scanned (current lane is added, if not present, otherwise the scan is aborted; TODO: this may disregard unscanned parts of the lane in specific circular set ups.)
Returns
vehs - List of vehicles found

Definition at line 4252 of file MSLane.cpp.

References Named::getID(), getIncomingLanes(), getLength(), getLinkCont(), getSurroundingVehicles(), getVehiclesInRange(), MAX2(), MIN2(), MSLane(), Named::myID, and myLength.

Referenced by libsumo::Helper::applySubscriptionFilterLanes(), and getSurroundingVehicles().

Here is the caller graph for this function:

◆ getThreadIndex()

int MSLane::getThreadIndex ( ) const
inline

returns the associated thread index

Definition at line 236 of file MSLane.h.

References MSGlobals::gNumSimThreads, and myRNGIndex.

◆ getUpcomingJunctions()

std::vector< const MSJunction * > MSLane::getUpcomingJunctions ( double pos,
double range,
const std::vector< MSLane * > & contLanes ) const

Returns all upcoming junctions within given range along the given (non-internal) continuation lanes measured from given position.

Definition at line 4324 of file MSLane.cpp.

References getUpcomingLinks().

◆ getUpcomingLinks()

std::vector< const MSLink * > MSLane::getUpcomingLinks ( double pos,
double range,
const std::vector< MSLane * > & contLanes ) const

Returns all upcoming links within given range along the given (non-internal) continuation lanes measured from given position.

Definition at line 4335 of file MSLane.cpp.

References getEntryLink(), Named::getID(), MSLink::getInternalLengthsAfter(), MSLink::getLane(), getLength(), getLinkTo(), isInternal(), and MSLane().

Referenced by libsumo::Helper::applySubscriptionFilterTurn(), and getUpcomingJunctions().

Here is the caller graph for this function:

◆ getVehicleMaxSpeed() [1/2]

double MSLane::getVehicleMaxSpeed ( const SUMOTrafficObject *const veh) const
inline

Returns the lane's maximum speed, given a vehicle's speed limit adaptation.

Parameters
[in]Thevehicle to return the adapted speed limit for
Returns
This lane's resulting max. speed

Definition at line 574 of file MSLane.h.

References SUMOTrafficObject::getMaxSpeed(), and getVehicleMaxSpeed().

Referenced by MSCFModel_EIDM::_v(), MSLCM_LC2013::_wantsChange(), MSLCM_LC2013::anticipateFollowSpeed(), MSE2Collector::calculateTimeLossAndTimeOnDetector(), MSLaneChanger::changeOpposite(), GUIApplicationWindow::checkGamingEvents(), MSLaneChanger::checkOppositeStop(), MSLaneChanger::computeOvertakingTime(), MSLaneChanger::computeSurplusGap(), MEVehicle::estimateLeaveSpeed(), MSVehicle::estimateTimeToNextStop(), MSStoppingPlaceRerouter::evaluateDestination(), MSCFModel::finalizeSpeed(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel_CACC::followSpeed(), MSCFModel_IDM::followSpeed(), MSCFModel_IDM::freeSpeed(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), getCriticalLeader(), getDepartSpeed(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), GUIBaseVehicle::getScaleValue(), getVehicleMaxSpeed(), MSLink::getZipperSpeed(), MSVehicle::Influencer::implicitSpeedRemote(), MSCFModel::interactionGap(), MSCFModel_EIDM::interactionGap(), MSCFModel_IDM::interactionGap(), MSCFModel_EIDM::internalspeedlimit(), isInsertionSuccess(), MSPModel_Striping::moveInDirectionOnLane(), MSDevice_Bluelight::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), MSVehicle::planMoveInternal(), MEVehicle::setApproaching(), MSVehicle::setBlinkerInformation(), MSCFModel_IDM::stopSpeed(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSEdge::validateDepartSpeed(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().

Here is the caller graph for this function:

◆ getVehicleMaxSpeed() [2/2]

double MSLane::getVehicleMaxSpeed ( const SUMOTrafficObject *const veh,
double vehMaxSpeed ) const
inline

◆ getVehicleNumber()

int MSLane::getVehicleNumber ( ) const
inline

Returns the number of vehicles on this lane (for which this lane is responsible).

Returns
The number of vehicles with their front on this lane

Definition at line 456 of file MSLane.h.

References myVehicles.

Referenced by executeMovements(), MSCalibrator::invalidJam(), MSVehicle::planMoveInternal(), MSCalibrator::remainingVehicleCapacity(), and MSFullExport::writeLane().

Here is the caller graph for this function:

◆ getVehicleNumberWithPartials()

int MSLane::getVehicleNumberWithPartials ( ) const
inline

Returns the number of vehicles on this lane (including partial occupators).

Returns
The number of vehicles with intersecting this lane

Definition at line 464 of file MSLane.h.

References myPartialVehicles, and myVehicles.

Referenced by MSVehicleTransfer::checkInsertions(), detectCollisions(), MSPModel_Striping::getNextLaneObstacles(), isInsertionSuccess(), MSPModel_Striping::moveInDirectionOnLane(), MSVehicle::planMoveInternal(), and MSPModel_Striping::PState::PState().

Here is the caller graph for this function:

◆ getVehiclesInRange()

std::set< MSVehicle * > MSLane::getVehiclesInRange ( const double a,
const double b ) const

Returns all vehicles on the lane overlapping with the interval [a,b].

Note
Does not consider vehs with front on subsequent lanes

Definition at line 4304 of file MSLane.cpp.

References getVehiclesSecure(), and releaseVehicles().

Referenced by libsumo::Helper::applySubscriptionFilterLanes(), and getSurroundingVehicles().

Here is the caller graph for this function:

◆ getVehiclesSecure()

virtual const VehCont & MSLane::getVehiclesSecure ( ) const
inlinevirtual

Returns the vehicles container; locks it for microsimulation.

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

Returns
The vehicles on this lane

Reimplemented in GUILane.

Definition at line 483 of file MSLane.h.

References myVehicles.

Referenced by MSLane::StoringVisitor::add(), libsumo::Helper::applySubscriptionFilterTurn(), MSVehicleTransfer::checkInsertions(), getBruttoOccupancy(), getEmissions(), getHarmonoise_NoiseEmissions(), LIBSUMO_NAMESPACE::Lane::getLastStepHaltingNumber(), LIBSUMO_NAMESPACE::Lane::getLastStepLength(), LIBSUMO_NAMESPACE::Lane::getLastStepVehicleIDs(), MSVehicle::getLeader(), getLeaderOnConsecutive(), getMeanSpeed(), getMeanSpeedBike(), getNettoOccupancy(), getVehiclesInRange(), MSPedestrianPushButton::isActiveForEdge(), MSTransportableDevice_FCDReplay::move(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdRemoveObject(), GUIViewTraffic::onGamingClick(), MSVehicle::planMoveInternal(), and MSXMLRawOut::writeLane().

Here is the caller graph for this function:

◆ getVehicleStopOffset()

double MSLane::getVehicleStopOffset ( const MSVehicle * veh) const

Returns vehicle class specific stopOffset for the vehicle.

Definition at line 3778 of file MSLane.cpp.

References MSBaseVehicle::getVClass(), and myLaneStopOffset.

Referenced by isInsertionSuccess(), MSVehicle::planMoveInternal(), MSVehicle::processLaneAdvances(), and MSVehicle::processLinkApproaches().

Here is the caller graph for this function:

◆ getWaitingSeconds()

double MSLane::getWaitingSeconds ( ) const

Returns the overall waiting time on this lane.

Returns
The sum of the waiting time of all vehicles during the last step;

Definition at line 3426 of file MSLane.cpp.

References myVehicles.

◆ getWidth()

double MSLane::getWidth ( ) const
inline

Returns the lane's width.

Returns
This lane's width

Definition at line 640 of file MSLane.h.

References myWidth.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSPModel_JuPedSim::add(), MSPModel_Striping::addCrossingVehs(), MSLaneChangerSublane::addOutsideLeaders(), MSPModel_JuPedSim::addWaitingSet(), MSPModel_JuPedSim::buildPedestrianNetwork(), MSPerson::checkAccess(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeOpposite(), MSLaneChangerSublane::checkChangeSublane(), MSLaneChangerSublane::checkChangeToNewLane(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), MSDevice_SSM::classifyEncounter(), MSEdge::closeBuilding(), MSLaneChanger::computeOvertakingTime(), MSLCM_SL2015::computeSublaneShift(), MSLaneChanger::continueChange(), GUILane::drawGL(), GUILane::drawLinkRule(), GUIBaseVehicle::drawStopLabels(), MSVehicle::enterLaneAtMove(), MSLaneChangerSublane::findClosestLeader(), MSVehicle::getCenterOnEdge(), getDepartPosLat(), getFollowersOnConsecutive(), MSVehicle::getLateralOverlap(), MSVehicle::getLatOffset(), MSLink::getLeaderInfo(), MSVehicle::getLeftSideOnLane(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), MSLCM_SL2015::getNeighRight(), MSPModel_Striping::getNextLaneObstacles(), MEVehicle::getRightSideOnEdge(), MSVehicle::getRightSideOnLane(), getSpaceTillLastStanding(), MSPModel_Striping::getVehicleObstacles(), GUIParkingArea::GUIParkingArea(), GUIChargingStation::initAppearance(), insertVehicle(), MSPModel_Striping::insertWalkArePaths(), MSVehicle::interpolateLateralZ(), MSRouteHandler::interpretDepartPosLat(), MSPModel_Striping::moveInDirection(), LIBSUMO_NAMESPACE::Person::moveTo(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), MSPModel_Striping::PState::moveToXY(), MSParkingArea::MSParkingArea(), MSPModel_Interacting::nextBlocking(), MSPModel_Striping::numStripes(), libsumo::Helper::patchShapeDistance(), MSVehicle::planMoveInternal(), MSLCM_SL2015::prepareStep(), MSPModel_Striping::PState::PState(), MSLink::recheckSetRequestInformation(), MSLink::setRequestInformation(), MSLaneChangerSublane::startChangeSublane(), MSAbstractLaneChangeModel::startLaneChangeManeuver(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().

◆ hadPermissionChanges()

bool MSLane::hadPermissionChanges ( ) const

Definition at line 4549 of file MSLane.cpp.

References myPermissionChanges.

◆ handleCollisionBetween()

void MSLane::handleCollisionBetween ( SUMOTime timestep,
const std::string & stage,
const MSVehicle * collider,
const MSVehicle * victim,
double gap,
double latGap,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toRemove,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toTeleport ) const
protected

take action upon collision

Definition at line 2046 of file MSLane.cpp.

References GeomHelper::angleDiff(), MSCFModel::brakeGap(), MSNet::COLLISION, SUMOVehicleParameter::Stop::collision, COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, COLLISION_ACTION_WARN, MSVehicle::collisionStopTime(), MSVehicleControl::countCollision(), DEBUG_COND2, SUMOVehicleParameter::Stop::duration, SUMOVehicleParameter::Stop::endPos, MSVehicle::getAngle(), MSVehicle::getCarFollowModel(), MSCFModel::getEmergencyDecel(), Named::getID(), MSVehicle::getInfluencer(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), getLength(), MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), MSGlobals::gSublane, MSVehicle::hasInfluencer(), MSVehicle::ignoreCollision(), MSNet::informVehicleStateListener(), isFrontalCollision(), isInternal(), MSAbstractLaneChangeModel::isOpposite(), MSVehicle::Influencer::isRemoteAffected(), SUMOVehicleParameter::Stop::lane, MAX3(), MIN2(), myCollisionAction, myCollisionStopTime, SUMOVehicleParameter::Stop::parametersSet, RAD2DEG, MSNet::registerCollision(), SPEED2DIST, MSNet::STAGE_LANECHANGE, SUMOVehicleParameter::Stop::startPos, STOP_DURATION_SET, STOP_END_SET, STOP_START_SET, time2string(), TL, TLF, toString(), and WRITE_WARNINGF.

Referenced by detectCollisionBetween(), and detectCollisions().

Here is the caller graph for this function:

◆ handleIntermodalCollisionBetween()

void MSLane::handleIntermodalCollisionBetween ( SUMOTime timestep,
const std::string & stage,
const MSVehicle * collider,
const MSTransportable * victim,
double gap,
const std::string & collisionType,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toRemove,
std::set< const MSVehicle *, ComparatorNumericalIdLess > & toTeleport ) const
protected

◆ hasApproaching() [1/2]

bool MSLane::hasApproaching ( ) const

Definition at line 3694 of file MSLane.cpp.

References myLinks.

Referenced by saveState().

Here is the caller graph for this function:

◆ hasApproaching() [2/2]

bool MSLane::hasApproaching ( const std::vector< MSLink * > & links) const
protected

check whether any of the outgoing links are being approached

◆ hasParameter()

bool Parameterised::hasParameter ( const std::string & key) const
inherited

Returns whether the parameter is set.

Parameters
[in]keyThe key to ask for
Returns
Whether the key is known

Definition at line 84 of file Parameterised.cpp.

References myMap.

Referenced by MSStageWalking::activateEntryReminders(), NBEdge::append(), MSVehicleType::build(), GUIInductLoop::buildDetectorGUIRepresentation(), MSDevice_ElecHybrid::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), GUINet::createTLWrapper(), EnergyParams::EnergyParams(), MSDevice_SSM::filterByConflictType(), GUIBusStop::finishedLoading(), NWWriter_DlrNavteq::getBrunnelType(), GNEEdgeData::getColorValue(), GNEEdgeRelData::getColorValue(), GNETAZRelData::getColorValue(), GUILane::getColorValue(), MSDevice_SSM::getDetectionRange(), MSDevice_SSM::getExtraTime(), MSDevice_SSM::getMDRAC_PRT(), MSDevice_SSM::getMeasuresAndThresholds(), MSDevice_SSM::getOutputFilename(), LIBSUMO_NAMESPACE::Simulation::getParameter(), GNETAZRelData::getScaleValue(), MSStoppingPlaceRerouter::getWeight(), MSStageDriving::init(), SUMOVTypeParameter::initRailVisualizationParameters(), MSEdge::insertVehicle(), NWWriter_OpenDrive::mapmatchRoadObjects(), mergeParameters(), MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(), MSSimpleTrafficLightLogic::MSSimpleTrafficLightLogic(), NIImporter_OpenStreetMap::RelationHandler::myEndElement(), GNEVType::overwriteVType(), NWWriter_OpenDrive::parseTrafficSign(), NBTrafficLightDefinition::railSignalUncontrolled(), MSDevice_Battery::readParameterValue(), MSDevice_SSM::requestsTrajectories(), NBTrafficLightLogicCont::setOpenDriveSignalParameters(), MSVehicle::slowDownForSchedule(), MSDevice_SSM::useGeoCoords(), MSDevice_SSM::writeLanesPositions(), MSDevice_SSM::writePositions(), NWWriter_OpenDrive::writeRoadObjectPoly(), NWWriter_OpenDrive::writeRoadObjects(), and NWWriter_OpenDrive::writeSignals().

Here is the caller graph for this function:

◆ hasPedestrians()

bool MSLane::hasPedestrians ( ) const

whether the lane has pedestrians on it

Definition at line 4567 of file MSLane.cpp.

References MSNet::getInstance(), MSTransportableControl::getMovementModel(), MSNet::getPersonControl(), MSPModel::hasPedestrians(), and MSNet::hasPersons().

Referenced by MSLCM_LC2013::adaptSpeedToPedestrians(), MSLaneChanger::checkChange(), checkForPedestrians(), detectCollisions(), MSE3Collector::detectorUpdate(), detectPedestrianJunctionCollision(), MSVehicle::planMoveInternal(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().

Here is the caller graph for this function:

◆ incorporateVehicle()

void MSLane::incorporateVehicle ( MSVehicle * veh,
double pos,
double speed,
double posLat,
const MSLane::VehCont::iterator & at,
MSMoveReminder::Notification notification = MSMoveReminder::NOTIFICATION_DEPARTED )
protectedvirtual

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]posLatThe lateral position of the vehicle
[in]at
[in]notificationThe cause of insertion (i.e. departure, teleport, parking) defaults to departure

Reimplemented in GUILane.

Definition at line 455 of file MSLane.cpp.

References MSVehicle::enterLaneAtInsertion(), getBidiLane(), MSNet::getEdgeControl(), MSNet::getInstance(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), getPermissions(), MSBaseVehicle::getVClass(), MSBaseVehicle::getVehicleType(), MSEdgeControl::gotActive(), isRailway(), myBruttoVehicleLengthSum, myEdge, myLength, myNeedsCollisionCheck, myNettoVehicleLengthSum, myVehicles, setPartialOccupation(), and SVC_RAIL_CLASSES.

Referenced by forceVehicleInsertion(), GUILane::incorporateVehicle(), isInsertionSuccess(), and loadState().

Here is the caller graph for this function:

◆ initCollisionAction()

void MSLane::initCollisionAction ( const OptionsCont & oc,
const std::string & option,
CollisionAction & myAction )
static

Definition at line 4493 of file MSLane.cpp.

References COLLISION_ACTION_NONE, COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, COLLISION_ACTION_WARN, OptionsCont::getString(), TLF, and WRITE_ERROR.

Referenced by initCollisionOptions().

Here is the caller graph for this function:

◆ initCollisionOptions()

void MSLane::initCollisionOptions ( const OptionsCont & oc)
static

Definition at line 4509 of file MSLane.cpp.

References OptionsCont::getBool(), OptionsCont::getFloat(), OptionsCont::getString(), initCollisionAction(), myCheckJunctionCollisionMinGap, myCheckJunctionCollisions, myCollisionAction, myCollisionMinGapFactor, myCollisionStopTime, myExtrapolateSubstepDepart, myIntermodalCollisionAction, myIntermodalCollisionStopTime, and string2time().

Referenced by MSFrame::setMSGlobals().

Here is the caller graph for this function:

◆ initRestrictions()

void MSLane::initRestrictions ( )

initialized vClass-specific speed limits

Definition at line 314 of file MSLane.cpp.

References MSNet::getInstance(), MSNet::getRestrictions(), MSGlobals::gUnitTests, myEdge, and myRestrictions.

Referenced by MSLane().

Here is the caller graph for this function:

◆ initRNGs()

void MSLane::initRNGs ( const OptionsCont & oc)
static

initialize rngs

Definition at line 4647 of file MSLane.cpp.

References OptionsCont::getBool(), OptionsCont::getInt(), RandHelper::initRand(), myRNGs, and toString().

Referenced by NLBuilder::initRandomness().

Here is the caller graph for this function:

◆ insertIDs()

void MSLane::insertIDs ( std::vector< std::string > & into)
static

Adds the ids of all stored lanes into the given vector.

Parameters
[in,filled]into The vector to add the IDs into

Definition at line 2521 of file MSLane.cpp.

References myDict.

◆ insertVehicle()

bool MSLane::insertVehicle ( MSVehicle & v)

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 690 of file MSLane.cpp.

References anyVehiclesBegin(), anyVehiclesEnd(), BASE, MSBaseVehicle::basePos(), DEBUG_COND2, DEFAULT, DELTA_T, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosLatProcedure, SUMOVehicleParameter::departPosProcedure, SUMOVehicleParameter::departProcedure, MSStop::edge, MSVehicle::executeFractionalMove(), FALLTHROUGH, FREE, freeInsertion(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), MSBaseVehicle::getCurrentRouteEdge(), MSBaseVehicle::getDepartDelay(), getDepartPosLat(), getDepartSpeed(), MSStop::getEndPos(), Named::getID(), MSNet::getInsertionControl(), MSNet::getInstance(), getLeader(), MSBaseVehicle::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSBaseVehicle::getNextStop(), MSBaseVehicle::getNextStopParameter(), MSBaseVehicle::getParameter(), MSVehicle::getPositionOnLane(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), getWidth(), MSVehicleType::getWidth(), GIVEN, MSGlobals::gLateralResolution, gPrecisionRandom, MSBaseVehicle::hasStops(), isInsertionSuccess(), MSBaseVehicle::isStopped(), LAST, lastInsertion(), MAX2(), MIN2(), myEdge, myExtrapolateSubstepDepart, myLength, MSMoveReminder::NOTIFICATION_DEPARTED, RandHelper::rand(), RANDOM, RANDOM_FREE, MSInsertionControl::retractDescheduleDeparture(), roundDecimal(), SIMTIME, SPLIT, SUMOVehicleParameter::Stop::split, SPLIT_FRONT, STEPS2TIME, and STOP.

Referenced by MSEdge::insertVehicle().

Here is the caller graph for this function:

◆ integrateNewVehicles()

void MSLane::integrateNewVehicles ( )
virtual

Insert buffered vehicle into the real lane.

Reimplemented in GUILane.

Definition at line 2566 of file MSLane.cpp.

References DEBUG_COND, Named::getID(), MSGlobals::gLateralResolution, myBruttoVehicleLengthSum, myEdge, myNeedsCollisionCheck, myNettoVehicleLengthSum, myOpposite, myPartialVehicles, myVehBuffer, myVehicles, SIMTIME, sortPartialVehicles(), and toString().

Referenced by GUILane::integrateNewVehicles().

Here is the caller graph for this function:

◆ interpolateGeometryPosToLanePos()

double MSLane::interpolateGeometryPosToLanePos ( double geometryPos) const
inline

Definition at line 566 of file MSLane.h.

References myLengthGeometryFactor.

Referenced by MSLaneChanger::foundHilltop(), GUILane::getPopUpMenu(), libsumo::Helper::moveToXYMap(), MSDevice_FCDReplay::FCDHandler::myStartElement(), MSStageDriving::setArrived(), and MSLink::setRequestInformation().

Here is the caller graph for this function:

◆ interpolateLanePosToGeometryPos()

double MSLane::interpolateLanePosToGeometryPos ( double lanePos) const
inline

◆ isAccelLane()

bool MSLane::isAccelLane ( ) const
inline

return whether this lane is an acceleration lane

Definition at line 543 of file MSLane.h.

References myIsRampAccel.

◆ isApproachedFrom() [1/2]

bool MSLane::isApproachedFrom ( MSEdge *const edge)
inline

Definition at line 961 of file MSLane.h.

References myApproachingLanes.

◆ isApproachedFrom() [2/2]

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

Definition at line 2881 of file MSLane.cpp.

References MSLane(), and myApproachingLanes.

◆ isCrossing()

bool MSLane::isCrossing ( ) const

Returns whether the lane pertains to a crossing edge

Definition at line 2632 of file MSLane.cpp.

References myEdge.

Referenced by GUILane::drawGL(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), LIBSUMO_NAMESPACE::Lane::getInternalFoes(), MSLink::getLeaderInfo(), and MSPModel_Striping::getNextLane().

Here is the caller graph for this function:

◆ isEmpty()

bool MSLane::isEmpty ( ) const
inline

Returns the information whether the lane is has no vehicle and no partial occupation

Definition at line 870 of file MSLane.h.

References myPartialVehicles, and myVehicles.

◆ isFrontalCollision()

bool MSLane::isFrontalCollision ( const MSVehicle * collider,
const MSVehicle * victim )
staticprotected

detect frontal collisions

Definition at line 2260 of file MSLane.cpp.

References MSEdge::getBidiEdge(), getEdge(), MSVehicle::getFurtherLanes(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSAbstractLaneChangeModel::isOpposite(), and MSLane().

Referenced by handleCollisionBetween().

Here is the caller graph for this function:

◆ isInsertionSuccess()

bool MSLane::isInsertionSuccess ( MSVehicle * vehicle,
double speed,
double pos,
double posLat,
bool recheckNextLanes,
MSMoveReminder::Notification notification )

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, incorporateVehicle() is 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]posLatThe lateral 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 850 of file MSLane.cpp.

References ARRIVAL_SPEED, SUMOVehicleParameter::arrivalSpeed, SUMOVehicleParameter::arrivalSpeedProcedure, AVG, MSRoute::begin(), BIDI, MSCFModel::brakeGap(), checkFailure(), checkForPedestrians(), MSVehicle::checkLinkLeader(), COLLISION, DEBUG_COND, DEBUG_COND2, SUMOVehicleParameter::departProcedure, SUMOVehicleParameter::departSpeedProcedure, MSInsertionControl::descheduleDeparture(), DESIRED, SUMOVehicleParameter::Stop::endPos, MSDriveWay::foeDriveWayOccupied(), FOLLOWER_GAP, MSCFModel::freeSpeed(), MSCFModel::FUTURE, MSGlobals::gCheckRoutes, gDebugFlag1, MSVehicle::getActionStepLengthSecs(), MSBaseVehicle::getArrivalPos(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLaneDist(), MSVehicle::getBestLaneOffset(), MSVehicle::getBestLanesContinuation(), getBidiLane(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), MSDriveWay::getDepartureDriveway(), getEdge(), MSAbstractLaneChangeModel::getExtraReservation(), getFollowersOnConsecutive(), Named::getID(), Named::getIDSecure(), MSBaseVehicle::getImpatience(), MSBaseVehicle::getInsertionChecks(), MSNet::getInsertionControl(), MSNet::getInstance(), SUMOVTypeParameter::getJMParam(), MSLink::getJunction(), MSVehicle::getLaneChangeModel(), getLastAnyVehicle(), MSRoute::getLastEdge(), getLastVehicleInformation(), getLength(), MSVehicleType::getLength(), getLinkCont(), MSCFModel::getMaxDecel(), getMeanSpeed(), MSVehicleType::getMinGap(), getMissingRearGap(), MSBaseVehicle::getNextStop(), MSBaseVehicle::getParameter(), MSVehicleType::getParameter(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getRoute(), MSCFModel::getSecureGap(), MSAbstractLaneChangeModel::getShadowLane(), MSVehicle::getSpeed(), MSLink::getTLLogic(), MSEdge::getToJunction(), MSJunction::getType(), MSBaseVehicle::getVClass(), getVehicleMaxSpeed(), getVehicleNumberWithPartials(), getVehicleStopOffset(), MSBaseVehicle::getVehicleType(), GIVEN, MSRailSignal::hasInsertionConstraint(), MSBaseVehicle::hasStops(), MSLeaderInfo::hasVehicles(), incorporateVehicle(), MSCFModel::insertionStopSpeed(), INVALID_SPEED, isInternal(), isLinkEnd(), MSBaseVehicle::isRail(), isRailwayOrShared(), MSRailSignalControl::isSignalized(), JUNCTION, MSStop::lane, LANECHANGE, LAST, LEADER_GAP, LIMIT, LINKSTATE_ALLWAY_STOP, LINKSTATE_EQUAL, LINKSTATE_MINOR, LINKSTATE_STOP, MAX2(), MSLane(), Named::myID, myLength, myManeuverReservations, myPartialVehicles, myPermissions, myVehicles, NONE, MSLeaderInfo::numFreeSublanes(), MSLeaderInfo::numSublanes(), ONCOMING_TRAIN, MSStop::pars, RAIL_SIGNAL, MSVehicle::registerInsertionApproach(), safeInsertionSpeed(), MSPModel::SAFETY_GAP, Parameterised::setParameter(), MSVehicle::setTentativeLaneAndPosition(), SIMSTEP, SIMTIME, SUMOVehicleParameter::Stop::speed, SPEED_LIMIT, SPLIT, SUMOVehicleParameter::Stop::startPos, STOP, MSCFModel::stopSpeed(), succLinkSec(), SUMO_ATTR_JM_STOPLINE_CROSSING_GAP, SUMO_const_haltingSpeed, TIME2STEPS, time2string(), TL, MSLeaderInfo::toString(), toString(), Parameterised::unsetParameter(), MSVehicle::updateBestLanes(), WRITE_ERRORF, and WRITE_WARNINGF.

Referenced by MSVehicleTransfer::checkInsertions(), freeInsertion(), insertVehicle(), and lastInsertion().

Here is the caller graph for this function:

◆ isInternal()

bool MSLane::isInternal ( ) const

Returns whether the lane pertains to an internal edge

Definition at line 2620 of file MSLane.cpp.

References myEdge.

Referenced by addLeaders(), MSTractionSubstation::addOverheadWireSegmentToCircuit(), MSBaseVehicle::addStop(), MSRouteHandler::addStop(), libsumo::Helper::applySubscriptionFilterTurn(), MSVehicle::brakeForOverlap(), MSDriveWay::buildRoute(), MSLaneChanger::changeOpposite(), MSDevice_ToC::checkDynamicToC(), MSDriveWay::checkFlanks(), MSDevice_SSM::classifyEncounter(), MSVehicle::computeFurtherLanes(), detectCollisionBetween(), detectCollisions(), MSLCHelper::divergentRoute(), GUILane::drawGL(), GUILane::drawLinkRule(), MSVehicle::executeFractionalMove(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSLink::getCorrespondingEntryLink(), getCriticalLeader(), MSVehicle::getDistanceToLeaveJunction(), getEntryLink(), getFirstInternalInConnection(), LIBSUMO_NAMESPACE::Lane::getInternalFoes(), MSLogicJunction::getInternalLanes(), MSNoLogicJunction::getInternalLanes(), MSLink::getInternalLengthsAfter(), MSLink::getInternalLengthsBefore(), LIBSUMO_NAMESPACE::Vehicle::getLeader(), MSLink::getLeaderInfo(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), getLinkTo(), getNormalPredecessorLane(), getNormalSuccessorLane(), MSVehicle::getPastLanesUntil(), MSVehicle::getPositionAlongBestLanes(), MSVehicle::getUpcomingLanesUntil(), getUpcomingLinks(), handleCollisionBetween(), MSE2Collector::initAuxiliaries(), MSBaseVehicle::insertStop(), isInsertionSuccess(), MSVehicle::isLeader(), MSVehicle::isOppositeLane(), MSPModel_Striping::moveInDirectionOnLane(), MSLink::MSLink(), MSDevice_Routing::notifyEnter(), MSLane::incoming_lane_priority_sorter::operator()(), NLTriggerBuilder::parseAndBuildOverheadWireSegment(), MSVehicle::planMoveInternal(), MSVehicle::processLaneAdvances(), MSBaseVehicle::replaceStop(), MSBaseVehicle::rerouteBetweenStops(), MSLink::setRequestInformation(), succLinkSec(), MSVehicle::unsafeLinkAhead(), MSVehicle::updateBestLanes(), MSVehicle::updateDriveItems(), and MSFCDExport::write().

◆ isLinkEnd() [1/2]

bool MSLane::isLinkEnd ( std::vector< MSLink * >::const_iterator & i) const
inline

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

Definition at line 858 of file MSLane.h.

References myLinks.

Referenced by MSLaneChanger::checkChange(), getCriticalLeader(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), LIBSUMO_NAMESPACE::Vehicle::getNextTLS(), MSCFModel_EIDM::internalspeedlimit(), isInsertionSuccess(), MSDevice_GLOSA::notifyEnter(), MSVehicle::planMoveInternal(), and MSVehicle::unsafeLinkAhead().

Here is the caller graph for this function:

◆ isLinkEnd() [2/2]

bool MSLane::isLinkEnd ( std::vector< MSLink * >::iterator & i)
inline

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

Definition at line 864 of file MSLane.h.

References myLinks.

◆ isNormal()

bool MSLane::isNormal ( ) const

Returns whether the lane pertains to a normal edge

Definition at line 2626 of file MSLane.cpp.

References myEdge.

Referenced by MSDriveWay::addReversalFoes(), MSDriveWay::buildDriveWay(), MSDriveWay::buildRoute(), MSDriveWay::crossingConflict(), NEMALogic::getLaneInfoFromNEMAState(), MSLink::getLeaderInfo(), MSPModel_Striping::moveInDirectionOnLane(), MSPModel_Striping::PState::moveTo(), setBidiLane(), and MSLink::setRequestInformation().

Here is the caller graph for this function:

◆ isParameterValid()

bool Parameterised::isParameterValid ( const std::string & value,
const std::string & kvsep,
const std::string & sep )
staticprivateinherited

check if given string can be parsed to a parameter of type "key=value"

Definition at line 242 of file Parameterised.cpp.

References StringTokenizer::getVector(), invalid_return< std::string >::value, and SUMOXMLDefinitions::isValidParameterKey().

Referenced by areAttributesValid(), and areParametersValid().

Here is the caller graph for this function:

◆ isSelected()

virtual bool MSLane::isSelected ( ) const
inlinevirtual

whether this lane is selected in the GUI

Reimplemented in GUILane.

Definition at line 1264 of file MSLane.h.

◆ isWalkingArea()

bool MSLane::isWalkingArea ( ) const

Returns whether the lane pertains to a walkingarea

Definition at line 2637 of file MSLane.cpp.

References myEdge.

Referenced by GUILane::drawGL(), libsumo::Helper::patchShapeDistance(), and MSPModel_Striping::registerCrossingApproach().

Here is the caller graph for this function:

◆ lastInsertion()

bool MSLane::lastInsertion ( MSVehicle & veh,
double mspeed,
double posLat,
bool patchSpeed )

inserts vehicle as close as possible to the last vehicle on this lane (or at the end of the lane if there is no leader)

look for a leaders on consecutive lanes

Definition at line 480 of file MSLane.cpp.

References MSCFModel::brakeGap(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), getLastAnyVehicle(), getLeader(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), isInsertionSuccess(), MIN2(), MSMoveReminder::NOTIFICATION_DEPARTED, MSVehicle::setTentativeLaneAndPosition(), and MSVehicle::updateBestLanes().

Referenced by insertVehicle().

Here is the caller graph for this function:

◆ leftByLaneChange()

void MSLane::leftByLaneChange ( MSVehicle * v)

Definition at line 3352 of file MSLane.cpp.

References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.

Referenced by MSAbstractLaneChangeModel::primaryLaneChanged().

Here is the caller graph for this function:

◆ loadRNGState()

void MSLane::loadRNGState ( int index,
const std::string & state )
static

load random number generator state for the given rng index

Definition at line 4670 of file MSLane.cpp.

References getNumRNGs(), RandHelper::loadState(), myRNGs, TLF, and toString().

Referenced by MSStateHandler::myStartElement().

Here is the caller graph for this function:

◆ loadState()

void MSLane::loadState ( const std::vector< SUMOVehicle * > & vehs)

Loads the state of this segment with the given parameters.

This method is called for every internal que the segment has. Every vehicle is retrieved from the given MSVehicleControl and added to this lane.

Parameters
[in]vehsThe vehicles for the current lane
Todo

What about throwing an IOError?

What about throwing an error if something else fails (a vehicle can not be referenced)?

Definition at line 3763 of file MSLane.cpp.

References MSNet::getInstance(), MSVehicle::getLastActionTime(), MSVehicle::getLateralPositionOnLane(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), incorporateVehicle(), myVehicles, MSMoveReminder::NOTIFICATION_LOAD_STATE, MSVehicle::processNextStop(), MSVehicle::resetActionOffset(), and MSVehicle::updateBestLanes().

◆ markRecalculateBruttoSum()

void MSLane::markRecalculateBruttoSum ( )

Set a flag to recalculate the brutto (including minGaps) occupancy of this lane (used if mingap is changed).

Definition at line 2433 of file MSLane.cpp.

References myRecalculateBruttoSum.

◆ mergeParameters()

void Parameterised::mergeParameters ( const Parameterised::Map & mapArg,
const std::string separator = " ",
bool uniqueValues = true )
inherited

Adds or appends all given parameters from the map.

Parameters
[in]mapArgThe keys/values to insert

Definition at line 65 of file Parameterised.cpp.

References getParameter(), hasParameter(), and setParameter().

Referenced by NBEdge::append().

Here is the caller graph for this function:

◆ mustCheckJunctionCollisions()

bool MSLane::mustCheckJunctionCollisions ( ) const

whether this lane must check for junction collisions

Definition at line 4685 of file MSLane.cpp.

References myCheckJunctionCollisions, myEdge, and myLinks.

Referenced by detectCollisions(), and MSVehicle::processLaneAdvances().

Here is the caller graph for this function:

◆ needsCollisionCheck()

bool MSLane::needsCollisionCheck ( ) const
inline

short-circut collision check if nothing changed since the last check

Definition at line 710 of file MSLane.h.

References myNeedsCollisionCheck.

◆ nextBlocking()

PersonDist MSLane::nextBlocking ( double minPos,
double minRight,
double maxLeft,
double stopTime = 0,
bool bidi = false ) const

This is just a wrapper around MSPModel::nextBlocking. You should always check using hasPedestrians before calling this method.

Definition at line 4574 of file MSLane.cpp.

References MSNet::getInstance(), MSTransportableControl::getMovementModel(), MSNet::getPersonControl(), and MSPModel::nextBlocking().

Referenced by MSLCM_LC2013::adaptSpeedToPedestrians(), MSLaneChanger::checkChange(), checkForPedestrians(), detectCollisions(), MSVehicle::planMoveInternal(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().

Here is the caller graph for this function:

◆ operator=()

MSLane & MSLane::operator= ( const MSLane & )
privatedelete

invalidated assignment operator

References MSLane().

◆ planMovements()

void MSLane::planMovements ( const SUMOTime t)
virtual

Compute safe velocities for all vehicles based on positions and speeds from the last time step. Also registers ApproachingVehicleInformation for all links.

This method goes through all vehicles calling their "planMove" method.

See also
MSVehicle::planMove

Reimplemented in GUILane.

Definition at line 1556 of file MSLane.cpp.

References MSLeaderInfo::addLeader(), DEBUG_COND, DEBUG_COND2, Named::getID(), MSGlobals::gLateralResolution, myManeuverReservations, myPartialVehicles, myVehicles, myWidth, SIMTIME, MSLeaderInfo::toString(), toString(), and updateLeaderInfo().

Referenced by GUILane::planMovements().

Here is the caller graph for this function:

◆ releaseVehicles()

◆ removeMoveReminder()

void MSLane::removeMoveReminder ( MSMoveReminder * rem)
virtual

Remove a move-reminder from move-reminder container.

The move reminder will not be deleted by the lane.

Parameters
[in]remThe move reminder to remvoe

Definition at line 372 of file MSLane.cpp.

References myMoveReminders, and myVehicles.

◆ removeParking()

void MSLane::removeParking ( MSBaseVehicle * veh)
virtual

remove parking vehicle. This must be syncrhonized when running with GUI

Reimplemented in GUILane.

Definition at line 3689 of file MSLane.cpp.

References myParkingVehicles.

Referenced by MSVehicleTransfer::checkInsertions(), MSVehicleTransfer::remove(), and GUILane::removeParking().

Here is the caller graph for this function:

◆ removeVehicle()

MSVehicle * MSLane::removeVehicle ( MSVehicle * remVehicle,
MSMoveReminder::Notification notification,
bool notify = true )
virtual

◆ requireCollisionCheck()

void MSLane::requireCollisionCheck ( )
inline

require another collision check due to relevant changes in the simulation

Definition at line 715 of file MSLane.h.

References myNeedsCollisionCheck.

Referenced by MSLaneChanger::continueChange(), and MSPModel_Striping::PState::moveToXY().

Here is the caller graph for this function:

◆ resetManeuverReservation()

void MSLane::resetManeuverReservation ( MSVehicle * v)
virtual

Unregisters a vehicle, which previously registered for maneuvering into this lane.

Parameters
[in]vThe vehicle

Definition at line 437 of file MSLane.cpp.

References DEBUG_COND2, Named::getID(), myManeuverReservations, and SIMTIME.

◆ resetPartialOccupation()

void MSLane::resetPartialOccupation ( MSVehicle * v)
virtual

Removes the information about a vehicle lapping into this lane.

Parameters
[in]vThe vehicle which laps into this lane

Reimplemented in GUILane.

Definition at line 403 of file MSLane.cpp.

References DEBUG_COND2, MSGlobals::gClearState, Named::getID(), MSVehicle::getLaneChangeModel(), MSGlobals::gNumSimThreads, MSAbstractLaneChangeModel::hasBlueLight(), myPartialVehicles, and SIMTIME.

Referenced by GUILane::resetPartialOccupation().

Here is the caller graph for this function:

◆ resetPermissions()

void MSLane::resetPermissions ( long long transientID)

Definition at line 4534 of file MSLane.cpp.

References myOriginalPermissions, myPermissionChanges, myPermissions, and SVCAll.

Referenced by GUILane::closeTraffic(), and setPermissions().

Here is the caller graph for this function:

◆ safeInsertionSpeed()

double MSLane::safeInsertionSpeed ( const MSVehicle * veh,
double seen,
const MSLeaderInfo & leaders,
double speed )
protected

return the maximum safe speed for insertion behind leaders (a negative value indicates that safe insertion is impossible)

Definition at line 1403 of file MSLane.cpp.

References COLLISION, DEBUG_COND2, MSVehicle::getBackPositionOnLane(), getBidiLane(), MSVehicle::getBrakeGap(), MSVehicle::getCarFollowModel(), Named::getID(), MSBaseVehicle::getInsertionChecks(), MSVehicle::getLane(), MSBaseVehicle::getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), INVALID_SPEED, MIN2(), MSLeaderInfo::numSublanes(), and SIMTIME.

Referenced by isInsertionSuccess().

Here is the caller graph for this function:

◆ saveRNGStates()

void MSLane::saveRNGStates ( OutputDevice & out)
static

save random number generator states to the given output device

Definition at line 4660 of file MSLane.cpp.

References OutputDevice::closeTag(), getNumRNGs(), myRNGs, OutputDevice::openTag(), RandHelper::saveState(), SUMO_ATTR_INDEX, SUMO_ATTR_STATE, SUMO_TAG_RNGLANE, and OutputDevice::writeAttr().

Referenced by MSStateHandler::saveRNGs().

Here is the caller graph for this function:

◆ saveState()

void MSLane::saveState ( OutputDevice & out)

◆ setBidiLane()

void MSLane::setBidiLane ( MSLane * bidyLane)

Adds the (overlapping) reverse direction lane to this lane.

Parameters
[in]idThe lane's id

Definition at line 347 of file MSLane.cpp.

References Named::getID(), getLength(), MSGlobals::gUsingInternalLanes, isNormal(), MSLane(), myBidiLane, TL, and WRITE_WARNINGF.

◆ setChangeLeft()

void MSLane::setChangeLeft ( SVCPermissions permissions)

Sets the permissions for changing to the left neighbour lane.

Parameters
[in]permissionsThe new permissions

Definition at line 4555 of file MSLane.cpp.

References myChangeLeft.

Referenced by LIBSUMO_NAMESPACE::Lane::setChangePermissions().

Here is the caller graph for this function:

◆ setChangeRight()

void MSLane::setChangeRight ( SVCPermissions permissions)

Sets the permissions for changing to the right neighbour lane.

Parameters
[in]permissionsThe new permissions

Definition at line 4561 of file MSLane.cpp.

References myChangeRight.

Referenced by LIBSUMO_NAMESPACE::Lane::setChangePermissions().

Here is the caller graph for this function:

◆ setFrictionCoefficient()

void MSLane::setFrictionCoefficient ( double val)

Sets a new friction coefficient for the lane [to be later (used by TraCI and MSCalibrator)].

Parameters
[in]valthe new friction coefficient [0..1]

Definition at line 2801 of file MSLane.cpp.

References myEdge, and myFrictionCoefficient.

◆ setID()

virtual void Named::setID ( const std::string & newID)
inlinevirtualinherited

resets the id

Parameters
[in]newIDThe new id of this object

Reimplemented in MSBaseVehicle, MSTransportable, and NBLoadedSUMOTLDef.

Definition at line 82 of file Named.h.

References myID.

Referenced by Distribution_Parameterized::parse(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdgeCont::rename(), NBNodeCont::rename(), GNEJunction::setAttribute(), NBLoadedSUMOTLDef::setID(), and IntermodalNetwork< E, L, N, V >::splitEdge().

Here is the caller graph for this function:

◆ setJunctionApproaches()

void MSLane::setJunctionApproaches ( ) const
virtual

Register junction approaches for all vehicles after velocities have been planned.

This method goes through all vehicles calling their * "setApproachingForAllLinks" method.

Reimplemented in GUILane.

Definition at line 1596 of file MSLane.cpp.

References myVehicles.

Referenced by GUILane::setJunctionApproaches().

Here is the caller graph for this function:

◆ setLaneStopOffset()

void MSLane::setLaneStopOffset ( const StopOffset & stopOffset)

Set vehicle class specific stopOffsets.

Definition at line 3797 of file MSLane.cpp.

References myLaneStopOffset.

◆ setLength()

void MSLane::setLength ( double val)

Sets a new length for the lane (used by TraCI only).

Parameters
[in]valthe new length in m

Definition at line 2808 of file MSLane.cpp.

References myEdge, and myLength.

◆ setManeuverReservation()

void MSLane::setManeuverReservation ( MSVehicle * v)
virtual

Registers the lane change intentions (towards this lane) for the given vehicle.

Definition at line 426 of file MSLane.cpp.

References DEBUG_COND2, Named::getID(), myManeuverReservations, and SIMTIME.

Referenced by MSAbstractLaneChangeModel::updateTargetLane().

Here is the caller graph for this function:

◆ setMaxSpeed()

void MSLane::setMaxSpeed ( double val,
bool byVSS = false,
bool byTraCI = false,
double jamThreshold = -1 )

Sets a new maximum speed for the lane (used by TraCI and MSCalibrator).

Parameters
[in]valthe new speed in m/s
[in]whethera variable speed sign (VSS) imposes the speed limit
[in]whetherTraCI imposes the speed limit

Definition at line 2785 of file MSLane.cpp.

References MESegment::getNextSegment(), MSGlobals::gMesoNet, MSGlobals::gUseMesoSim, myEdge, myIndex, myMaxSpeed, mySpeedByTraCI, mySpeedByVSS, MESegment::setSpeed(), and SIMSTEP.

◆ setOpposite()

void MSLane::setOpposite ( MSLane * oppositeLane)

Adds a neighbor to this lane.

Parameters
[in]idThe lane's id

Definition at line 339 of file MSLane.cpp.

References Named::getID(), getLength(), MSLane(), myOpposite, TL, and WRITE_WARNINGF.

◆ setParameter()

void Parameterised::setParameter ( const std::string & key,
const std::string & value )
virtualinherited

Sets a parameter.

Parameters
[in]keyThe parameter's name
[in]valueThe parameter's value

Reimplemented in MSActuatedTrafficLightLogic, MSRailCrossing, MSRailSignal, MSSimpleTrafficLightLogic, and NEMALogic.

Definition at line 45 of file Parameterised.cpp.

References invalid_return< std::string >::value, and myMap.

Referenced by MSCFModel_CACC::_v(), NBRailwayTopologyAnalyzer::addBidiEdge(), NLHandler::addDistrict(), NBOwnTLDef::buildNemaPhases(), NLJunctionControlBuilder::closeTrafficLightLogic(), MSCFModel_CACC::freeSpeed(), NIImporter_MATSim::EdgesHandler::insertEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_OpenStreetMap::insertNodeChecking(), MSLane::isInsertionSuccess(), NBNodeCont::joinNodeCluster(), NBEdge::Lane::Lane(), NWWriter_OpenDrive::mapmatchRoadObjects(), mergeParameters(), MSDevice_Bluelight::notifyMove(), MSDevice_Bluelight::resetVehicle(), GNEVType::setAttribute(), NBEdge::setJunctionPriority(), NIImporter_OpenDrive::setLaneAttributes(), LIBSUMO_NAMESPACE::Simulation::setParameter(), MSActuatedTrafficLightLogic::setParameter(), MSRailCrossing::setParameter(), MSRailSignal::setParameter(), MSSimpleTrafficLightLogic::setParameter(), NEMALogic::setParameter(), setParametersStr(), LIBSUMO_NAMESPACE::Vehicle::setStopParameter(), LIBSUMO_NAMESPACE::TrafficLight::swapParameters(), updateParameters(), NBEdge::updateRemovedNodes(), NWWriter_OpenDrive::writeNetwork(), and NIImporter_OpenDrive::writeRoadObjects().

Here is the caller graph for this function:

◆ setParameters() [1/2]

void Parameterised::setParameters ( const Parameterised & params)
inherited

set the given key/value map in map<string, string> format

Definition at line 146 of file Parameterised.cpp.

References getParametersMap(), myMap, and Parameterised().

Referenced by GNEVehicleFrame::buildVehicleOverRoute(), MSStageDriving::clone(), MSStageTranship::clone(), MSStageTrip::clone(), MSStageWaiting::clone(), MSStageWalking::clone(), GNEVehicleFrame::createPath(), and MSStageTrip::reroute().

Here is the caller graph for this function:

◆ setParameters() [2/2]

void Parameterised::setParameters ( const std::vector< std::pair< std::string, std::string > > & params)
inherited

set the given key/value vector in map<string, string> format

Definition at line 152 of file Parameterised.cpp.

References myMap.

◆ setParametersStr()

void Parameterised::setParametersStr ( const std::string & paramsString,
const std::string kvsep = "=",
const std::string sep = "|" )
inherited

set the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN"

Parameters
[in]paramsStringA serialized key-value map
[in]kvsepThe separater between key and value
[in]sepThe separater between map entries

Definition at line 161 of file Parameterised.cpp.

References StringTokenizer::getVector(), myMap, and setParameter().

Referenced by MSDevice_Taxi::initDispatch(), and GNEAttributeCarrier::setCommonAttribute().

Here is the caller graph for this function:

◆ setPartialOccupation()

double MSLane::setPartialOccupation ( MSVehicle * v)
virtual

Sets the information about a vehicle lapping into this lane.

This vehicle is added to myVehicles and may be distinguished from regular vehicles by the disparity between this lane and v->getLane()

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

Reimplemented in GUILane.

Definition at line 384 of file MSLane.cpp.

References DEBUG_COND2, Named::getID(), MSGlobals::gNumSimThreads, myLength, myNeedsCollisionCheck, myPartialVehicles, and SIMTIME.

Referenced by MSVehicle::computeFurtherLanes(), MSVehicle::enterLaneAtLaneChange(), incorporateVehicle(), GUILane::setPartialOccupation(), and MSVehicle::updateFurtherLanes().

Here is the caller graph for this function:

◆ setPermissions()

void MSLane::setPermissions ( SVCPermissions permissions,
long long transientID )

Sets the permissions to the given value. If a transientID is given, the permissions are recored as temporary.

Parameters
[in]permissionsThe new permissions
[in]transientIDThe id of the permission-modification or the special value PERMANENT

Definition at line 4522 of file MSLane.cpp.

References CHANGE_PERMISSIONS_PERMANENT, myOriginalPermissions, myPermissionChanges, myPermissions, and resetPermissions().

Referenced by GUILane::closeTraffic(), LIBSUMO_NAMESPACE::Lane::setAllowed(), and LIBSUMO_NAMESPACE::Lane::setDisallowed().

Here is the caller graph for this function:

◆ setRightSideOnEdge()

void MSLane::setRightSideOnEdge ( double value,
int rightmostSublane )
inline

◆ sortManeuverReservations()

void MSLane::sortManeuverReservations ( )

sorts myManeuverReservations

Definition at line 2601 of file MSLane.cpp.

References DEBUG_COND, Named::getID(), myManeuverReservations, and toString().

◆ sortPartialVehicles()

void MSLane::sortPartialVehicles ( )

sorts myPartialVehicles

Definition at line 2593 of file MSLane.cpp.

References myPartialVehicles.

Referenced by integrateNewVehicles(), and swapAfterLaneChange().

Here is the caller graph for this function:

◆ succLinkSec()

std::vector< MSLink * >::const_iterator MSLane::succLinkSec ( const SUMOVehicle & veh,
int nRouteSuccs,
const MSLane & succLinkSource,
const std::vector< MSLane * > & conts )
static

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 2694 of file MSLane.cpp.

References Named::getID(), MSNet::getInstance(), SUMOTrafficObject::getVClass(), isInternal(), MSLane(), myLinks, SUMOVehicle::succEdge(), time2string(), and WRITE_WARNING.

Referenced by appropriate(), MSLaneChanger::checkChange(), executeMovements(), getCriticalLeader(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), LIBSUMO_NAMESPACE::Vehicle::getNextTLS(), MSCFModel_EIDM::internalspeedlimit(), isInsertionSuccess(), MSDevice_GLOSA::notifyEnter(), MSVehicle::planMoveInternal(), MSVehicle::setBlinkerInformation(), and MSVehicle::unsafeLinkAhead().

Here is the caller graph for this function:

◆ swapAfterLaneChange()

void MSLane::swapAfterLaneChange ( SUMOTime t)
protectedvirtual

moves myTmpVehicles int myVehicles after a lane change procedure

Reimplemented in GUILane.

Definition at line 2815 of file MSLane.cpp.

References getOpposite(), MSGlobals::gSublane, myBidiLane, myTmpVehicles, myVehicles, and sortPartialVehicles().

Referenced by GUILane::swapAfterLaneChange().

Here is the caller graph for this function:

◆ unsetParameter()

void Parameterised::unsetParameter ( const std::string & key)
inherited

Removes a parameter.

Parameters
[in]keyThe parameter's name

Definition at line 51 of file Parameterised.cpp.

References myMap.

Referenced by NIImporter_OpenStreetMap::insertEdge(), MSLane::isInsertionSuccess(), GNEVType::setAttribute(), and LIBSUMO_NAMESPACE::TrafficLight::swapParameters().

Here is the caller graph for this function:

◆ updateLeaderInfo()

void MSLane::updateLeaderInfo ( const MSVehicle * veh,
VehCont::reverse_iterator & vehPart,
VehCont::reverse_iterator & vehRes,
MSLeaderInfo & ahead ) const

This updates the MSLeaderInfo argument with respect to the given MSVehicle. All leader-vehicles on the same edge, which are relevant for the vehicle (i.e. with position > vehicle's position) and not already integrated into the LeaderInfo, are integrated. The given iterators vehPart and vehRes give access to these vehicles which are either partial occupators or have issued a maneuver reservation for the lane (the latter occurs only for the sublane model).

Definition at line 1604 of file MSLane.cpp.

References MSLeaderInfo::addLeader(), DEBUG_COND, MSVehicle::getPositionOnLane(), MSGlobals::gLaneChangeDuration, myManeuverReservations, and myPartialVehicles.

Referenced by planMovements().

Here is the caller graph for this function:

◆ updateLengthSum()

void MSLane::updateLengthSum ( )

updated current vehicle length sum (delayed to avoid lane-order-dependency)

Definition at line 2439 of file MSLane.cpp.

References myBruttoVehicleLengthSum, myBruttoVehicleLengthSumToRemove, myNettoVehicleLengthSum, myNettoVehicleLengthSumToRemove, myRecalculateBruttoSum, and myVehicles.

◆ updateParameters()

void Parameterised::updateParameters ( const Parameterised::Map & mapArg)
inherited

◆ visit()

void MSLane::visit ( const MSLane::StoringVisitor & cont) const
inline

Callback for visiting the lane when traversing an RTree.

This is used in the TraCIServerAPI_Lane for context subscriptions.

Parameters
[in]contThe context doing all the work
See also
libsumo::Helper::LaneStoringVisitor::add

Definition at line 1339 of file MSLane.h.

References MSLane::StoringVisitor::add().

Referenced by libsumo::Helper::collectObjectsInRange().

Here is the caller graph for this function:

◆ writeParams()

void Parameterised::writeParams ( OutputDevice & device) const
inherited

write Params in the given outputdevice

Definition at line 176 of file Parameterised.cpp.

References OutputDevice::closeTag(), StringUtils::escapeXML(), myMap, OutputDevice::openTag(), SUMO_ATTR_KEY, SUMO_ATTR_VALUE, SUMO_TAG_PARAM, and OutputDevice::writeAttr().

Referenced by MSStageWaiting::routeOutput(), ROPerson::saveAsXML(), ROVehicle::saveAsXML(), MSRailSignalConstraint_Predecessor::write(), NBPTStop::write(), SUMOVehicleParameter::Stop::write(), SUMOVTypeParameter::write(), GNEBusStop::writeAdditional(), GNECalibrator::writeAdditional(), GNECalibratorFlow::writeAdditional(), GNEChargingStation::writeAdditional(), GNEContainerStop::writeAdditional(), GNEEntryExitDetector::writeAdditional(), GNEInductionLoopDetector::writeAdditional(), GNEInstantInductionLoopDetector::writeAdditional(), GNELaneAreaDetector::writeAdditional(), GNEMultiEntryExitDetector::writeAdditional(), GNEOverheadWire::writeAdditional(), GNEParkingArea::writeAdditional(), GNEParkingSpace::writeAdditional(), GNEPOI::writeAdditional(), GNEPoly::writeAdditional(), GNERerouter::writeAdditional(), GNERouteProbe::writeAdditional(), GNETAZ::writeAdditional(), GNETractionSubstation::writeAdditional(), GNEVaporizer::writeAdditional(), GNEVariableSpeedSign::writeAdditional(), NWWriter_SUMO::writeConnection(), GNEContainer::writeDemandElement(), GNEPerson::writeDemandElement(), GNERoute::writeDemandElement(), GNEVehicle::writeDemandElement(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeLane(), NWWriter_SUMO::writeTrafficLight(), PointOfInterest::writeXML(), and SUMOPolygon::writeXML().

Here is the caller graph for this function:

◆ AnyVehicleIterator

friend class AnyVehicleIterator
friend

◆ MSLaneChanger

friend class MSLaneChanger
friend

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

Definition at line 112 of file MSLane.h.

References MSLaneChanger.

Referenced by MSLaneChanger.

◆ MSLaneChangerSublane

friend class MSLaneChangerSublane
friend

Definition at line 113 of file MSLane.h.

References MSLaneChangerSublane.

Referenced by MSLaneChangerSublane.

◆ MSQueueExport

friend class MSQueueExport
friend

Definition at line 115 of file MSLane.h.

References MSQueueExport.

Referenced by MSQueueExport.

Field Documentation

◆ CHANGE_PERMISSIONS_GUI

const long MSLane::CHANGE_PERMISSIONS_GUI = 1
static

Definition at line 1380 of file MSLane.h.

Referenced by GUILane::closeTraffic().

◆ CHANGE_PERMISSIONS_PERMANENT

const long MSLane::CHANGE_PERMISSIONS_PERMANENT = 0
static

◆ myApproachingLanes

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

All direct internal and direct (disregarding internal predecessors) non-internal predecessor lanes of this lane.

Definition at line 1580 of file MSLane.h.

Referenced by addApproachingLane(), getNormalIncomingLanes(), isApproachedFrom(), and isApproachedFrom().

◆ myBidiLane

MSLane* MSLane::myBidiLane
protected

◆ myBruttoVehicleLengthSum

double MSLane::myBruttoVehicleLengthSum
protected

The current length of all vehicles on this lane, including their minGaps.

Definition at line 1561 of file MSLane.h.

Referenced by clearState(), enteredByLaneChange(), getBruttoOccupancy(), getBruttoVehLenSum(), incorporateVehicle(), integrateNewVehicles(), leftByLaneChange(), MSLane(), removeVehicle(), and updateLengthSum().

◆ myBruttoVehicleLengthSumToRemove

double MSLane::myBruttoVehicleLengthSumToRemove
protected

The length of all vehicles that have left this lane in the current step (this lane, including their minGaps).

Definition at line 1567 of file MSLane.h.

Referenced by clearState(), executeMovements(), MSLane(), and updateLengthSum().

◆ myCanonicalPredecessorLane

MSLane* MSLane::myCanonicalPredecessorLane
mutableprotected

Similar to LogicalPredecessorLane,.

See also
getCanonicalPredecessorLane()

Definition at line 1555 of file MSLane.h.

Referenced by getCanonicalPredecessorLane(), and MSLane().

◆ myCanonicalSuccessorLane

MSLane* MSLane::myCanonicalSuccessorLane
mutableprotected

Main successor lane,.

See also
getCanonicalSuccessorLane()

Definition at line 1558 of file MSLane.h.

Referenced by getCanonicalSuccessorLane(), and MSLane().

◆ myChangeLeft

SVCPermissions MSLane::myChangeLeft
protected

The vClass permissions for changing from this lane.

Definition at line 1539 of file MSLane.h.

Referenced by allowsChangingLeft(), getChangeLeft(), MSLane(), and setChangeLeft().

◆ myChangeRight

SVCPermissions MSLane::myChangeRight
protected

Definition at line 1540 of file MSLane.h.

Referenced by allowsChangingRight(), getChangeRight(), MSLane(), and setChangeRight().

◆ myCheckJunctionCollisionMinGap

double MSLane::myCheckJunctionCollisionMinGap
staticprivate

Definition at line 1637 of file MSLane.h.

Referenced by detectCollisions(), and initCollisionOptions().

◆ myCheckJunctionCollisions

bool MSLane::myCheckJunctionCollisions
staticprivate

Definition at line 1636 of file MSLane.h.

Referenced by initCollisionOptions(), and mustCheckJunctionCollisions().

◆ myCollisionAction

MSLane::CollisionAction MSLane::myCollisionAction
staticprivate

the action to take on collisions

Definition at line 1634 of file MSLane.h.

Referenced by detectCollisionBetween(), detectCollisions(), getCollisionAction(), handleCollisionBetween(), and initCollisionOptions().

◆ myCollisionMinGapFactor

double MSLane::myCollisionMinGapFactor
staticprivate

Definition at line 1640 of file MSLane.h.

Referenced by detectCollisionBetween(), and initCollisionOptions().

◆ myCollisionStopTime

SUMOTime MSLane::myCollisionStopTime
staticprivate

Definition at line 1638 of file MSLane.h.

Referenced by handleCollisionBetween(), and initCollisionOptions().

◆ myDefaultDepartSpeed

double MSLane::myDefaultDepartSpeed
staticprivate

Definition at line 1643 of file MSLane.h.

Referenced by getDefaultDepartSpeed(), and getDepartSpeed().

◆ myDefaultDepartSpeedDefinition

DepartSpeedDefinition MSLane::myDefaultDepartSpeedDefinition
staticprivate

Definition at line 1642 of file MSLane.h.

Referenced by getDefaultDepartSpeedDefinition(), and getDepartSpeed().

◆ myDict

MSLane::DictType MSLane::myDict
staticprotected

Static dictionary to associate string-ids with objects.

Definition at line 1625 of file MSLane.h.

Referenced by clear(), dictionary(), dictionary(), dictSize(), fill(), and insertIDs().

◆ myEdge

◆ myExtrapolateSubstepDepart

bool MSLane::myExtrapolateSubstepDepart
staticprivate

Definition at line 1641 of file MSLane.h.

Referenced by initCollisionOptions(), and insertVehicle().

◆ myFollowerInfo

MSLeaderInfo MSLane::myFollowerInfo
mutableprotected

followers on all sublanes as seen by vehicles on consecutive lanes (cached)

Definition at line 1585 of file MSLane.h.

Referenced by getFirstVehicleInformation(), and MSLane().

◆ myFollowerInfoTime

SUMOTime MSLane::myFollowerInfoTime
mutableprotected

time step for which myFollowerInfo was last updated

Definition at line 1590 of file MSLane.h.

Referenced by clearState(), getFirstVehicleInformation(), and MSLane().

◆ myFrictionCoefficient

double MSLane::myFrictionCoefficient
protected

Lane-wide friction coefficient [0..1].

Definition at line 1527 of file MSLane.h.

Referenced by getFrictionCoefficient(), MSLane(), and setFrictionCoefficient().

◆ myID

std::string Named::myID
protectedinherited

The name of the object.

Definition at line 125 of file Named.h.

Referenced by MSDriveWay::addBidiFoes(), MSE2Collector::addDetectorToLanes(), MSDriveWay::addFoes(), MSDriveWay::addParallelFoes(), MSDriveWay::addReversalFoes(), MSDriveWay::addSwitchFoes(), RODFDetector::buildDestinationDistribution(), MSDriveWay::buildDriveWay(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), MSSOTLTrafficLightLogic::checkPhases(), NBNode::computeNodeShape(), NEMALogic::constructTimingAndPhaseDefs(), MSE2Collector::detectorUpdate(), GNEPOI::getAttribute(), GNEPoly::getAttribute(), MSLane::getCanonicalPredecessorLane(), MSLane::getCanonicalSuccessorLane(), getID(), NBEdge::getLaneID(), NEMALogic::getPhaseObj(), ROEdge::getStoredEffort(), GNEPOI::getSumoBaseObject(), GNEPoly::getSumoBaseObject(), MSLane::getSurroundingVehicles(), ROEdge::getTravelTime(), MSDelayBasedTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), NBEdge::init(), NEMALogic::init(), MSLane::isInsertionSuccess(), Named(), NBNode::NBNode(), NBNode::NBNode(), MSE2Collector::notifyEnter(), MSE2Collector::notifyLeave(), MSE2Collector::notifyMove(), MSMeanData::openInterval(), NEMALogic::parseControllerType(), RORouteDef::preComputeCurrentRoute(), NBNode::reinit(), NBEdge::reinitNodes(), RORoute::RORoute(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), NBEdge::setGeometry(), setID(), MSSOTLTrafficLightLogic::setToATargetPhase(), Distribution_Parameterized::toStr(), MSChargingStation::writeAggregatedChargingStationOutput(), MSDriveWay::writeBlocks(), MSDriveWay::writeBlockVehicles(), MSChargingStation::writeChargingStationOutput(), RODFDetector::writeEmitterDefinition(), MSOverheadWire::writeOverheadWireSegmentOutput(), RODFDetector::writeSingleSpeedTrigger(), MSTractionSubstation::writeTractionSubstationOutput(), MEInductLoop::writeXMLOutput(), and MSE3Collector::writeXMLOutput().

◆ myIncomingLanes

std::vector<IncomingLaneInfo> MSLane::myIncomingLanes
protected

◆ myIndex

int MSLane::myIndex
protected

◆ myIntermodalCollisionAction

◆ myIntermodalCollisionStopTime

SUMOTime MSLane::myIntermodalCollisionStopTime
staticprivate

Definition at line 1639 of file MSLane.h.

Referenced by handleIntermodalCollisionBetween(), and initCollisionOptions().

◆ myIsRampAccel

const bool MSLane::myIsRampAccel
protected

whether this lane is an acceleration lane

Definition at line 1596 of file MSLane.h.

Referenced by isAccelLane(), and MSLane().

◆ myLaneStopOffset

StopOffset MSLane::myLaneStopOffset
protected

Lane's vClass specific stop offset [m]. The map is either of length 0, which means no special stopOffset was set, or of length 1, where the key is a bitset representing a subset of the SUMOVehicleClass Enum and the value is the offset in meters.

Definition at line 1519 of file MSLane.h.

Referenced by GUILane::drawLinkRules(), getLaneStopOffsets(), getVehicleStopOffset(), and setLaneStopOffset().

◆ myLaneType

const std::string MSLane::myLaneType
protected

the type of this lane

Definition at line 1599 of file MSLane.h.

Referenced by getLaneType(), GUILane::getParameterWindow(), and MSLane().

◆ myLeaderInfo

MSLeaderInfo MSLane::myLeaderInfo
mutableprotected

leaders on all sublanes as seen by approaching vehicles (cached)

Definition at line 1583 of file MSLane.h.

Referenced by getLastVehicleInformation(), and MSLane().

◆ myLeaderInfoTime

SUMOTime MSLane::myLeaderInfoTime
mutableprotected

time step for which myLeaderInfo was last updated

Definition at line 1588 of file MSLane.h.

Referenced by clearState(), getLastVehicleInformation(), and MSLane().

◆ myLength

◆ myLengthGeometryFactor

const double MSLane::myLengthGeometryFactor
protected

◆ myLinks

◆ myLogicalPredecessorLane

MSLane* MSLane::myLogicalPredecessorLane
mutableprotected

Definition at line 1552 of file MSLane.h.

Referenced by getLogicalPredecessorLane(), and MSLane().

◆ myManeuverReservations

VehCont MSLane::myManeuverReservations
protected

The vehicles which registered maneuvering into the lane within their current action step. This is currently only relevant for sublane simulation, since continuous lanechanging uses the partial vehicle mechanism.

The entering vehicles are inserted at the front of this container and the leaving ones leave from the back.

Definition at line 1503 of file MSLane.h.

Referenced by clearState(), isInsertionSuccess(), planMovements(), resetManeuverReservation(), setManeuverReservation(), sortManeuverReservations(), and updateLeaderInfo().

◆ myMap

◆ myMaxSpeed

double MSLane::myMaxSpeed
protected

◆ myMoveReminders

std::vector< MSMoveReminder* > MSLane::myMoveReminders
private

This lane's move reminder.

Definition at line 1631 of file MSLane.h.

Referenced by addMoveReminder(), getMoveReminders(), and removeMoveReminder().

◆ myNeedsCollisionCheck

bool MSLane::myNeedsCollisionCheck
protected

whether a collision check is currently needed

Definition at line 1607 of file MSLane.h.

Referenced by detectCollisions(), executeMovements(), incorporateVehicle(), integrateNewVehicles(), MSLane(), needsCollisionCheck(), requireCollisionCheck(), and setPartialOccupation().

◆ myNettoVehicleLengthSum

double MSLane::myNettoVehicleLengthSum
protected

The current length of all vehicles on this lane, excluding their minGaps.

Definition at line 1564 of file MSLane.h.

Referenced by clearState(), enteredByLaneChange(), getNettoOccupancy(), incorporateVehicle(), integrateNewVehicles(), leftByLaneChange(), MSLane(), removeVehicle(), and updateLengthSum().

◆ myNettoVehicleLengthSumToRemove

double MSLane::myNettoVehicleLengthSumToRemove
protected

The length of all vehicles that have left this lane in the current step (this lane, excluding their minGaps).

Definition at line 1570 of file MSLane.h.

Referenced by clearState(), executeMovements(), MSLane(), and updateLengthSum().

◆ myNumericalID

int MSLane::myNumericalID
protected

Unique numerical ID (set on reading by netload).

Definition at line 1453 of file MSLane.h.

Referenced by getNumericalID(), and MSLane().

◆ myOpposite

MSLane* MSLane::myOpposite
protected

Definition at line 1610 of file MSLane.h.

Referenced by getOpposite(), integrateNewVehicles(), MSLane(), and setOpposite().

◆ myOriginalPermissions

SVCPermissions MSLane::myOriginalPermissions
protected

The original vClass permissions for this lane (before temporary modifications).

Definition at line 1543 of file MSLane.h.

Referenced by allowsVehicleClass(), MSLane(), resetPermissions(), and setPermissions().

◆ myOutlineShape

PositionVector* MSLane::myOutlineShape = nullptr
protected

the outline of the lane (optional)

Definition at line 1459 of file MSLane.h.

Referenced by GUILane::drawGL(), getOutlineShape(), MSLane(), and ~MSLane().

◆ myParkingVehicles

std::set<const MSBaseVehicle*> MSLane::myParkingVehicles
protected

◆ myPartialVehicles

VehCont MSLane::myPartialVehicles
protected

The lane's partial vehicles. This container holds all vehicles that are partially on this lane but which are in myVehicles of another lane. Reasons for partial occupancies include the following.

  • the back is still on this lane during regular movement
  • the vehicle is performing a continuous lane-change maneuver
  • sub-lane simulation where vehicles can freely move laterally among the lanes of an edge

The entering vehicles are inserted at the front of this container and the leaving ones leave from the back.

Definition at line 1487 of file MSLane.h.

Referenced by anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), clearState(), detectCollisions(), GUILane::drawGL(), freeInsertion(), getFirstAnyVehicle(), getFractionalVehicleLength(), getLastAnyVehicle(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), getPartialBehind(), getPartialBeyond(), getPartialVehicleNumber(), MSLaneChanger::getRealLeader(), getVehicleNumberWithPartials(), integrateNewVehicles(), isEmpty(), isInsertionSuccess(), planMovements(), resetPartialOccupation(), setPartialOccupation(), sortPartialVehicles(), and updateLeaderInfo().

◆ myPermissionChanges

std::map<long long, SVCPermissions> MSLane::myPermissionChanges
protected

◆ myPermissions

◆ myRecalculateBruttoSum

bool MSLane::myRecalculateBruttoSum
protected

Flag to recalculate the occupancy (including minGaps) after a change in minGap.

Definition at line 1573 of file MSLane.h.

Referenced by markRecalculateBruttoSum(), MSLane(), and updateLengthSum().

◆ myRestrictions

const std::map<SUMOVehicleClass, double>* MSLane::myRestrictions
protected

The vClass speed restrictions for this lane.

Definition at line 1546 of file MSLane.h.

Referenced by getVehicleMaxSpeed(), and initRestrictions().

◆ myRightmostSublane

int MSLane::myRightmostSublane
protected

the index of the rightmost sublane of this lane on myEdge

Definition at line 1604 of file MSLane.h.

Referenced by getRightmostSublane(), MSLane(), and setRightSideOnEdge().

◆ myRightSideOnEdge

double MSLane::myRightSideOnEdge
protected

the combined width of all lanes with lower index on myEdge

Definition at line 1602 of file MSLane.h.

Referenced by getCenterOnEdge(), getRightSideOnEdge(), MSLane(), and setRightSideOnEdge().

◆ myRNGIndex

int MSLane::myRNGIndex
protected

Definition at line 1619 of file MSLane.h.

Referenced by GUILane::getColorValue(), getRNG(), getRNGIndex(), getThreadIndex(), and MSLane().

◆ myRNGs

std::vector< SumoRNG > MSLane::myRNGs
staticprotected

Definition at line 1627 of file MSLane.h.

Referenced by getNumRNGs(), getRNG(), initRNGs(), loadRNGState(), MSLane(), and saveRNGStates().

◆ myShape

◆ mySpeedByTraCI

bool MSLane::mySpeedByTraCI
protected

Whether the current speed limit has been set through TraCI.

Definition at line 1533 of file MSLane.h.

Referenced by getVehicleMaxSpeed(), MSLane(), and setMaxSpeed().

◆ mySpeedByVSS

bool MSLane::mySpeedByVSS
protected

Whether the current speed limit is set by a variable speed sign (VSS).

Definition at line 1530 of file MSLane.h.

Referenced by getVehicleMaxSpeed(), MSLane(), and setMaxSpeed().

◆ myStopWatch

std::vector<StopWatch<std::chrono::nanoseconds> > MSLane::myStopWatch
private

Definition at line 1796 of file MSLane.h.

Referenced by getStopWatch(), and MSLane().

◆ myTmpVehicles

VehCont MSLane::myTmpVehicles
protected

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

Definition at line 1491 of file MSLane.h.

Referenced by MSLaneChangerSublane::addOutsideLeaders(), anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), getLeader(), and swapAfterLaneChange().

◆ myVehBuffer

MFXSynchQue<MSVehicle*, std::vector<MSVehicle*> > MSLane::myVehBuffer
protected

Buffer for vehicles that moved from their previous lane onto this one. Integrated after all vehicles executed their moves.

Definition at line 1495 of file MSLane.h.

Referenced by checkBufferType(), empty(), executeMovements(), and integrateNewVehicles().

◆ myVehicles

VehCont MSLane::myVehicles
protected

The lane's vehicles. This container holds all vehicles that have their front (longitudinally) and their center (laterally) on this lane. These are the vehicles that this lane is 'responsibly' for (i.e. when executing movements).

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 1475 of file MSLane.h.

Referenced by addMoveReminder(), anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), clearState(), detectCollisions(), empty(), executeMovements(), GUILane::firstWaitingTime(), forceVehicleInsertion(), freeInsertion(), getBruttoOccupancy(), getFirstAnyVehicle(), getFirstFullVehicle(), getLastAnyVehicle(), getLastFullVehicle(), getLeader(), getMeanSpeed(), getMeanSpeedBike(), getNettoOccupancy(), getSpaceTillLastStanding(), getVehicleNumber(), getVehicleNumberWithPartials(), GUILane::getVehiclesSecure(), getVehiclesSecure(), getWaitingSeconds(), incorporateVehicle(), integrateNewVehicles(), isEmpty(), isInsertionSuccess(), loadState(), MSLane(), planMovements(), removeMoveReminder(), removeVehicle(), saveState(), setJunctionApproaches(), swapAfterLaneChange(), updateLengthSum(), and MSQueueExport::writeLane().

◆ myWidth


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