Eclipse SUMO - Simulation of Urban MObility
|
Representation of a lane in the micro simulation. More...
#include <MSLane.h>
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) |
MSLane * | getBidiLane () const |
retrieve bidirectional lane or nullptr | |
MSLane * | getCanonicalPredecessorLane () const |
MSLane * | getCanonicalSuccessorLane () 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. | |
std::vector< double > | getDoubles (const std::string &key, std::vector< double > defaultValue=std::vector< double >()) const |
Returns the value for a given key converted to a list of doubles. | |
MSEdge & | getEdge () const |
Returns the lane's edge. | |
const MSLink * | getEntryLink () const |
Returns the entry link if this is an internal lane, else nullptr. | |
MSVehicle * | getFirstAnyVehicle () const |
returns the first vehicle that is fully or partially on this lane | |
MSVehicle * | getFirstFullVehicle () const |
returns the first vehicle for which this lane is responsible or 0 | |
const 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. | |
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 MSLane * | getInternalFollowingLane (const MSLane *const) const |
returns the internal lane leading to the given lane or nullptr, if there is none | |
const StopOffset & | getLaneStopOffsets () const |
Returns vehicle class specific stopOffsets. | |
MSVehicle * | getLastAnyVehicle () const |
returns the last vehicle that is fully or partially on this lane | |
MSVehicle * | getLastFullVehicle () 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) 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 MSLink * | getLinkTo (const MSLane *const) const |
returns the link to the given lane or nullptr, if it is not connected | |
MSLane * | getLogicalPredecessorLane () const |
get the most likely precedecessor lane (sorted using by_connections_to_sorter). The result is cached in myLogicalPredecessorLane | |
MSLane * | getLogicalPredecessorLane (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 MSEdge * | getNextNormal () 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 MSLane * | getNormalPredecessorLane () const |
get normal lane leading to this internal lane, for normal lanes, the lane itself is returned | |
const MSLane * | getNormalSuccessorLane () const |
get normal lane following this internal lane, for normal lanes, the lane itself is returned | |
MSLane * | getOpposite () 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 PositionVector * | getOutlineShape () const |
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. | |
MSLane * | getParallelOpposite () 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::Map & | getParametersMap () 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) | |
MSVehicle * | getPartialBehind (const MSVehicle *ego) const |
MSLeaderInfo | getPartialBeyond () const |
get all vehicles that are inlapping from consecutive edges | |
int | getRightmostSublane () const |
double | getRightSideOnEdge () const |
SumoRNG * | getRNG () 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 MSVehicle * | removeVehicle (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 ¶ms) |
set the inner key/value map in map<string, string> format | |
void | setParametersStr (const std::string ¶msString, 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 PositionVector & | getShape (bool) const |
interaction with MSMoveReminder | |
virtual void | addMoveReminder (MSMoveReminder *rem) |
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 VehCont & | getVehiclesSecure () 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 PositionVector & | getShape () 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 | 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 SUMOTime t) 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< std::string > &vehIDs, MSVehicleControl &vc) |
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 MSLane * | dictionary (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 () |
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 | |
Protected Attributes | |
std::map< MSEdge *, std::vector< MSLane * > > | myApproachingLanes |
All direct internal and direct (disregarding internal predecessors) non-internal predecessor lanes of this lane. | |
MSLane * | myBidiLane |
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) | |
MSLane * | myCanonicalPredecessorLane |
Similar to LogicalPredecessorLane,. | |
MSLane * | myCanonicalSuccessorLane |
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< IncomingLaneInfo > | myIncomingLanes |
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 |
MSLane * | myLogicalPredecessorLane |
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) | |
MSLane * | myOpposite |
SVCPermissions | myOriginalPermissions |
The original vClass permissions for this lane (before temporary modifications) | |
PositionVector * | myOutlineShape = 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, SVCPermissions > | myPermissionChanges |
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< SumoRNG > | myRNGs |
Private Member Functions | |
MSLane (const MSLane &)=delete | |
invalidated copy constructor | |
MSLane & | operator= (const MSLane &)=delete |
invalidated assignment operator | |
Static Private Member Functions | |
static int | getInsertionChecks (const MSVehicle *veh) |
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 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 |
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.
|
protected |
|
inherited |
parameters map
Definition at line 45 of file Parameterised.h.
typedef std::vector<MSVehicle*> MSLane::VehCont |
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.
[in] | id | The lane's id |
[in] | maxSpeed | The speed allowed on this lane |
[in] | friction | The friction of this lane |
[in] | length | The lane's length |
[in] | edge | The edge this lane belongs to |
[in] | numericalID | The numerical id of the lane |
[in] | shape | The shape of the lane |
[in] | width | The width of the lane |
[in] | permissions | Encoding of the Vehicle classes that may drive on this lane |
[in] | index | The index of this lane within its parent edge |
[in] | isRampAccel | Whether this lane is an acceleration lane |
Definition at line 247 of file MSLane.cpp.
References initRestrictions(), myOutlineShape, myRNGIndex, and myRNGs.
|
virtual |
|
privatedelete |
invalidated copy constructor
void MSLane::addApproachingLane | ( | MSLane * | lane, |
bool | warnMultiCon | ||
) |
Definition at line 2789 of file MSLane.cpp.
References getEdge(), Named::getID(), MSEdge::isInternal(), myApproachingLanes, TL, and WRITE_WARNINGF.
Referenced by NLHandler::addConnection().
Definition at line 2779 of file MSLane.cpp.
References getLength(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, myIncomingLanes, and MSLane::IncomingLaneInfo::viaLink.
Referenced by NLHandler::addConnection().
void MSLane::addLeaders | ( | const MSVehicle * | vehicle, |
double | vehPos, | ||
MSLeaderDistanceInfo & | result, | ||
bool | oppositeDirection = false |
||
) |
get leaders for ego on the given lane
Definition at line 4064 of file MSLane.cpp.
References MSLeaderDistanceInfo::addLeader(), MSCFModel::brakeGap(), DEBUG_COND, DEBUG_COND2, MSGlobals::gComputeLC, MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), getBidiLane(), MSVehicle::getCarFollowModel(), Named::getID(), MSVehicle::getLane(), getLastVehicleInformation(), getLeadersOnConsecutive(), getLength(), MSVehicleType::getMinGap(), MSVehicle::getSpeed(), MSVehicle::getUpstreamOppositeLanes(), MSBaseVehicle::getVehicleType(), isInternal(), MAX2(), myMaxSpeed, MSLeaderInfo::numFreeSublanes(), MSLeaderInfo::numSublanes(), MSLeaderDistanceInfo::toString(), and toString().
Referenced by MSLaneChangerSublane::checkChangeOpposite(), and LIBSUMO_NAMESPACE::Vehicle::getNeighbors().
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.
[in] | link | An outgoing link |
Definition at line 325 of file MSLane.cpp.
References myLinks.
Referenced by NLHandler::addConnection().
|
virtual |
Add a move-reminder to move-reminder container.
The move reminder will not be deleted by the lane.
[in] | rem | The move reminder to add |
Definition at line 352 of file MSLane.cpp.
References myMoveReminders, and myVehicles.
Referenced by MSDriveWay::buildRoute(), MSDriveWay::buildSubFoe(), and MSMoveReminder::MSMoveReminder().
void MSLane::addParking | ( | MSBaseVehicle * | veh | ) |
add parking vehicle. This should only used during state loading
Definition at line 3602 of file MSLane.cpp.
References myParkingVehicles.
Referenced by MSVehicleTransfer::loadState().
|
inlinevirtual |
Reimplemented in GUILane.
Definition at line 288 of file MSLane.h.
Referenced by NLNetShapeHandler::addLane().
|
inlineinherited |
Adds this object to the given container.
[in,filled] | cont The container to add this item to |
Definition at line 118 of file Named.h.
References Named::StoringVisitor::add().
|
inline |
Returns whether the given vehicle class may change left from this lane.
Definition at line 932 of file MSLane.h.
References myChangeLeft.
Referenced by MSLaneChanger::changeOpposite().
|
inline |
Returns whether the given vehicle class may change left from this lane.
Definition at line 937 of file MSLane.h.
References myChangeRight.
Referenced by GUILane::drawGL(), GUILane::drawJunctionChangeProhibitions(), and GUILane::drawMarkings().
|
inline |
Definition at line 925 of file MSLane.h.
References myPermissions.
Referenced by NLTriggerBuilder::addAccess(), MSBaseVehicle::addStop(), MSLaneChanger::changeOpposite(), libsumo::Helper::convertCartesianToRoadMap(), MSPModel_NonInteracting::PState::getPosition(), MSBaseVehicle::insertStop(), MSLCM_SL2015::mustOvertakeStopped(), MSBaseVehicle::replaceStop(), MSVehicle::updateBestLanes(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().
bool MSLane::allowsVehicleClass | ( | SUMOVehicleClass | vclass, |
int | routingMode | ||
) | const |
Definition at line 4603 of file MSLane.cpp.
References myOriginalPermissions, myPermissions, and libsumo::ROUTING_MODE_IGNORE_TRANSIENT_PERMISSIONS.
|
inline |
begin iterator for iterating over all vehicles touching this lane in downstream direction
Definition at line 489 of file MSLane.h.
References myPartialVehicles, myTmpVehicles, and myVehicles.
Referenced by detectCollisions(), getFollowersOnConsecutive(), getLastVehicleInformation(), getLeader(), MSLink::getLeaderInfo(), MSPModel_Striping::getVehicleObstacles(), and insertVehicle().
|
inline |
end iterator for iterating over all vehicles touching this lane in downstream direction
Definition at line 495 of file MSLane.h.
References myPartialVehicles, myTmpVehicles, and myVehicles.
Referenced by detectCollisions(), getFollowersOnConsecutive(), getLeader(), MSLink::getLeaderInfo(), MSPModel_Striping::getVehicleObstacles(), and insertVehicle().
|
inline |
begin iterator for iterating over all vehicles touching this lane in upstream direction
Definition at line 501 of file MSLane.h.
References myPartialVehicles, myTmpVehicles, and myVehicles.
Referenced by getFirstVehicleInformation(), getFollower(), and MSPModel_Striping::getVehicleObstacles().
|
inline |
end iterator for iterating over all vehicles touching this lane in upstream direction
Definition at line 507 of file MSLane.h.
Referenced by getFollower(), and MSPModel_Striping::getVehicleObstacles().
|
virtual |
Returns the information whether this lane may be used to continue the current route
Definition at line 2470 of file MSLane.cpp.
References MSVehicle::getBestLanes(), MSVehicle::getBestLanesContinuation(), MSVehicle::getLaneChangeModel(), MSVehicle::getLaneIndex(), MSEdge::isInternal(), MSAbstractLaneChangeModel::isOpposite(), myEdge, myLinks, MSBaseVehicle::succEdge(), and succLinkSec().
Referenced by executeMovements().
|
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 219 of file Parameterised.cpp.
References StringTokenizer::getVector(), Parameterised::isParameterValid(), TL, and WRITE_WARNINGF.
Referenced by GNEFrameAttributeModules::GenericDataAttributes::areAttributesValid(), GNEEdgeData::isValid(), GNEEdgeRelData::isValid(), and GNETAZRelData::isValid().
|
staticinherited |
check if given string can be parsed to a parameters map "key1=value1|key2=value2|...|keyN=valueN"
Definition at line 200 of file Parameterised.cpp.
References StringTokenizer::getVector(), Parameterised::isParameterValid(), TL, and WRITE_WARNINGF.
Referenced by GNEDetector::isDetectorValid(), GNEAccess::isValid(), GNEBusStop::isValid(), GNECalibrator::isValid(), GNECalibratorFlow::isValid(), GNEChargingStation::isValid(), GNEContainerStop::isValid(), GNEMultiEntryExitDetector::isValid(), GNEOverheadWire::isValid(), GNEParkingArea::isValid(), GNEParkingSpace::isValid(), GNERerouter::isValid(), GNERouteProbe::isValid(), GNETAZ::isValid(), GNETAZSourceSink::isValid(), GNETractionSubstation::isValid(), GNEVaporizer::isValid(), GNEVariableSpeedSign::isValid(), GNEContainer::isValid(), GNEPerson::isValid(), GNERoute::isValid(), GNEStop::isValid(), GNEVehicle::isValid(), GNEVType::isValid(), GNEConnection::isValid(), GNECrossing::isValid(), GNEEdge::isValid(), GNEEdgeType::isValid(), GNEJunction::isValid(), GNELane::isValid(), GNELaneType::isValid(), GNEPOI::isValid(), GNEPoly::isValid(), GNETLSEditorFrame::TLSAttributes::isValidParameters(), and GNEFrameAttributeModules::GenericDataAttributes::onCmdSetParameters().
void MSLane::changeLanes | ( | const SUMOTime | time | ) |
Definition at line 2384 of file MSLane.cpp.
References MSEdge::changeLanes(), and myEdge.
void MSLane::checkBufferType | ( | ) |
Definition at line 313 of file MSLane.cpp.
References MSGlobals::gNumSimThreads, myVehBuffer, and MFXSynchQue< T, Container >::unsetCondition().
bool MSLane::checkFailure | ( | const MSVehicle * | aVehicle, |
double & | speed, | ||
double & | dist, | ||
const double | nspeed, | ||
const bool | patchSpeed, | ||
const std::string | errorMsg, | ||
InsertionCheck | check | ||
) | const |
Definition at line 795 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSInsertionControl::descheduleDeparture(), MSGlobals::gEmergencyInsert, MSVehicle::getCarFollowModel(), MSCFModel::getEmergencyDecel(), Named::getID(), getInsertionChecks(), MSNet::getInsertionControl(), MSNet::getInstance(), MSVehicleType::getMinGap(), MSBaseVehicle::getVehicleType(), MIN2(), TL, WRITE_ERRORF, and WRITE_WARNINGF.
Referenced by checkForPedestrians(), and isInsertionSuccess().
|
protected |
check whether pedestrians on this lane interfere with vehicle insertion
Definition at line 4496 of file MSLane.cpp.
References checkFailure(), COLLISION, DEBUG_COND2, MSCFModel::FUTURE, MSVehicle::getCarFollowModel(), getEdge(), Named::getID(), getInsertionChecks(), MSVehicle::getLateralPositionOnLane(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSCFModel::getMaxDecel(), MSVehicle::getRightSideOnLane(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), hasPedestrians(), nextBlocking(), PEDESTRIAN, SIMTIME, and MSCFModel::stopSpeed().
Referenced by isInsertionSuccess().
|
static |
Clears the dictionary.
Definition at line 2437 of file MSLane.cpp.
References clear(), and myDict.
Referenced by NLBuilder::buildNet(), clear(), and MSNet::clearAll().
|
inherited |
Clears the parameter map.
Definition at line 139 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NLHandler::beginEdgeParsing(), and GNESingleParametersDialog::onCmdAccept().
void MSLane::clearState | ( | ) |
Remove all vehicles before quick-loading state.
Definition at line 3665 of file MSLane.cpp.
References myBruttoVehicleLengthSum, myBruttoVehicleLengthSumToRemove, myFollowerInfoTime, myLeaderInfoTime, myLinks, myManeuverReservations, myNettoVehicleLengthSum, myNettoVehicleLengthSumToRemove, myParkingVehicles, myPartialVehicles, myVehicles, and SUMOTime_MIN.
|
protected |
detect whether there is a collision between the two vehicles
Definition at line 1895 of file MSLane.cpp.
References COLLISION_ACTION_TELEPORT, DEBUG_COND, DEBUG_COND2, DELTA_T, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSVehicle::getCenterOnEdge(), MSCFModel::getCollisionMinGapFactor(), getEdge(), MSVehicle::getFurtherLanes(), Named::getID(), MSVehicle::getInfluencer(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicle::getLateralOverlap(), MSBaseVehicle::getLength(), getLength(), MSVehicleType::getMinGap(), MSEdge::getNumLanes(), MSVehicle::getPositionOnLane(), MSAbstractLaneChangeModel::getShadowLane(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), MSGlobals::gLaneChangeDuration, MSGlobals::gSublane, handleCollisionBetween(), MSVehicle::hasInfluencer(), MSVehicle::isBidiOn(), MSAbstractLaneChangeModel::isChangingLanes(), isInternal(), MSAbstractLaneChangeModel::isOpposite(), MSVehicle::Influencer::isRemoteAffected(), myCollisionAction, myCollisionMinGapFactor, myEdge, SIMTIME, and std::swap().
Referenced by detectCollisions().
|
virtual |
Check if vehicles are too close.
Reimplemented in GUILane.
Definition at line 1621 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(), MSEdge::getPersons(), MSVehicle::getPositionOnLane(), getRightSideOnEdge(), MSVehicle::getRightSideOnEdge(), MSVehicle::getSpeed(), MSNet::getVehicleControl(), getVehicleNumberWithPartials(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), MSGlobals::gSublane, handleCollisionBetween(), handleIntermodalCollisionBetween(), hasPedestrians(), isInternal(), MSVehicle::isLeader(), isRailway(), 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, std::swap(), and toString().
Referenced by GUILane::detectCollisions().
|
protected |
detect whether a vehicle collids with pedestrians on the junction
Definition at line 1854 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(), myIntermodalCollisionAction, PositionVector::overlapsWith(), and SIMTIME.
Referenced by detectCollisions().
|
static |
Returns the MSLane associated to the key id.
The lane is returned if exists, otherwise 0 is returned.
[in] | id | The id of the lane |
Definition at line 2426 of file MSLane.cpp.
References myDict.
|
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.
[in] | id | The id of the lane |
[in] | lane | The lane itself |
make non-static
why is the id given? The lane is named
Definition at line 2414 of file MSLane.cpp.
References myDict.
Referenced by NLHandler::addConnection(), NLNetShapeHandler::addConnection(), NLHandler::addLane(), NLNetShapeHandler::addLane(), MSRouteHandler::addStop(), MSBaseVehicle::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().
|
inlinestatic |
|
inline |
Returns true if there is not a single vehicle on the lane.
Definition at line 739 of file MSLane.h.
References myVehBuffer, myVehicles, and MFXSynchQue< T, Container >::size().
Referenced by MSEdge::getFirstAllowed(), and MSQueueExport::writeLane().
void MSLane::enteredByLaneChange | ( | MSVehicle * | v | ) |
Definition at line 3278 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.
Referenced by MSAbstractLaneChangeModel::primaryLaneChanged().
|
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
Reimplemented in GUILane.
Definition at line 2206 of file MSLane.cpp.
References MSVehicleTransfer::add(), MSEdge::allowedLanes(), appropriate(), MSVehicle::brokeDown(), MSEdgeControl::checkCollisionForInactive(), COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, MSVehicle::collisionStopTime(), DEBUG_COND2, MSVehicle::executeMove(), MSVehicle::getBestLanesContinuation(), getBidiLane(), getCollisionAction(), MSBaseVehicle::getEdge(), getEdge(), MSNet::getEdgeControl(), Named::getID(), MSNet::getInstance(), MSVehicleTransfer::getInstance(), MSRailSignalControl::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), getLength(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSVehicle::getMutableLane(), MSVehicleType::getParameter(), MSVehicle::getPositionOnLane(), 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(), 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::registerCollision(), MSVehicleControl::registerTeleportJam(), MSVehicleControl::registerTeleportWrongLane(), MSVehicleControl::registerTeleportYield(), MSVehicle::resumeFromStopping(), MSVehicleControl::scheduleVehicleRemoval(), SIMTIME, MSBaseVehicle::succEdge(), succLinkSec(), time2string(), TL, and WRITE_WARNINGF.
Referenced by GUILane::executeMovements().
|
static |
Fills the given RTree with lane instances.
[in,filled] | into The RTree to fill |
Definition at line 2454 of file MSLane.cpp.
References PositionVector::getBoxBoundary(), getShape(), Boundary::grow(), myDict, Boundary::xmax(), Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().
Referenced by libsumo::Helper::collectObjectsInRange().
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).
[in] | veh | The vehicle to insert |
[in] | pos | The position at which the vehicle shall be inserted |
[in] | notification | The cause of insertion (i.e. departure, teleport, parking) defaults to departure |
[in] | posLat | The lateral position at which the vehicle shall be inserted |
Definition at line 1348 of file MSLane.cpp.
References getDepartSpeed(), MSVehicle::getSpeed(), MSBaseVehicle::hasDeparted(), incorporateVehicle(), myVehicles, and MSVehicle::updateBestLanes().
Referenced by MSVehicle::executeFractionalMove(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), and MSAbstractLaneChangeModel::primaryLaneChanged().
bool MSLane::freeInsertion | ( | MSVehicle & | veh, |
double | speed, | ||
double | posLat, | ||
MSMoveReminder::Notification | notification = MSMoveReminder::NOTIFICATION_DEPARTED |
||
) |
Tries to insert the given vehicle on any place.
[in] | veh | The vehicle to insert |
[in] | speed | The maximum insertion speed |
[in] | notification | The cause of insertion (i.e. departure, teleport, parking) defaults to departure |
Definition at line 505 of file MSLane.cpp.
References MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), getLength(), MSVehicleType::getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getMissingRearGap(), MSVehicle::getPositionOnLane(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), isInsertionSuccess(), MIN2(), myLength, myPartialVehicles, myVehicles, MSMoveReminder::NOTIFICATION_TELEPORT, and MSVehicle::setTentativeLaneAndPosition().
Referenced by MSVehicleTransfer::checkInsertions(), and insertVehicle().
|
inline |
Definition at line 560 of file MSLane.h.
References interpolateLanePosToGeometryPos(), myShape, and PositionVector::positionAtOffset().
Referenced by GUIBusStop::addAccess(), MSStoppingPlace::addAccess(), GUIE3Collector::MyWrapper::buildDefinition(), MSPerson::checkAccess(), TraCIServerAPI_Simulation::commandPositionConversion(), MSVehicle::computeAngle(), LIBSUMO_NAMESPACE::Simulation::convert2D(), LIBSUMO_NAMESPACE::Simulation::convert3D(), GUILane::debugDrawFoeIntersections(), GUIEdge::drawMesoVehicles(), GUIVehicle::drawRouteHelper(), GUIBaseVehicle::drawStopLabels(), MSVehicle::getBackPosition(), GUIMEVehicle::getCenteringBoundary(), NLShapeHandler::getLanePos(), MEVehicle::getPosition(), MSVehicle::getPosition(), MSVehicle::getPositionAlongBestLanes(), MSVehicle::getSlope(), MSVehicle::interpolateLateralZ(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), MSPModel_Striping::PState::moveTo(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), GUIInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIMEInductLoop::MyWrapper::MyWrapper(), GUIViewTraffic::onGamingClick(), and MSVehicle::validatePosition().
MSLane * MSLane::getBidiLane | ( | ) | const |
retrieve bidirectional lane or nullptr
Definition at line 4564 of file MSLane.cpp.
References myBidiLane.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSVehicle::adaptToLeaders(), addLeaders(), MSVehicle::betterContinuation(), MSDriveWay::buildDriveWay(), MSDriveWay::buildRoute(), MSDriveWay::checkCrossingFlanks(), MSDriveWay::checkFlanks(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), MSVehicle::computeFurtherLanes(), detectCollisions(), GUILane::drawGL(), GUIVehicle::drawRouteHelper(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::enterLaneAtMove(), executeMovements(), MSVehicle::getBackPositionOnLane(), LIBSUMO_NAMESPACE::Lane::getBidiLane(), MSVehicle::getCenterOnEdge(), MSLCM_SL2015::getDesiredAlignment(), getFollowersOnConsecutive(), getFractionalVehicleLength(), MSVehicle::getLatOffset(), MSLink::getLeaderInfo(), MSPModel_Striping::getVehicleObstacles(), incorporateVehicle(), MSLCM_SL2015::isBidi(), MSLCHelper::isBidiFollower(), MSLCHelper::isBidiLeader(), MSVehicle::isBidiOn(), MSVehicle::isFrontOnLane(), isInsertionSuccess(), MSDriveWay::isSwitch(), MSVehicle::leaveLane(), GUILane::neighLaneNotBidi(), MSDriveWay::notifyLeaveBack(), MSVehicle::planMoveInternal(), MSVehicle::processLaneAdvances(), safeInsertionSpeed(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), and MSVehicle::updateFurtherLanes().
double MSLane::getBruttoOccupancy | ( | ) | const |
Returns the brutto (including minGaps) occupancy of this lane during the last step.
Definition at line 3315 of file MSLane.cpp.
References getFractionalVehicleLength(), 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().
|
inline |
Returns the sum of lengths of vehicles, including their minGaps, which were on the lane during the last step.
Definition at line 1158 of file MSLane.h.
References myBruttoVehicleLengthSum.
Referenced by MSVehicle::checkRewindLinkLanes(), and MSLCHelper::getRoundaboutDistBonus().
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 3191 of file MSLane.cpp.
References Named::getID(), MSGlobals::gNumSimThreads, myCanonicalPredecessorLane, Named::myID, and myIncomingLanes.
Referenced by MSVehicle::computeAngle(), getEntryLink(), getFirstInternalInConnection(), and MSE2Collector::selectLanes().
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 3215 of file MSLane.cpp.
References Named::getID(), myCanonicalSuccessorLane, Named::myID, and myLinks.
Referenced by MSDevice_SSM::classifyEncounter(), MSVehicle::getDistanceToLeaveJunction(), MSVehicle::getNextEdgePtr(), MSPModel_Striping::getNextLane(), getNormalSuccessorLane(), getOppositeFollower(), and MSE2Collector::selectLanes().
|
inline |
Definition at line 1202 of file MSLane.h.
References myRightSideOnEdge, and myWidth.
Referenced by MSVehicle::getCenterOnEdge().
|
inline |
Returns the vehicle class permissions for changing to the left neighbour lane.
Definition at line 621 of file MSLane.h.
References myChangeLeft.
|
inline |
Returns the vehicle class permissions for changing to the right neighbour lane.
Definition at line 628 of file MSLane.h.
References myChangeRight.
|
inlinestatic |
Definition at line 1357 of file MSLane.h.
References myCollisionAction.
Referenced by executeMovements(), and MSVehicle::resumeFromStopping().
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.
[in] | dist | The distance to investigate |
[in] | seen | The already seen place (normally the place in front on own lane) |
[in] | speed | The speed of the vehicle used for determining whether a subsequent link will be opened at arrival time |
[in] | veh | The (ego) vehicle for which the information shall be computed |
Definition at line 3051 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(), SIMTIME, succLinkSec(), and TIME2STEPS.
Referenced by MSLaneChanger::checkChange().
int MSLane::getCrossingIndex | ( | ) | const |
return the index of the link to the next crossing if this is walkingArea, else -1
Definition at line 3285 of file MSLane.cpp.
References myLinks.
|
protected |
Definition at line 642 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().
|
protected |
Definition at line 591 of file MSLane.cpp.
References AVG, DEFAULT, SUMOVehicleParameter::departSpeed, SUMOVehicleParameter::departSpeedProcedure, DESIRED, MSBaseVehicle::getChosenSpeedFactor(), getLastAnyVehicle(), getMeanSpeed(), MSBaseVehicle::getParameter(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), GIVEN, gPrecisionRandom, LAST, LIMIT, MAX, MIN2(), RandHelper::rand(), RANDOM, and roundDecimal().
Referenced by forceVehicleInsertion(), and insertVehicle().
|
inherited |
Returns the value for a given key converted to a double.
[in] | key | The key to ask for |
[in] | defaultValue | The default value to return if no value is stored under the key |
Definition at line 100 of file Parameterised.cpp.
References Parameterised::myMap, TL, StringUtils::toDouble(), WRITE_WARNING, and WRITE_WARNINGF.
Referenced by MSPModel_JuPedSim::add(), MSVehicleType::build(), MSVehicleType::check(), EnergyParams::EnergyParams(), MSSOTLPolicy5DStimulus::getStimCox(), MSSOTLPolicy5DStimulus::getStimCoxExpDispersionIn(), MSSOTLPolicy5DStimulus::getStimCoxExpDispersionOut(), MSSOTLPolicy5DStimulus::getStimCoxExpIn(), MSSOTLPolicy5DStimulus::getStimCoxExpOut(), MSSOTLPolicy5DStimulus::getStimDivisorDispersionIn(), MSSOTLPolicy5DStimulus::getStimDivisorDispersionOut(), MSSOTLPolicy5DStimulus::getStimDivisorIn(), MSSOTLPolicy5DStimulus::getStimDivisorOut(), MSSOTLPolicy5DStimulus::getStimOffsetDispersionIn(), MSSOTLPolicy5DStimulus::getStimOffsetDispersionOut(), MSSOTLPolicy5DStimulus::getStimOffsetIn(), MSSOTLPolicy5DStimulus::getStimOffsetOut(), MSActuatedTrafficLightLogic::init(), MSDevice_ElecHybrid::MSDevice_ElecHybrid(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), and MSDevice_Battery::readParameterValue().
|
inherited |
Returns the value for a given key converted to a list of doubles.
[in] | key | The key to ask for |
[in] | defaultValue | The default value to return if no value is stored under the key |
Definition at line 118 of file Parameterised.cpp.
References StringTokenizer::getVector(), Parameterised::myMap, TL, StringUtils::toDouble(), WRITE_WARNING, and WRITE_WARNINGF.
Referenced by EnergyParams::EnergyParams().
|
inline |
Returns the lane's edge.
Definition at line 764 of file MSLane.h.
References myEdge.
Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSStageDriving::abort(), MSLane::StoringVisitor::add(), addApproachingLane(), NLHandler::addConnection(), NLNetShapeHandler::addLane(), MSLaneChangerSublane::addOutsideLeaders(), MSRouteHandler::addPersonTrip(), MSDevice_Taxi::addReservation(), MSRouteHandler::addRideOrTransport(), MSRouteHandler::addStop(), MSBaseVehicle::addStop(), MSRouteHandler::addTranship(), MSSwarmTrafficLightLogic::allowLine(), libsumo::Helper::applySubscriptionFilterLanes(), libsumo::Helper::applySubscriptionFilters(), MSVehicle::boardTransportables(), MSVehicle::brakeForOverlap(), MSDriveWay::buildRoute(), MSSOTLE2Sensors::buildSensorForLane(), libsumo::Helper::buildStopParameters(), MSStageDriving::canLeaveVehicle(), MSPerson::checkAccess(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeOpposite(), MSLink::checkContOff(), checkForPedestrians(), MSVehicle::checkLinkLeader(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSLink::checkWalkingAreaFoe(), MSDevice_SSM::classifyEncounter(), MSEdge::closeBuilding(), GUILane::closeTraffic(), MSVehicle::computeFurtherLanes(), MSLCM_SL2015::computeSpeedGain(), MSLaneChanger::continueChange(), NLDetectorBuilder::createInductLoop(), GUIDetectorBuilder::createInductLoop(), detectCollisionBetween(), MSE2Collector::detectorUpdate(), MSE3Collector::detectorUpdate(), MSInductLoop::detectorUpdate(), detectPedestrianJunctionCollision(), MSLCHelper::divergentRoute(), GUILane::drawLane2LaneConnections(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtMove(), MSVehicle::estimateTimeToNextStop(), MSStoppingPlaceRerouter::evaluateDestination(), MSPModel_JuPedSim::execute(), MSVehicle::executeMove(), executeMovements(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSStoppingPlace::getAccessPos(), MSMeanData_Net::getAttributeValue(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSLaneChanger::getBestLanesOpposite(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), MSVehicle::getCurrentEdge(), MSRoute::getDistanceBetween(), MSStop::getEdge(), MSStageDriving::getEdge(), MSVehicle::getFollower(), getFollowersOnConsecutive(), MSVehicle::getLatOffset(), MSLink::getLeaderInfo(), MSLCM_SL2015::getLeftBorder(), GUIVehicle::getLeftSublaneOnEdge(), getLogicalPredecessorLane(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), MSLCM_SL2015::getNeighRight(), MSVehicle::getNextEdgePtr(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), LIBSUMO_NAMESPACE::Vehicle::getNextTLS(), MSAbstractLaneChangeModel::getNormalizedLaneIndex(), MSCFModel_CC::getParameter(), GUILane::getParentName(), GUILane::getPopUpMenu(), MSVehicle::getPosition(), MSVehicle::getRerouteOrigin(), GUIVehicle::getRightSublaneOnEdge(), MSLCHelper::getRoundaboutDistBonus(), LIBSUMO_NAMESPACE::TrafficLight::getServedPersonCount(), MSAbstractLaneChangeModel::getShadowDirection(), MSVehicle::getUpcomingLanesUntil(), MSDevice_SSM::getVehiclesOnJunction(), GUIVehicle::getVisualPosition(), handleCollisionBetween(), MSVehicle::influenceChangeDecision(), MSTrafficLightLogic::initMesoTLSPenalties(), MSBaseVehicle::insertStop(), MSLCHelper::isBidiFollower(), MSVehicle::isBidiOn(), isInsertionSuccess(), MSVehicle::isLeader(), MSVehicle::isOppositeLane(), MSLink::lastWasContMajor(), MSLink::lastWasContState(), MSVehicle::leaveLane(), MESegment::limitedControlOverride(), MSPedestrianPushButton::loadPushButtons(), MSStageDriving::loadState(), MSStageWalking::loadState(), 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(), MSDriveWay::notifyEnter(), MSDevice_SSM::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSDevice_Bluelight::notifyMove(), MSDevice_StationFinder::notifyMove(), GUIViewTraffic::onCmdAddRerouter(), GUIViewTraffic::onCmdCloseEdge(), MSLane::edge_finder::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), MSLCM_SL2015::outsideEdge(), NLTriggerBuilder::parseAndBuildCalibrator(), MSRouteHandler::parseWalkPositions(), MSVehicle::passingMinor(), MSLCM_DK2008::patchSpeed(), MSVehicle::planMoveInternal(), MSInternalJunction::postloadInit(), MSVehicle::Influencer::postProcessRemoteControl(), MSLCM_SL2015::prepareStep(), MSDevice_Taxi::prepareStop(), MSAbstractLaneChangeModel::primaryLaneChanged(), MSPerson::MSPersonStage_Access::proceed(), MSStageDriving::proceed(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), MSVehicle::processNextStop(), MSPModel_Striping::PState::PState(), MSPModel_Striping::registerCrossingApproach(), MSLeaderInfo::removeOpposite(), MSBaseVehicle::replaceParkingArea(), MSBaseVehicle::replaceRoute(), MSBaseVehicle::replaceStop(), MSStoppingPlaceRerouter::reroute(), GUIVehicle::rerouteDRTStop(), MSVehicle::rerouteParkingArea(), MSTransportable::rerouteParkingArea(), MSDevice_StationFinder::rerouteToChargingStation(), MSVehicle::resumeFromStopping(), LIBSUMO_NAMESPACE::Lane::setAllowed(), LIBSUMO_NAMESPACE::Lane::setDisallowed(), MSLink::setRequestInformation(), LIBSUMO_NAMESPACE::Vehicle::setRoute(), GUIViewTraffic::showLaneReachability(), MSLaneChangerSublane::startChangeSublane(), MSDevice_StationFinder::teleportToChargingStation(), MSLCM_SL2015::tieBrakeLeader(), MSVehicle::unsafeLinkAhead(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateCFRelated(), MSLaneChangerSublane::updateChanger(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::Influencer::updateRemoteControlRoute(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSVehicle::willStop(), and MSFCDExport::write().
|
inline |
Returns the sum of last step emissions The value is always per 1s, so multiply by step length if necessary.
Definition at line 1168 of file MSLane.h.
References getVehiclesSecure(), and releaseVehicles().
Referenced by MSFullExport::writeLane().
const MSLink * MSLane::getEntryLink | ( | ) | const |
Returns the entry link if this is an internal lane, else nullptr.
Definition at line 2691 of file MSLane.cpp.
References getCanonicalPredecessorLane(), getLinkTo(), and isInternal().
Referenced by MSDevice_SSM::classifyEncounter(), MSLink::computeDistToDivergence(), MSLink::getLeaderInfo(), MSLink::getLengthBeforeCrossing(), getUpcomingLinks(), MSDevice_SSM::getVehiclesOnJunction(), MSVehicle::isLeader(), and MSLink::setRequestInformation().
MSVehicle * MSLane::getFirstAnyVehicle | ( | ) | const |
returns the first vehicle that is fully or partially on this lane
Definition at line 2605 of file MSLane.cpp.
References MSVehicle::getPositionOnLane(), myPartialVehicles, and myVehicles.
Referenced by MSVehicle::processLinkApproaches().
MSVehicle * MSLane::getFirstFullVehicle | ( | ) | const |
returns the first vehicle for which this lane is responsible or 0
Definition at line 2577 of file MSLane.cpp.
References myVehicles.
Referenced by MSVehicle::checkRewindLinkLanes().
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 2396 of file MSLane.cpp.
References getCanonicalPredecessorLane(), getLength(), and isInternal().
Referenced by MSDevice_SSM::classifyEncounter().
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 1465 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().
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)
[in] | ego | The ego vehicle |
[in] | egoPos | The ego position mapped to the current lane |
[in] | dist | The look-back distance when looking at consecutive lanes |
[in] | ignoreMinorLinks | Whether backward search should stop at minor links |
Definition at line 4316 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(), MSVehicle::getFollower(), MSLaneChanger::getOncomingVehicle(), getOppositeFollower(), and getOppositeLeader().
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
XXX dubious term. here for backwards compatibility
Definition at line 3725 of file MSLane.cpp.
References MSCriticalFollowerDistanceInfo::addFollower(), anyVehiclesBegin(), anyVehiclesEnd(), DEBUG_COND2, FOLLOW_ALWAYS, FOLLOW_ONCOMING, gDebugFlag1, MSEdge::getBidiEdge(), getBidiLane(), getEdge(), getFirstVehicleInformation(), MSVehicle::getFurtherLanes(), Named::getID(), Named::getIDSecure(), getIncomingLanes(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSEdge::getLanes(), MSVehicle::getLateralPositionOnLane(), MSVehicle::getLatOffset(), MSVehicle::getLeftSideOnLane(), MSBaseVehicle::getLength(), getLength(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), getLogicalPredecessorLane(), getMaximumBrakeDist(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), getRightSideOnEdge(), MSVehicle::getRightSideOnLane(), MSVehicle::getSpeed(), MSLeaderInfo::getSublaneOffset(), MSBaseVehicle::getVehicleType(), getWidth(), MSGlobals::gLateralResolution, MSVehicle::isBidiOn(), MSVehicle::isFrontOnLane(), MSVehicle::isOnRoad(), MSAbstractLaneChangeModel::isOpposite(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, MAX2(), myEdge, myIncomingLanes, myWidth, MSLeaderInfo::numFreeSublanes(), MSLeaderInfo::numSublanes(), MSVehicle::onFurtherEdge(), MSLeaderInfo::setSublaneOffset(), SIMTIME, STRAIGHT, SUMO_const_haltingSpeed, MSLeaderInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), and MSLane::IncomingLaneInfo::viaLink.
Referenced by MSLaneChangerSublane::checkChangeOpposite(), getFollower(), getMissingRearGap(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), isInsertionSuccess(), and MSVehicle::planMoveInternal().
|
protected |
return length of fractional vehicles on this lane
Definition at line 3296 of file MSLane.cpp.
References getBidiLane(), MSGlobals::gSublane, myLength, and myPartialVehicles.
Referenced by getBruttoOccupancy(), and getNettoOccupancy().
|
inline |
Returns the lane's friction coefficient.
Definition at line 599 of file MSLane.h.
References myFrictionCoefficient.
Referenced by GUILane::getParameterWindow(), and MSDevice_Friction::notifyMove().
double MSLane::getHarmonoise_NoiseEmissions | ( | ) | const |
Returns the sum of last step noise emissions.
Definition at line 3404 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and HelpersHarmonoise::sum().
Referenced by GUILane::getColorValue(), GUILane::getScaleValue(), and MSFullExport::writeLane().
|
inlineinherited |
Returns the id.
Definition at line 74 of file Named.h.
References Named::myID.
Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_SL2015::_patchSpeed(), MSDriveWay::_saveState(), MSCFModel_EIDM::_v(), MSCFModel_ACC::_v(), MSCFModel_IDM::_v(), MSCFModel_CACC::_v(), MSCFModel_Wiedemann::_v(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChangerSublane::abortLCManeuver(), MSTransportable::abortStage(), MSDevice_GLOSA::adaptSpeed(), MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToJunctionLeader(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaderDistance(), MSVehicle::adaptToLeaders(), MSVehicle::adaptToOncomingLeader(), MSVehicleTransfer::add(), MSDetectorControl::add(), MSPModel_JuPedSim::add(), MSPModel_Striping::add(), PCPolyContainer::add(), ShapeContainer::add(), PCPolyContainer::add(), ShapeContainer::add(), MSDetectorControl::add(), MSDetectorControl::add(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), addApproachingLane(), MSDriveWay::addBidiFoes(), MSTractionSubstation::addChargeValueForOutput(), MSChargingStation::addChargeValueForOutput(), MSOverheadWire::addChargeValueForOutput(), NBNodeCont::addCluster2Join(), NLHandler::addConflict(), NLHandler::addConnection(), NBLoadedSUMOTLDef::addConnection(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), NIXMLEdgesHandler::addEdge(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), 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(), MSRouteHandler::addRideOrTransport(), RONet::addRouteDef(), MSDriveWay::addSidings(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), RORouteHandler::addStop(), ROVehicle::addStop(), MSBaseVehicle::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(), MSDevice_ToC::awarenessRecoveryStep(), GUITrafficLightLogicWrapper::begin2TrackPhases(), 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_Routing::buildDevices(), MSTransportableDevice_BTreceiver::buildDevices(), MSTransportableDevice_BTsender::buildDevices(), MSTransportableDevice_FCD::buildDevices(), MSTransportableDevice_FCDReplay::buildDevices(), NIImporter_VISUM::buildDistrictNode(), MSDriveWay::buildDriveWay(), NLDetectorBuilder::buildE2Detector(), NLDetectorBuilder::buildE2Detector(), RODFNet::buildEdgeFlowMap(), NLDetectorBuilder::buildInductLoop(), NBEdge::buildInnerEdges(), NLTriggerBuilder::buildInnerOverheadWireSegments(), GNETLSEditorFrame::buildInternalLanes(), NIVissimEdge::buildNBEdge(), NGEdge::buildNBEdge(), NBOwnTLDef::buildNemaPhases(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSPModel_JuPedSim::buildPedestrianNetwork(), MSDriveWay::buildRoute(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), libsumo::Helper::buildStopParameters(), MSDriveWay::buildSubFoe(), MSDevice_Bluelight::buildVehicleDevices(), MSVehicleDevice_BTreceiver::buildVehicleDevices(), MSVehicleDevice_BTsender::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_Tripinfo::buildVehicleDevices(), MSDevice_Transportable::buildVehicleDevices(), MSDevice_Vehroutes::buildVehicleDevices(), MSDevice_Battery::buildVehicleDevices(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), NEMALogic::calculateInitialPhases170(), MSE2Collector::calculateTimeLossAndTimeOnDetector(), MSDevice_Taxi::cancelCurrentCustomers(), MSDevice_Taxi::cancelCustomer(), MSStageDriving::canLeaveVehicle(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSLCHelper::canSaveBlockerLength(), MSDriveWay::canUseSiding(), MSLaneChanger::change(), MSLaneChangerSublane::change(), MSLCM_SL2015::changed(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSActuatedTrafficLightLogic::changeStepAndDuration(), MSSimpleTrafficLightLogic::changeStepAndDuration(), LIBSUMO_NAMESPACE::Vehicle::changeTarget(), MSCFModel_CC::changeWholePlatoonLane(), MSTLLogicControl::check2Switch(), MSEdge::checkAndRegisterBiDirEdge(), MSLaneChanger::checkChange(), MSLaneChanger::checkChangeOpposite(), MSLaneChangerSublane::checkChangeOpposite(), MSLaneChangerSublane::checkChangeSublane(), NBEdgeCont::checkConsistency(), MSDriveWay::checkCrossingFlanks(), MSDevice_ToC::checkDynamicToC(), checkFailure(), MSDriveWay::checkFlanks(), checkForPedestrians(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), MSE2Collector::checkPositioning(), MSRoute::checkRemoval(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), MEVehicle::checkStop(), MSLCM_SL2015::checkStrategicChange(), MSAbstractLaneChangeModel::checkTraCICommands(), MSLaneChanger::checkTraCICommands(), MSLink::checkWalkingAreaFoe(), MSSwarmTrafficLightLogic::choosePolicy(), MSDevice_SSM::classifyEncounter(), ShapeContainer::clearHighlights(), NBTrafficLightLogic::closeBuilding(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), MSDevice_SSM::closeEncounter(), RORouteHandler::closeRouteDistribution(), MSRouteHandler::closeVehicle(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), MSLCM_SL2015::commitManoeuvre(), IntermodalRouter< E, L, N, V >::compute(), NBTrafficLightDefinition::compute(), ROJTRRouter::compute(), MSVehicle::computeAngle(), MSDispatch::computeDetourTime(), MSDispatch_GreedyClosest::computeDispatch(), NBNodeShapeComputer::computeEdgeBoundaries(), MSVehicle::computeFurtherLanes(), MSDevice_SSM::computeGlobalMeasures(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), NBNodeTypeComputer::computeNodeTypes(), NBRampsComputer::computeRamps(), RODFNet::computeRoutesFor(), MSLaneChanger::computeSafeOppositeLength(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), MSLCM_LC2013::computeSpeedLat(), MSLCM_SL2015::computeSpeedLat(), 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(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSSOTLE2Sensors::countVehicles(), MSDevice_SSM::createEncounters(), GNETLSEditorFrame::TLSDefinition::createTLS(), GUINet::createTLWrapper(), MSDevice_Taxi::customerArrived(), NBNodeCont::customTLID(), MSDevice_ToC::deactivateDeliberateLCs(), libsumo::Helper::debugPrint(), MSLCM_SL2015::decideDirection(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), MSVehicleControl::deleteVehicle(), MSDevice_ElecHybrid::deleteVehicleFromCircuit(), detectCollisionBetween(), detectCollisions(), MSE3Collector::detectorUpdate(), 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(), MSAbstractLaneChangeModel::endLaneChangeManeuver(), MSE3Collector::enter(), NEMAPhase::enter(), MSParkingArea::enter(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::enterLaneAtMove(), MSVehicle::Manoeuvre::entryManoeuvreIsComplete(), MSTransportableControl::erase(), NEMALogic::error_handle_not_set(), MSStoppingPlaceRerouter::evaluateDestination(), METriggeredCalibrator::execute(), Command_SaveTLSProgram::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitches::execute(), Command_SaveTLSSwitchStates::execute(), Command_RouteReplacement::execute(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSCalibrator::execute(), MSPModel_JuPedSim::execute(), MSVehicle::executeFractionalMove(), MSVehicle::executeMove(), 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(), MSDevice_SSM::findSurroundingVehicles(), MSDevice_SSM::flushConflicts(), MSDevice_SSM::flushGlobalMeasures(), MSDriveWay::foeDriveWayOccupied(), MSCFModel_CACC::followSpeed(), MSCFModel_EIDM::followSpeed(), MSCFModel_W99::followSpeed(), NBTrafficLightDefinition::forbids(), MSLaneChanger::foundHilltop(), MSCFModel_EIDM::freeSpeed(), NBNodeCont::generateNodeClusters(), MSDevice_Tripinfo::generateOutput(), MSDevice_StationFinder::generateOutput(), MSStopOut::generateOutputForUnfinished(), GUITrafficLightLogicWrapper::getActiveTLLogic(), 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(), getCanonicalPredecessorLane(), getCanonicalSuccessorLane(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), MSDriveWay::getClickableTLLinkID(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), MSActuatedTrafficLightLogic::getConditions(), LIBSUMO_NAMESPACE::TrafficLight::getConstraintsByFoe(), LIBSUMO_NAMESPACE::TrafficLight::getControlledLinks(), getCriticalLeader(), MSCalibrator::getCurrentStateInterval(), NBNodeShapeComputer::getDefaultRadius(), MSDriveWay::getDepartureDriveway(), MSLink::getDescription(), MSStop::getDescription(), MSRailSignalConstraint_Predecessor::getDescription(), NBTrafficLightDefinition::getDescription(), MSStageTrip::getDestinationDescription(), GUIPerson::getDestinationEdgeID(), GUIPerson::getDestinationStopID(), MSDevice_SSM::getDetectionRange(), RODFNet::getDetectorEdge(), MSActuatedTrafficLightLogic::getDetectorPriority(), MSRailSignal::LinkInfo::getDriveWay(), MSRailSignal::LinkInfo::getDriveWay(), GUIVehicle::getDriveWays(), MSSimpleTrafficLightLogic::getEarliest(), GUIPerson::getEdgeID(), GUIMEVehicle::getEdgeID(), MSMeanData::getEdgeID(), LIBSUMO_NAMESPACE::RouteProbe::getEdgeID(), MSDevice_SSM::getExtraTime(), getFirstVehicleInformation(), SUMOTrafficObject::getFloatParam(), MSBaseVehicle::getFlowID(), getFollower(), getFollowersOnConsecutive(), GUIPerson::getFromEdgeID(), MSPModel_InteractingState::getID(), MSPModel_Striping::PStateVehicle::getID(), NBEdge::getID(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), MSDriveWay::getJunctionLinkID(), LIBSUMO_NAMESPACE::Calibrator::getLaneID(), NEMALogic::getLaneInfoFromNEMAState(), MSParkingArea::getLastFreePos(), MSParkingArea::getLastFreePosWithReservation(), getLastVehicleInformation(), MSSimpleTrafficLightLogic::getLatest(), MSVehicle::getLatOffset(), getLeader(), MSLink::getLeaderInfo(), getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), 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(), getOppositeFollower(), getOppositeLeader(), MSStageTrip::getOriginDescription(), MSDevice_SSM::getOutputFilename(), MSDevice_ElecHybrid::getOverheadWireSegmentID(), MSOverheadWire::getOverheadWireSegmentName(), MSDevice_StationFinder::getParameter(), MSDevice_ToC::getParameter(), MSActuatedTrafficLightLogic::getParameter(), NEMALogic::getParameter(), LIBSUMO_NAMESPACE::Simulation::getParameter(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIContainer::getParameterWindow(), GUILane::getParameterWindow(), GUILane::getParentName(), getPartialBehind(), MSSimpleDriverState::getPerceivedHeadway(), MSSimpleDriverState::getPerceivedSpeedDifference(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), PolygonDynamics::getPolygonID(), GUITrafficLightLogicWrapper::getPopUpMenu(), 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(), GUIBaseVehicle::getScaleValue(), MSAbstractLaneChangeModel::getShadowLane(), MSBaseVehicle::getSingularType(), MSTransportable::getSingularType(), LIBSUMO_NAMESPACE::Person::getStage(), MSStageDriving::getStageSummary(), MSStageTranship::getStageSummary(), MSStageWaiting::getStageSummary(), MSStageWalking::getStageSummary(), MSDevice_Taxi::getStopLane(), MSNet::getStoppingPlaceID(), SUMOTrafficObject::getStringParam(), 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(), getUpcomingLinks(), MSDevice_SSM::getUpstreamVehicles(), MSRailSignalConstraint::getVeh(), LIBSUMO_NAMESPACE::Person::getVehicle(), LIBSUMO_NAMESPACE::TrafficLight::getVehicleByTripId(), GUIPerson::getVehicleID(), MSPModel_Striping::getVehicleObstacles(), MSStageTrip::getVehicles(), MSDevice_SSM::getVehiclesOnJunction(), MSStageDriving::getWaitingDescription(), MSEdge::getWaitingVehicle(), MSStoppingPlaceRerouter::getWeight(), MSLink::getZipperSpeed(), GNEEdge::GNEEdge(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), handleCollisionBetween(), handleIntermodalCollisionBetween(), MSRailSignal::hasInsertionConstraint(), MSDriveWay::hasJoin(), MSDriveWay::hasLinkConflict(), MSBaseVehicle::hasValidRouteStart(), MSVehicle::hasValidRouteStart(), MSRailSignalControl::haveDeadlock(), MSBaseVehicle::haveValidStopEdges(), LIBSUMO_NAMESPACE::POI::highlight(), LIBSUMO_NAMESPACE::Vehicle::highlight(), MSIdling_Stop::idle(), MSIdling_RandomCircling::idle(), MSIdling_TaxiStand::idle(), MSLink::ignoreFoe(), MSVehicle::ignoreFoe(), MSVehicle::ignoreRed(), MSVehicle::Influencer::implicitDeltaPosRemote(), NBNode::indirectLeftShape(), MSLCM_LC2013::inform(), MSLCM_SL2015::inform(), MSLCM_SL2015::informFollower(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informLeader(), MSLCM_LC2013::informLeader(), MSCalibrator::init(), NBEdge::init(), MSDeterministicHiLevelTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSRailSignal::init(), NEMALogic::init(), MSActuatedTrafficLightLogic::initAttributeOverride(), MSE2Collector::initAuxiliaries(), MESegment::initialise(), MSPModel_JuPedSim::initialize(), MSTrafficLightLogic::initMesoTLSPenalties(), NBOwnTLDef::initNeedsContRelation(), PolygonDynamics::initTrackedPosition(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NIImporter_OpenStreetMap::insertEdge(), MSCFModel_IDM::insertionFollowSpeed(), MSBaseVehicle::insertStop(), insertVehicle(), MSEdge::insertVehicle(), MSPModel_Striping::insertWalkArePaths(), integrateNewVehicles(), IntermodalNetwork< E, L, N, V >::IntermodalNetwork(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isAllowed(), RODFNet::isDestination(), RODFNet::isFalseSource(), 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(), MSVehicle::loadState(), MSVehicleTransfer::loadState(), MSActuatedTrafficLightLogic::loadState(), ODDistrictCont::makeDistricts(), MSE2Collector::makeMoveNotification(), MSE2Collector::makeVehicleInfo(), NWWriter_OpenDrive::mapmatchRoadObjects(), MSDriveWay::match(), MEVehicle::mayProceed(), MSSOTLE2Sensors::meanVehiclesSpeed(), METriggeredCalibrator::METriggeredCalibrator(), MSDevice_FCDReplay::move(), 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(), MSDevice_ToC::MRMExecutionStep(), MSChargingStation::MSChargingStation(), MSDevice_Battery::MSDevice_Battery(), MSDevice_ElecHybrid::MSDevice_ElecHybrid(), MSDevice_Taxi::MSDevice_Taxi(), MSDevice_ToC::MSDevice_ToC(), MSE2Collector::MSE2Collector(), MSE2Collector::MSE2Collector(), MSLCM_LC2013::MSLCM_LC2013(), MSParkingArea::MSParkingArea(), MSSimpleDriverState::MSSimpleDriverState(), MSLCM_SL2015::mustOvertakeStopped(), NBLoadedTLDef::myCompute(), NIImporter_SUMO::myEndElement(), MSStateHandler::myStartElement(), MSCalibrator::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), MSDevice_FCDReplay::FCDHandler::myStartElement(), MSPModel_Interacting::nextBlocking(), MSLane::AnyVehicleIterator::nextIsMyVehicles(), MSDevice_ElecHybrid::notifyEnter(), MSE2Collector::notifyEnter(), MSDevice_Bluelight::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Example::notifyEnter(), MSDevice_GLOSA::notifyEnter(), MSDevice_SSM::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSRailSignalConstraint_Predecessor::PassedTracker::notifyEnter(), MSCalibrator::VehicleRemover::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSDriveWay::notifyEnter(), MSDevice_ElecHybrid::notifyLeave(), MSDevice_Bluelight::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_SSM::notifyLeave(), MSDevice_Transportable::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSE2Collector::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSDriveWay::notifyLeave(), MSDriveWay::notifyLeaveBack(), MSDevice_ElecHybrid::notifyMove(), MSDevice_Battery::notifyMove(), MSDevice_Bluelight::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_Example::notifyMove(), MSDevice_GLOSA::notifyMove(), MSDevice_SSM::notifyMove(), MSE2Collector::notifyMove(), MSInductLoop::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_StationFinder::notifyMove(), MSDevice_ToC::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), GNETLSEditorFrame::TLSDefinition::onCmdResetCurrentProgram(), MSVehicle::onRemovalFromNet(), MSLink::opened(), RORouteHandler::openRoute(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), MSEdge::transportable_by_position_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), RODFNet::idComp::operator()(), MSLaneChangerSublane::outputLCStarted(), 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(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), MSRoutingEngine::patchSpeedForTurns(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSCFModel_CC::performAutoLaneChange(), MSVehicle::planMove(), MSVehicle::planMoveInternal(), planMovements(), PolygonDynamics::PolygonDynamics(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::Influencer::postProcessRemoteControl(), MSLCM_SL2015::prepareStep(), MSDevice_Taxi::prepareStop(), MSLCM_SL2015::preventSliding(), 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::pruneClusterFringe(), NBNodeCont::pruneSlipLaneNodes(), MSPModel_Striping::PState::PState(), MSPModel_Striping::PState::PState(), NBTrafficLightDefinition::railSignalUncontrolled(), MSDevice_Battery::readParameterValue(), MSOffTrafficLightLogic::rebuildPhase(), NBEdge::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdge::reduceGeometry(), MSNet::registerCollision(), MSPModel_Striping::registerCrossingApproach(), MSLink::removeApproaching(), MSLink::removeApproachingPerson(), LIBSUMO_NAMESPACE::TrafficLight::removeConstraints(), MSVehicle::removePassedDriveItems(), MSCalibrator::removePending(), MSDispatch::removeReservation(), GNEJunction::removeTLSConnections(), NBNodeCont::rename(), NBTrafficLightLogicCont::rename(), RORouteDef::repairCurrentRoute(), GNEJunction::replaceIncomingConnections(), MSBaseVehicle::replaceParkingArea(), MSBaseVehicle::replaceRoute(), MSBaseVehicle::replaceRouteEdges(), MSBaseVehicle::replaceStop(), MSTransportable::replaceVehicleType(), MSPerson::replaceWalk(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NLEdgeControlBuilder::reportCurrentEdgeOrLane(), MSDevice_SSM::requestsTrajectories(), MSDevice_ToC::requestToC(), MSStageTrip::reroute(), MSStoppingPlaceRerouter::reroute(), MSBaseVehicle::reroute(), MSRailSignal::LinkInfo::reroute(), GUIVehicle::rerouteDRTStop(), MSVehicle::rerouteParkingArea(), MSTransportable::rerouteParkingArea(), MSDevice_StationFinder::rerouteToChargingStation(), MSDriveWay::reserve(), MSDevice_ToC::resetDeliberateLCs(), resetManeuverReservation(), resetPartialOccupation(), MSDevice_Bluelight::resetVehicle(), MSLaneChanger::resolveDeadlock(), LIBSUMO_NAMESPACE::Vehicle::resume(), MEVehicle::resumeFromStopping(), MSVehicle::resumeFromStopping(), MSRailSignal::retrieveDriveWay(), NIImporter_OpenDrive::retrieveSignalEdges(), RODFNet::revalidateFlows(), NBRailwayTopologyAnalyzer::reverseEdges(), MSStageDriving::routeOutput(), MSStageTranship::routeOutput(), MSStageTrip::routeOutput(), MSStageWaiting::routeOutput(), MSStageWalking::routeOutput(), safeInsertionSpeed(), RONet::saveAndRemoveRoutesUntil(), ROPerson::Ride::saveAsXML(), ROVehicle::saveAsXML(), MSLCM_LC2013::saveBlockerLength(), saveState(), MESegment::saveState(), MSDevice::saveState(), MSDevice_Routing::saveState(), MSDevice_Transportable::saveState(), MSDevice_Tripinfo::saveState(), MSDevice_Vehroutes::saveState(), MSTransportableDevice_Routing::saveState(), MSDevice_Battery::saveState(), MSDevice_StationFinder::saveState(), MSSimpleTrafficLightLogic::saveState(), MSStageDriving::saveState(), MSCalibrator::scheduleRemoval(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSVehicle::setAngle(), MSLink::setApproaching(), MSLink::setApproaching(), MSVehicle::setApproachingForAllLinks(), NBNodeCont::setAsTLControlled(), GNEJunction::setAttribute(), MSSimpleDriverState::setAwareness(), setBidiLane(), MSEdge::setBidiLanes(), NLEdgeControlBuilder::setDefaultStopOffset(), MSBaseVehicle::setDepartAndArrivalEdge(), MSCalibrator::setFlow(), NBEdge::setGeometry(), MSBaseVehicle::setJunctionModelParameter(), MSTransportable::setJunctionModelParameter(), MSAbstractLaneChangeModel::setManeuverDist(), setManeuverReservation(), MSDevice_Battery::setMaximumBatteryCapacity(), MSDevice_Battery::setMaximumChargeRate(), NBEdge::setNodeBorder(), setOpposite(), MSLCM_SL2015::setOwnState(), MSDevice_ToC::setParameter(), MSActuatedTrafficLightLogic::setParameter(), MSSimpleTrafficLightLogic::setParameter(), NEMALogic::setParameter(), MSCFModel_CACC::setParameter(), MSCFModel_CC::setParameter(), setPartialOccupation(), NBEdgePriorityComputer::setPriorityJunctionPriorities(), 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(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSVehicle::slowDownForSchedule(), sortManeuverReservations(), IntermodalNetwork< E, L, N, V >::splitEdge(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSCFModel_EIDM::stopSpeed(), MSStopOut::stopStarted(), MSRailSignal::storeTraCIVehicles(), succLinkSec(), LIBSUMO_NAMESPACE::TrafficLight::swapConstraints(), MSDevice_ToC::switchHolderType(), GNETLSEditorFrame::TLSDefinition::switchProgram(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_StationFinder::teleportToChargingStation(), MELoop::teleportVehicle(), MSDevice_ToC::ToCPreparationStep(), libsumo::Helper::TransportableStateListener::transportableStateChanged(), TraCIServer::transportableStateChanged(), MSDevice_ToC::triggerDownwardToC(), MSDevice_ToC::triggerMRM(), MSTriggeredRerouter::triggerRouting(), MSDevice_ToC::triggerUpwardToC(), MSTransportable::tripInfoOutput(), MSPerson::MSPersonStage_Access::tripInfoOutput(), METriggeredCalibrator::tryEmit(), MSPModel_JuPedSim::tryPedestrianInsertion(), MSSOTLTrafficLightLogic::trySwitch(), MSActuatedTrafficLightLogic::trySwitch(), NEMALogic::trySwitch(), MSStopOut::unloadedContainers(), MSStopOut::unloadedPersons(), MSPModel_Interacting::unregisterCrossingApproach(), MSDevice_SSM::update(), MSSimpleDriverState::update(), PolygonDynamics::update(), MSDevice_SSM::updateAndWriteOutput(), MSVehicle::updateBestLanes(), MSLCHelper::updateBlockerLength(), MSLCM_SL2015::updateCFRelated(), MSDevice_StationFinder::updateChargeLimit(), LIBSUMO_NAMESPACE::TrafficLight::updateConstraints(), MSSOTLTrafficLightLogic::updateCTS(), NLEdgeControlBuilder::updateCurrentLaneStopOffset(), MSRailSignal::updateCurrentPhase(), MSVehicle::updateDriveItems(), MSDevice_SSM::updateEncounter(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::updateFurtherLanes(), MSLCM_SL2015::updateGaps(), GNENetHelper::AttributeCarriers::updateJunctionID(), MSDevice_Taxi::updateMove(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSVehicle::Influencer::updateRemoteControlRoute(), MSDispatch::updateReservationFromPos(), MSSwarmTrafficLightLogic::updateSensitivities(), MSAbstractLaneChangeModel::updateShadowLane(), MSVehicle::updateState(), MSAbstractLaneChangeModel::updateTargetLane(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), MSDevice_SSM::useGeoCoords(), NEMALogic::validate_timing(), NBNodeTypeComputer::validateRailCrossings(), libsumo::Helper::VehicleStateListener::vehicleStateChanged(), TraCIServer::vehicleStateChanged(), MSDynamicShapeUpdater::vehicleStateChanged(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSInstantInductLoop::write(), NBParking::write(), MSElecHybridExport::write(), MSFCDExport::write(), MSBatteryExport::write(), MSEmissionExport::write(), MSRailSignalConstraint_Predecessor::write(), MSElecHybridExport::writeAggregated(), MSLink::writeApproaching(), MSDriveWay::writeBlocks(), MSRailSignal::writeBlocks(), NWWriter_DlrNavteq::writeConnectedLanes(), MSDriveWay::writeDepatureBlocks(), NWWriter_SUMO::writeDistrict(), MSMeanData::writeEdge(), NWWriter_SUMO::writeEdge(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), MSRoute::writeEdgeIDs(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_OpenDrive::writeInternalEdge(), ROMAAssignments::writeInterval(), NWWriter_SUMO::writeJunction(), MSFullExport::writeLane(), MSQueueExport::writeLane(), MSXMLRawOut::writeLane(), MSDevice_SSM::writeLanesPositions(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), MSTractionSubstation::writeOut(), MSDevice_ToC::writeOutput(), MSNet::writeOutput(), MSDevice_Vehroutes::writeOutput(), MSOverheadWire::writeOverheadWireSegmentOutput(), MSDevice_SSM::writePositions(), NWWriter_OpenDrive::writeRoadObjectPOI(), NWWriter_OpenDrive::writeRoadObjectPoly(), NWWriter_SUMO::writeRoundabout(), NWWriter_OpenDrive::writeSignals(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_SUMO::writeTrafficLight(), NWWriter_DlrNavteq::writeTrafficSignals(), MSFCDExport::writeTransportable(), MSXMLRawOut::writeTransportable(), RODFDetectorCon::writeValidationDetectors(), MSXMLRawOut::writeVehicle(), MSAmitranTrajectories::writeVehicle(), MSFullExport::writeVehicles(), SUMOPolygon::writeXML(), PointOfInterest::writeXML(), MSE2Collector::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSCalibrator::writeXMLOutput(), MSRouteProbe::writeXMLOutput(), MSLaneChanger::yieldToDeadlockOncoming(), MSLaneChanger::yieldToOppositeWaiting(), MSCalibrator::~MSCalibrator(), MSDevice_Transportable::~MSDevice_Transportable(), MSLaneSpeedTrigger::~MSLaneSpeedTrigger(), MSTriggeredRerouter::~MSTriggeredRerouter(), and RONet::~RONet().
|
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(), MSDriveWay::canUseSiding(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChangeOpposite(), MSDriveWay::checkFlanks(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), AFRouter< E, N, V >::compute(), AStarRouter< E, V >::compute(), DijkstraRouter< E, V >::compute(), AFBuild< E, N, V >::computeArcFlagsAux(), AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree(), NBOwnTLDef::computeLogicAndConts(), Node2EdgeRouter< E, N, V >::computeNode2Edge(), Node2EdgeRouter< E, N, V >::computeNode2Edges(), MSDriveWay::conflictLaneOccupied(), NBPTLineCont::constructRoute(), MSLaneChanger::continueChange(), 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(), getFollowersOnConsecutive(), GUIVehicle::getLaneID(), LIBSUMO_NAMESPACE::Person::getLaneID(), MSVehicle::getLatOffset(), getLeaderOnConsecutive(), MSLaneChanger::getOncomingOppositeVehicle(), MSLaneChanger::getRealLeader(), GUIVehicle::getShadowLaneID(), GUIVehicle::getTargetLaneID(), MSDevice_SSM::getVehiclesOnJunction(), NBEdgeCont::guessRoundabouts(), MSDriveWay::hasLinkConflict(), MSCFModel_IDM::insertionFollowSpeed(), isInsertionSuccess(), MESegment::isOpen(), joinNamedToString(), joinNamedToString(), 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(), MSDevice_Bluelight::notifyLeave(), MSDriveWay::notifyLeave(), MSDriveWay::notifyLeaveBack(), MSVehicle::Influencer::postProcessRemoteControl(), MSVehicle::processNextStop(), MSBaseVehicle::replaceRoute(), MSStoppingPlaceRerouter::reroute(), MSBaseVehicle::reroute(), MSLaneChanger::resolveDeadlock(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), MSLeaderInfo::toString(), MSLeaderDistanceInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), toString(), toString(), toString(), MSTriggeredRerouter::triggerRouting(), MSVehicle::updateBestLanes(), MSLCHelper::updateBlockerLength(), MSAbstractLaneChangeModel::updateShadowLane(), MSPModel_Striping::PState::walk(), and MSLaneChanger::yieldToDeadlockOncoming().
|
inline |
Definition at line 950 of file MSLane.h.
References myIncomingLanes.
Referenced by MSPModel_JuPedSim::addWaitingSet(), MSVehicle::brakeForOverlap(), MSSOTLE2Sensors::buildContinueSensior(), MSDriveWay::buildRoute(), MSDriveWay::checkFlanks(), MSDevice_SSM::classifyEncounter(), MSVehicle::computeFurtherLanes(), MSPModel_JuPedSim::execute(), MSDriveWay::findFlankProtection(), MSLink::getCorrespondingEntryLink(), getFollowersOnConsecutive(), MSLogicJunction::getInternalLanes(), MSNoLogicJunction::getInternalLanes(), MSLink::getInternalLengthsBefore(), MSLink::getLeaderInfo(), MSPModel_Striping::getNextLaneObstacles(), MSPModel_Striping::getNextWalkingArea(), getSurroundingVehicles(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSLink::isExitLinkAfterInternalJunction(), MSVehicle::isLeader(), MSDriveWay::isSwitch(), MSLane::incoming_lane_priority_sorter::operator()(), MSVehicle::passingMinor(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSPModel_Striping::registerCrossingApproach(), MSLink::setRequestInformation(), and MSPModel_Interacting::unregisterCrossingApproach().
LinkState MSLane::getIncomingLinkState | ( | ) | const |
get the state of the link from the logical predecessor to this lane
Definition at line 3236 of file MSLane.cpp.
References getLinkTo(), getLogicalPredecessorLane(), MSLink::getState(), and LINKSTATE_DEADEND.
|
inline |
Returns the lane's index.
Definition at line 642 of file MSLane.h.
References myIndex.
Referenced by MSLCM_SL2015::_wantsChangeSublane(), libsumo::Helper::applySubscriptionFilterLanes(), libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::avoidDeadlock(), MSVehicle::betterContinuation(), MSDriveWay::buildRoute(), MSLaneChangerSublane::checkChangeOpposite(), MSLaneChanger::continueChange(), MSVehicle::enterLaneAtMove(), MSCalibrator::execute(), MSVehicle::executeMove(), MSMeanData_Net::getAttributeValue(), MSLaneChanger::getBestLanesOpposite(), MSVehicle::getLaneIndex(), LIBSUMO_NAMESPACE::Vehicle::getLaneIndex(), MSLink::getLeaderInfo(), MSAbstractLaneChangeModel::getNormalizedLaneIndex(), MSVehicle::getRerouteOrigin(), MSLCHelper::getRoundaboutDistBonus(), MSAbstractLaneChangeModel::getShadowDirection(), MSLink::getZipperSpeed(), MSEdge::insertVehicle(), MSCalibrator::myStartElement(), MSDevice_Vehroutes::notifyEnter(), MSLink::opened(), MSEdge::parallelLane(), MSLaneChanger::resolveDeadlock(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), LIBSUMO_NAMESPACE::Vehicle::setStopParameter(), MSLaneChangerSublane::startChangeSublane(), MSLCM_SL2015::tieBrakeLeader(), and MSLaneChangerSublane::updateChanger().
|
staticprivate |
Definition at line 1358 of file MSLane.cpp.
References MSBaseVehicle::getParameter(), MSGlobals::gInsertionChecks, SUMOVehicleParameter::insertionChecks, VEHPARS_INSERTION_CHECKS_SET, and SUMOVehicleParameter::wasSet().
Referenced by checkFailure(), checkForPedestrians(), isInsertionSuccess(), and safeInsertionSpeed().
|
inlinestatic |
Definition at line 1361 of file MSLane.h.
References myIntermodalCollisionAction.
returns the internal lane leading to the given lane or nullptr, if there is none
Definition at line 2680 of file MSLane.cpp.
References myLinks.
Referenced by MSTractionSubstation::addOverheadWireSegmentToCircuit(), MSPModel_Striping::getNextLane(), MSVehicle::getUpcomingLanesUntil(), and NLTriggerBuilder::parseAndBuildOverheadWireSection().
const StopOffset & MSLane::getLaneStopOffsets | ( | ) | const |
Returns vehicle class specific stopOffsets.
Definition at line 3713 of file MSLane.cpp.
References myLaneStopOffset.
|
inline |
MSVehicle * MSLane::getLastAnyVehicle | ( | ) | const |
returns the last vehicle that is fully or partially on this lane
Definition at line 2586 of file MSLane.cpp.
References myBidiLane, myPartialVehicles, and myVehicles.
Referenced by MSVehicle::checkRewindLinkLanes(), MSLaneChanger::getColumnleader(), getCriticalLeader(), getDepartSpeed(), getLeaderOnConsecutive(), isInsertionSuccess(), and lastInsertion().
MSVehicle * MSLane::getLastFullVehicle | ( | ) | const |
returns the last vehicle for which this lane is responsible or 0
Definition at line 2568 of file MSLane.cpp.
References myVehicles.
Referenced by MSCalibrator::remainingVehicleCapacity().
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
[in] | ego | The vehicle for which to restrict the returned leaderInfo |
[in] | minPos | The minimum position from which to start search for leaders |
[in] | allowCached | Whether the cached value may be used |
Definition at line 1409 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().
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()
[in] | veh | The vehicle for which the information shall be computed |
[in] | vehPos | The vehicle position relative to this lane (may be negative) |
[in] | bestLaneConts | The succeding lanes that shall be checked (if any) |
[in] | dist | Optional distance to override default (ego stopDist) |
[in] | checkTmpVehicles | Whether myTmpVehicles should be used instead of myVehicles |
Definition at line 2842 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(), insertVehicle(), and lastInsertion().
std::pair< MSVehicle *const, double > MSLane::getLeaderOnConsecutive | ( | double | dist, |
double | seen, | ||
double | speed, | ||
const MSVehicle & | veh, | ||
const std::vector< MSLane * > & | bestLaneConts | ||
) | 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.
[in] | dist | The distance to investigate |
[in] | seen | The already seen place (normally the place in front on own lane) |
[in] | speed | The speed of the vehicle used for determining whether a subsequent link will be opened at arrival time |
[in] | veh | The vehicle for which the information shall be computed |
[in] | bestLaneConts | The lanes the vehicle will use in future |
Definition at line 2914 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(), myPartialVehicles, releaseVehicles(), MSRoute::size(), succLinkSec(), and toString().
Referenced by getLeader(), and MSVehicle::getLeader().
void MSLane::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)
Definition at line 3953 of file MSLane.cpp.
References MSLeaderDistanceInfo::addLeader(), MSCFModel::brakeGap(), DEBUG_COND2, Position::distanceTo2D(), MSGlobals::gComputeLC, gDebugFlag1, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), Named::getID(), getLastVehicleInformation(), MSVehicle::getLatOffset(), getLength(), MSVehicleType::getLength(), MSVehicleType::getMinGap(), MSVehicle::getPosition(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSVehicle::isFrontOnLane(), isInternal(), MSVehicle::isLeader(), isLinkEnd(), MSLink::LinkLeader::latOffset, MSLink::LinkLeader::llFlags, MIN2(), myPartialVehicles, MSLeaderInfo::numFreeSublanes(), MSLeaderInfo::numSublanes(), MSLink::LinkLeader::sameSource(), MSLink::LinkLeader::sameTarget(), SIMTIME, succLinkSec(), MSLeaderInfo::toString(), and MSLink::LinkLeader::vehAndGap.
Referenced by addLeaders().
|
inline |
Returns the lane's length.
Definition at line 606 of file MSLane.h.
References myLength.
Referenced by MSStageWalking::activateLeaveReminders(), MSVehicle::adaptLaneEntering2MoveReminder(), 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(), MSE2Collector::checkPositioning(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::classifyEncounter(), MSVehicle::computeAngle(), MSTrainHelper::computeCarriages(), MSLink::computeDistToDivergence(), MSVehicle::computeFurtherLanes(), GUILane::debugDrawFoeIntersections(), detectCollisionBetween(), GUIEdge::drawMesoVehicles(), GUIVehicle::drawRouteHelper(), MSVehicle::estimateTimeToNextStop(), MSStoppingPlaceRerouter::evaluateDestination(), MSVehicle::executeMove(), executeMovements(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), freeInsertion(), MSMeanData_Net::getAttributeValue(), MSVehicle::getBackPositionOnLane(), GUILane::getColorValue(), MSLaneChanger::getColumnleader(), getCriticalLeader(), MSRoute::getDistanceBetween(), MSVehicle::getDistanceToLeaveJunction(), getFirstInternalInConnection(), getFollowersOnConsecutive(), MSAbstractLaneChangeModel::getForwardPos(), MSLink::getInternalLengthsAfter(), MSLink::getInternalLengthsBefore(), libsumo::Helper::getLaneChecking(), NLShapeHandler::getLanePos(), getLeader(), MSVehicle::getLeader(), MSLink::getLeaderInfo(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), MSLink::ConflictInfo::getLengthBehindCrossing(), MSLink::getLengthsBeforeCrossing(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), LIBSUMO_NAMESPACE::Vehicle::getNextTLS(), getOppositeFollower(), MSCFModel_CC::getParameter(), MSVehicle::getPastLanesUntil(), NLTriggerBuilder::getPosition(), MSVehicle::getPositionAlongBestLanes(), NLDetectorBuilder::getPositionChecking(), MSLaneChanger::getRealLeader(), MSVehicle::getRerouteOrigin(), MSLCHelper::getRoundaboutDistBonus(), getSpaceTillLastStanding(), getSurroundingVehicles(), LIBSUMO_NAMESPACE::Lane::getTraveltime(), MSVehicle::getUpcomingLanesUntil(), getUpcomingLinks(), MSPModel_Striping::getVehicleObstacles(), handleCollisionBetween(), MSVehicle::hasArrivedInternal(), MSLCM_LC2013::informFollower(), 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_Bluelight::notifyMove(), MSDevice_StationFinder::notifyMove(), NLTriggerBuilder::parseAndBeginParkingArea(), NLTriggerBuilder::parseAndBuildChargingStation(), NLTriggerBuilder::parseAndBuildOverheadWireSegment(), MSRouteHandler::parseWalkPositions(), MSVehicle::planMoveInternal(), MSVehicle::Influencer::postProcessRemoteControl(), MSDevice_Taxi::prepareStop(), MSVehicle::processLaneAdvances(), MSE2Collector::recalculateDetectorLength(), MSLink::recheckSetRequestInformation(), MSPModel_Striping::registerCrossingApproach(), MSCalibrator::remainingVehicleCapacity(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), setBidiLane(), MSVehicle::setBlinkerInformation(), setOpposite(), MSLink::setRequestInformation(), MSVehicle::unsafeLinkAhead(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::validatePosition(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSMeanData::writeEdge(), and MSQueueExport::writeLane().
|
inline |
return shape.length() / myLength
Definition at line 538 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by GUILane::getColorValue(), and GUILane::getScaleValue().
|
inlinevirtual |
Reimplemented in GUILane.
Definition at line 290 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by MSTrainHelper::computeCarriages(), GUIBaseVehicle::drawOnPos(), GUIVehicle::getVisualAngle(), GUIVehicle::getVisualPosition(), and GUIBusStop::initShape().
|
inline |
returns the container with all links !!!
Definition at line 724 of file MSLane.h.
References myLinks.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSPModel_Striping::addCrossingVehs(), MSPModel_JuPedSim::addWaitingSet(), MSVehicle::brakeForOverlap(), 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(), MSLink::getOppositeDirectionLink(), MSVehicle::getPastLanesUntil(), MSVehicle::getPositionAlongBestLanes(), MSLCHelper::getRoundaboutDistBonus(), LIBSUMO_NAMESPACE::TrafficLight::getServedPersonCount(), getSurroundingVehicles(), MSVehicle::getUpcomingLanesUntil(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), NEMALogic::init(), MSE2Collector::initAuxiliaries(), NEMALogic::isLeftTurnLane(), MSVehicle::isOppositeLane(), MSDriveWay::isSwitch(), MSStateHandler::myStartElement(), MSVehicle::planMoveInternal(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::processLaneAdvances(), MSVehicle::setBlinkerInformation(), MSLink::setRequestInformation(), MSVehicle::updateBestLanes(), MSVehicle::updateDriveItems(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().
returns the link to the given lane or nullptr, if it is not connected
Definition at line 2668 of file MSLane.cpp.
References isInternal(), and myLinks.
Referenced by NLDetectorBuilder::buildE2Detector(), NLDetectorBuilder::buildE2Detector(), MSLaneChanger::changeOpposite(), MSDriveWay::checkFlanks(), MSVehicle::checkReversal(), MSPModel_Striping::connectedDirection(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtMove(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), getEntryLink(), getIncomingLinkState(), MSLaneChanger::getLaneAfter(), MSPModel_Striping::getNextLane(), MSVehicle::getPositionAlongBestLanes(), getUpcomingLinks(), MSE2Collector::initAuxiliaries(), MSPModel_Striping::insertWalkArePaths(), MSLink::lastWasContMajor(), MSLink::lastWasContState(), MSLane::incoming_lane_priority_sorter::operator()(), MSVehicle::processLaneAdvances(), MSPModel_Striping::PState::PState(), MSE2Collector::recalculateDetectorLength(), MSE2Collector::selectLanes(), MSVehicle::setAngle(), GUILane::setFunctionalColor(), and MSAbstractLaneChangeModel::updateShadowLane().
MSLane * MSLane::getLogicalPredecessorLane | ( | ) | const |
get the most likely precedecessor lane (sorted using by_connections_to_sorter). The result is cached in myLogicalPredecessorLane
Definition at line 3135 of file MSLane.cpp.
References getEdge(), MSEdge::getPredecessors(), myEdge, myIncomingLanes, and myLogicalPredecessorLane.
Referenced by MSVehicle::checkLinkLeader(), MSVehicle::computeFurtherLanes(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtLaneChange(), getFollowersOnConsecutive(), getIncomingLinkState(), MSLink::getLeaderInfo(), MSPModel_Striping::getNextLane(), getNormalPredecessorLane(), MSVehicle::getPastLanesUntil(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSVehicle::isLeader(), MSLink::lastWasContMajor(), MSLink::lastWasContState(), libsumo::Helper::moveToXYMap(), MSInternalJunction::postloadInit(), GUILane::setFunctionalColor(), MSLink::setRequestInformation(), and MSVehicle::updateBestLanes().
return the (first) predecessor lane from the given edge
Definition at line 3180 of file MSLane.cpp.
References myIncomingLanes.
double MSLane::getMaximumBrakeDist | ( | ) | const |
compute maximum braking distance on this lane
Definition at line 2830 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(), getOppositeFollower(), and MSVehicle::getUpstreamOppositeLanes().
double MSLane::getMeanSpeed | ( | ) | const |
Returns the mean speed on this lane.
Definition at line 3358 of file MSLane.cpp.
References getVehiclesSecure(), MSEdge::hasLaneChanger(), myEdge, myMaxSpeed, myVehicles, and releaseVehicles().
Referenced by GUILane::getColorValue(), getDepartSpeed(), GUILane::getScaleValue(), LIBSUMO_NAMESPACE::Lane::getTraveltime(), MSCalibrator::invalidJam(), isInsertionSuccess(), and MSFullExport::writeLane().
double MSLane::getMeanSpeedBike | ( | ) | const |
get the mean speed of all bicycles on this lane
Definition at line 3379 of file MSLane.cpp.
References getVehiclesSecure(), myMaxSpeed, myVehicles, releaseVehicles(), and SVC_BICYCLE.
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 2814 of file MSLane.cpp.
References MSVehicle::getCarFollowModel(), getFollowersOnConsecutive(), MSCFModel::getMaxDecel(), MSCFModel::getSecureGap(), and MSVehicle::getSpeed().
Referenced by freeInsertion(), and isInsertionSuccess().
|
inline |
Return the list of this lane's move reminders.
Definition at line 323 of file MSLane.h.
References myMoveReminders.
Referenced by MSStageWalking::activateEntryReminders(), MSVehicle::adaptLaneEntering2MoveReminder(), MSVehicle::enterLaneAtInsertion(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::processNextStop(), and MSVehicle::workOnIdleReminders().
double MSLane::getNettoOccupancy | ( | ) | const |
Returns the netto (excluding minGaps) occupancy of this lane during the last step (including minGaps)
Definition at line 3330 of file MSLane.cpp.
References getFractionalVehicleLength(), MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), myLength, myNettoVehicleLengthSum, myVehicles, and releaseVehicles().
Referenced by GUILane::getColorValue(), GUILane::getParameterWindow(), GUILane::getScaleValue(), and MSFullExport::writeLane().
const MSEdge * MSLane::getNextNormal | ( | ) | const |
Returns the lane's follower if it is an internal lane, the edge of the lane otherwise.
Definition at line 2390 of file MSLane.cpp.
References MSEdge::getNormalSuccessor(), and myEdge.
Referenced by MSBaseVehicle::addStop(), MSDriveWay::buildRoute(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), MSDriveWay::notifyEnter(), and MSVehicle::updateBestLanes().
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 3257 of file MSLane.cpp.
References myApproachingLanes.
Referenced by MSTractionSubstation::addOverheadWireSegmentToCircuit(), and NLTriggerBuilder::parseAndBuildOverheadWireSection().
const MSLane * MSLane::getNormalPredecessorLane | ( | ) | const |
get normal lane leading to this internal lane, for normal lanes, the lane itself is returned
Definition at line 3160 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(), MSLink::setRequestInformation(), and MSVehicle::updateBestLanes().
const MSLane * MSLane::getNormalSuccessorLane | ( | ) | const |
get normal lane following this internal lane, for normal lanes, the lane itself is returned
Definition at line 3170 of file MSLane.cpp.
References getCanonicalSuccessorLane(), getNormalSuccessorLane(), and isInternal().
Referenced by GUILane::drawGL(), MSLink::getCustomConflict(), getNormalSuccessorLane(), MSLCHelper::isBidiFollower(), MSLCHelper::isBidiLeader(), and MSDevice_StationFinder::notifyMove().
|
inline |
Returns this lane's numerical id.
Definition at line 525 of file MSLane.h.
References myNumericalID.
Referenced by MSDevice_ToC::checkDynamicToC(), MSDevice_ToC::notifyMove(), and MSPModel_Striping::walkingarea_path_sorter::operator()().
|
inlinestatic |
return the number of RNGs
Definition at line 251 of file MSLane.h.
References myRNGs.
Referenced by loadRNGState(), and saveRNGStates().
MSLane * MSLane::getOpposite | ( | ) | const |
return the neighboring opposite direction lane for lane changing or nullptr
Definition at line 4299 of file MSLane.cpp.
References myOpposite.
Referenced by MSLaneChanger::changeOpposite(), MSEdge::closeBuilding(), MSVehicle::executeMove(), MSLink::getOppositeDirectionLink(), MSLink::getParallelLink(), MSVehicle::getUpstreamOppositeLanes(), MSLCM_SL2015::prepareStep(), MSLaneChangerSublane::startChangeSublane(), and swapAfterLaneChange().
Definition at line 4367 of file MSLane.cpp.
References DEBUG_COND2, FOLLOW_NEVER, MSVehicle::getBackPositionOnLane(), getCanonicalSuccessorLane(), getFollower(), Named::getID(), MSVehicle::getLaneChangeModel(), getLeader(), getLength(), MSVehicleType::getLength(), getMaximumBrakeDist(), getOppositePos(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), MSAbstractLaneChangeModel::isOpposite(), and SIMTIME.
Referenced by MSLaneChanger::changeOpposite(), MSLaneChanger::checkOppositeStop(), and MSLaneChanger::computeSafeOppositeLength().
std::pair< MSVehicle *const, double > MSLane::getOppositeLeader | ( | const MSVehicle * | ego, |
double | dist, | ||
bool | oppositeDir, | ||
MinorLinkMode | mLinkMode = MinorLinkMode::FOLLOW_NEVER |
||
) | const |
Definition at line 4339 of file MSLane.cpp.
References DEBUG_COND2, MSVehicle::getBestLanesContinuation(), getFollower(), Named::getID(), MSVehicle::getLaneChangeModel(), getLeader(), MSVehicleType::getLength(), MSVehicleType::getMinGap(), getOppositePos(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), MSAbstractLaneChangeModel::isOpposite(), and SIMTIME.
Referenced by MSLaneChanger::changeOpposite(), and MSLaneChanger::checkOppositeStop().
double MSLane::getOppositePos | ( | double | pos | ) | const |
return the corresponding position on the opposite lane
Definition at line 4311 of file MSLane.cpp.
References MAX2(), and myLength.
Referenced by libsumo::Helper::applySubscriptionFilterLateralDistance(), MSLaneChanger::changeOpposite(), MSLaneChangerSublane::checkChangeOpposite(), MSLaneChanger::computeSafeOppositeLength(), MSVehicle::executeMove(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), getOppositeFollower(), getOppositeLeader(), MSVehicle::getPastLanesUntil(), MSStop::getReachedThreshold(), MSVehicle::getUpcomingLanesUntil(), MSVehicle::planMoveInternal(), and MSAbstractLaneChangeModel::primaryLaneChanged().
const std::vector< std::pair< const MSLane *, const MSEdge * > > MSLane::getOutgoingViaLanes | ( | ) | const |
get the list of outgoing lanes
Definition at line 3247 of file MSLane.cpp.
References myLinks.
Referenced by MSTractionSubstation::addOverheadWireSegmentToCircuit(), and NLTriggerBuilder::parseAndBuildOverheadWireSection().
|
inline |
Definition at line 1350 of file MSLane.h.
References myOutlineShape.
Referenced by MSPModel_JuPedSim::buildPedestrianNetwork().
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.
[in] | offset | The offset of the result lane |
Definition at line 2773 of file MSLane.cpp.
References myEdge, and MSEdge::parallelLane().
Referenced by libsumo::Helper::applySubscriptionFilterLanes(), libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChange(), MSLink::computeParallelLink(), MSLaneChanger::continueChange(), MSAbstractLaneChangeModel::determineTargetLane(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), MSAbstractLaneChangeModel::getShadowLane(), MSVehicle::lateralDistanceToLane(), MSLCM_SL2015::mustOvertakeStopped(), GUILane::neighLaneNotBidi(), MSVehicle::planMoveInternal(), and MSAbstractLaneChangeModel::updateTargetLane().
MSLane * MSLane::getParallelOpposite | ( | ) | const |
return the opposite direction lane of this lanes edge or nullptr
Definition at line 4305 of file MSLane.cpp.
References MSEdge::getLanes(), and myEdge.
Referenced by MSLCM_SL2015::_wantsChangeSublane(), libsumo::Helper::applySubscriptionFilterLateralDistance(), MSVehicle::executeMove(), MSDevice_SSM::findSurroundingVehicles(), MSVehicle::getLatOffset(), MSLCM_SL2015::getLeftBorder(), MSAbstractLaneChangeModel::getNormalizedLaneIndex(), MSVehicle::getPastLanesUntil(), MSVehicle::getPositionAlongBestLanes(), MSVehicle::getUpcomingLanesUntil(), MSVehicle::lateralDistanceToLane(), MSVehicle::planMoveInternal(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().
|
virtualinherited |
Returns the value for a given key.
[in] | key | The key to ask for |
[in] | defaultValue | The default value to return if no value is stored under the key |
Reimplemented in MSActuatedTrafficLightLogic, MSSimpleTrafficLightLogic, and NEMALogic.
Definition at line 90 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by MSPModel_JuPedSim::add(), NBRailwayTopologyAnalyzer::addBidiEdge(), NBEdge::addRestrictedLane(), FareModul::addStop(), GUIInductLoop::buildDetectorGUIRepresentation(), MSDevice_ElecHybrid::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), ROEdge::cacheParamRestrictions(), SUMOVTypeParameter::cacheParamRestrictions(), MSVehicleType::check(), MSRailSignal::constraintsAllow(), GUINet::createTLWrapper(), GNEEdge::drawEdgeName(), GNEConnection::drawEdgeValues(), GNEGenericData::drawFilteredAttribute(), GUIEdge::drawGL(), EnergyParams::EnergyParams(), MSDevice_SSM::filterByConflictType(), LIBSUMO_NAMESPACE::TrafficLight::findConstraintsDeadLocks(), LIBSUMO_NAMESPACE::Simulation::findIntermodalRoute(), GUIVehicle::getColorValue(), GNEEdgeData::getColorValue(), GNEEdgeRelData::getColorValue(), GNETAZRelData::getColorValue(), GNELane::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(), GUIBaseVehicle::getOptionalName(), GUITrafficLightLogicWrapper::getOptionalName(), MSDevice_SSM::getOutputFilename(), MSSimpleTrafficLightLogic::getParameter(), NEMALogic::getParameter(), LIBSUMO_NAMESPACE::Simulation::getParameter(), MSBaseVehicle::getPrefixedParameter(), GUIBaseVehicle::getScaleValue(), LIBSUMO_NAMESPACE::Vehicle::getStopParameter(), SUMOTrafficObject::getStringParam(), MSRailSignalConstraint::getVeh(), LIBSUMO_NAMESPACE::TrafficLight::getVehicleByTripId(), MSStoppingPlaceRerouter::getWeight(), MSRailSignal::hasInsertionConstraint(), MSRailSignalControl::haveDeadlock(), MSLink::ignoreFoe(), MSSOTLPhasePolicy::init(), MSStageDriving::init(), PushButtonLogic::init(), SigmoidLogic::init(), SUMOVTypeParameter::initRailVisualizationParameters(), NIImporter_OpenStreetMap::insertNodeChecking(), MSAbstractLaneChangeModel::laneChangeOutput(), NWWriter_OpenDrive::mapmatchRoadObjects(), Parameterised::mergeParameters(), MSSimpleTrafficLightLogic::MSSimpleTrafficLightLogic(), MSSOTLPolicy::MSSOTLPolicy(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), MSDevice_GLOSA::notifyEnter(), 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(), MSDevice_SSM::useGeoCoords(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::WAUTSwitchProcedure_Stretch(), MSDevice_SSM::writeLanesPositions(), NWWriter_DlrNavteq::writeLinksUnsplitted(), MSDevice_SSM::writePositions(), NWWriter_OpenDrive::writeRoadObjectPOI(), NWWriter_OpenDrive::writeRoadObjectPoly(), NWWriter_OpenDrive::writeRoadObjects(), and NWWriter_OpenDrive::writeSignals().
|
inherited |
Returns the inner key/value map.
Definition at line 145 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NIImporter_SUMO::_loadNetwork(), NBNode::addCrossing(), NBEdge::addLane(), NBEdge::append(), LIBSUMO_NAMESPACE::TrafficLight::buildConstraint(), GUIParameterTableWindow::closeBuilding(), NLHandler::closeEdge(), NBTrafficLightDefinition::compute(), GNEGenericData::drawAttribute(), GNEGenericData::drawFilteredAttribute(), NLDetectorBuilder::endE3Detector(), GNEAccess::getACParametersMap(), GNECalibrator::getACParametersMap(), GNEDetector::getACParametersMap(), GNEMultiEntryExitDetector::getACParametersMap(), GNEOverheadWire::getACParametersMap(), GNEParkingSpace::getACParametersMap(), GNERerouter::getACParametersMap(), GNERouteProbe::getACParametersMap(), GNEStoppingPlace::getACParametersMap(), GNETAZ::getACParametersMap(), GNEVaporizer::getACParametersMap(), GNEVariableSpeedSign::getACParametersMap(), GNEDataInterval::getACParametersMap(), GNEDataSet::getACParametersMap(), GNEGenericData::getACParametersMap(), GNEContainer::getACParametersMap(), GNEPerson::getACParametersMap(), GNEPersonTrip::getACParametersMap(), GNERide::getACParametersMap(), GNERoute::getACParametersMap(), GNEStop::getACParametersMap(), GNEStopPlan::getACParametersMap(), GNETranship::getACParametersMap(), GNETransport::getACParametersMap(), GNEVehicle::getACParametersMap(), GNEVType::getACParametersMap(), GNEWalk::getACParametersMap(), GNEConnection::getACParametersMap(), GNECrossing::getACParametersMap(), GNEEdge::getACParametersMap(), GNEEdgeType::getACParametersMap(), GNEJunction::getACParametersMap(), GNELane::getACParametersMap(), GNELaneType::getACParametersMap(), GNEPOI::getACParametersMap(), GNEPoly::getACParametersMap(), MSRailSignalConstraint_Predecessor::getDescription(), NWWriter_OpenDrive::getDividerType(), GUILane::getParameterWindow(), GNESingleParametersDialog::GNESingleParametersDialog(), MSRailCrossing::init(), MSActuatedTrafficLightLogic::init(), MSDevice_Taxi::initDispatch(), MSPModel_JuPedSim::initialize(), MSBaseVehicle::initTransientModelParams(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_OpenStreetMap::insertNodeChecking(), GNEEdgeData::isGenericDataVisible(), GNEEdgeRelData::isGenericDataVisible(), GNETAZRelData::isGenericDataVisible(), GNEGenericData::isVisibleInspectDeleteSelect(), NBEdge::NBEdge(), NBLoadedSUMOTLDef::NBLoadedSUMOTLDef(), NBTrafficLightLogic::NBTrafficLightLogic(), GUIParameterTableWindow::numParams(), GNESingleParametersDialog::onCmdReset(), GNEVType::overwriteVType(), TraCIServerAPI_TrafficLight::processGet(), Parameterised::setParameters(), LIBSUMO_NAMESPACE::TrafficLight::swapConstraints(), GNEEdgeData::writeGenericData(), GNEEdgeRelData::writeGenericData(), and GNETAZRelData::writeGenericData().
|
inherited |
Returns the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN".
Definition at line 151 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by GNEAccess::getAttribute(), GNEBusStop::getAttribute(), GNECalibrator::getAttribute(), GNECalibratorFlow::getAttribute(), GNEChargingStation::getAttribute(), GNEContainerStop::getAttribute(), GNEMultiEntryExitDetector::getAttribute(), GNEOverheadWire::getAttribute(), GNEParkingArea::getAttribute(), GNEParkingSpace::getAttribute(), GNERerouter::getAttribute(), GNERouteProbe::getAttribute(), GNETAZ::getAttribute(), GNETAZSourceSink::getAttribute(), GNETractionSubstation::getAttribute(), GNEVaporizer::getAttribute(), GNEVariableSpeedSign::getAttribute(), GNEEdgeData::getAttribute(), GNEEdgeRelData::getAttribute(), GNETAZRelData::getAttribute(), GNEContainer::getAttribute(), GNEPerson::getAttribute(), GNERoute::getAttribute(), GNEStop::getAttribute(), GNEVehicle::getAttribute(), GNEVType::getAttribute(), GNEConnection::getAttribute(), GNEEdge::getAttribute(), GNEEdgeType::getAttribute(), GNEJunction::getAttribute(), GNELane::getAttribute(), GNELaneType::getAttribute(), GNEPOI::getAttribute(), GNEPoly::getAttribute(), and GNEDetector::getDetectorAttribute().
|
inline |
retrieve the parking vehicles (see GUIParkingArea)
Definition at line 1253 of file MSLane.h.
References myParkingVehicles.
Referenced by MSLane::StoringVisitor::add(), and GUIParkingArea::drawGL().
Definition at line 4130 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), MSVehicle::getPositionOnLane(), MSVehicle::isFrontOnLane(), myPartialVehicles, SIMTIME, and toString().
MSLeaderInfo MSLane::getPartialBeyond | ( | ) | const |
get all vehicles that are inlapping from consecutive edges
Definition at line 4153 of file MSLane.cpp.
References MSLeaderInfo::addLeader(), MSVehicle::getLatOffset(), MSVehicle::isFrontOnLane(), myPartialVehicles, and myWidth.
|
inline |
Returns the number of vehicles partially on this lane (for which this lane is not responsible)
Definition at line 472 of file MSLane.h.
References myPartialVehicles.
|
inline |
Returns the vehicle class permissions for this lane.
Definition at line 614 of file MSLane.h.
References myPermissions.
Referenced by MSSwarmTrafficLightLogic::allowLine(), MSVehicle::computeFurtherLanes(), GUILane::drawGL(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::enterLaneAtMove(), incorporateVehicle(), MSInternalJunction::indirectBicycleTurn(), MSDelayBasedTrafficLightLogic::init(), MSVehicle::leaveLane(), GUIApplicationWindow::onCmdEditChosen(), MSPModel_Striping::PState::PState(), and MSVehicle::updateFurtherLanes().
|
inline |
Definition at line 1198 of file MSLane.h.
References myRightmostSublane.
Referenced by MSLCM_SL2015::_wantsChangeSublane().
|
inline |
Definition at line 1194 of file MSLane.h.
References myRightSideOnEdge.
Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSLCM_SL2015::checkBlocking(), MSLaneChangerSublane::checkChangeSublane(), MSVehicle::checkLinkLeader(), MSLCM_SL2015::commitManoeuvre(), detectCollisions(), MSVehicle::getCenterOnEdge(), getFollowersOnConsecutive(), MSVehicle::getLatOffset(), MSLCM_SL2015::getNeighRight(), MEVehicle::getRightSideOnEdge(), MSLCM_SL2015::keepLatGap(), MSVehicle::planMoveInternal(), MSVehicle::setApproachingForAllLinks(), MSLaneChangerSublane::startChangeSublane(), and MSLaneChangerSublane::updateChanger().
|
inline |
return the associated RNG
Definition at line 246 of file MSLane.h.
References myRNGIndex, and myRNGs.
Referenced by MSBaseVehicle::getRNG().
|
inline |
returns the associated RNG index
Definition at line 241 of file MSLane.h.
References myRNGIndex.
Referenced by MSEdgeControl::changeLanes(), and MSBaseVehicle::getRNGIndex().
|
inline |
Returns this lane's shape.
Definition at line 533 of file MSLane.h.
References myShape.
Referenced by GUILane::drawArrows(), GUILane::drawBikeMarkings(), GUILane::drawDirectionIndicators(), GUILane::drawGL(), GUILane::drawJunctionChangeProhibitions(), GUILane::drawLane2LaneConnections(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawMarkings(), GUILane::drawTLSLinkNo(), GUILane::getColorValue(), GUILane::getColorValueWithFunctional(), GUILane::getPopUpMenu(), MSLane::by_connections_to_sorter::operator()(), and GUILane::setMultiColor().
|
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(), MSPerson::checkAccess(), MSLink::checkWalkingAreaFoe(), MSDevice_SSM::classifyEncounter(), MSVehicle::computeAngle(), MSTrainHelper::computeCarriages(), MSLink::computeDistToDivergence(), MSLink::contIntersect(), libsumo::Helper::convertCartesianToRoadMap(), GUILane::debugDrawFoeIntersections(), GUIVehicle::drawAction_drawLinkItems(), GUIBaseVehicle::drawStopLabels(), fill(), libsumo::Helper::findObjectShape(), MSLaneChanger::foundHilltop(), MEVehicle::getAngle(), LIBSUMO_NAMESPACE::Lane::getAngle(), MSStoppingPlace::getCenterPos(), MSStage::getLanePosition(), MSPModel_Striping::getNextLaneObstacles(), GUIContainer::getPosition(), MEVehicle::getSlope(), MSVehicle::getSlope(), LIBSUMO_NAMESPACE::Person::getSlope(), MSVTKExport::getSpeed(), LIBSUMO_NAMESPACE::InductionLoop::getTree(), GUIVehicle::getVisualAngle(), GUIVehicle::getVisualPosition(), MSStoppingPlace::getWaitPosition(), GUIBusStop::GUIBusStop(), GUIOverheadWire::GUIOverheadWire(), GUIOverheadWireClamp::GUIOverheadWireClamp(), MSInternalJunction::indirectBicycleTurn(), GUIChargingStation::initAppearance(), GUIBusStop::initShape(), 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()(), MSLink::recheckSetRequestInformation(), MSStageDriving::setArrived(), MSLink::setRequestInformation(), LIBSUMO_NAMESPACE::InductionLoop::storeShape(), and MSStageWalking::walkDistance().
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
Definition at line 4579 of file MSLane.cpp.
References getLength(), MSBaseVehicle::getVehicleType(), getWidth(), MSVehicleType::getWidth(), MSGlobals::gSublane, MSVehicle::isFrontOnLane(), myVehicles, and SUMO_const_haltingSpeed.
Referenced by MSVehicle::checkRewindLinkLanes().
|
inline |
Returns the lane's maximum allowed speed.
Definition at line 592 of file MSLane.h.
References myMaxSpeed.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSDevice_GLOSA::adaptSpeed(), MSLaneChanger::changeOpposite(), MSVehicleTransfer::checkInsertions(), MSLaneChanger::checkOppositeStop(), MSLCM_SL2015::checkStrategicChange(), MSVehicle::congested(), MSAbstractLaneChangeModel::congested(), MSDevice_StationFinder::estimateConsumption(), MSStoppingPlaceRerouter::evaluateDestination(), MSPModel_JuPedSim::execute(), executeMovements(), MSCFModel_CC::finalizeSpeed(), MSCFModel_ACC::followSpeed(), MSMeanData_Net::getAttributeValue(), GUILane::getColorValue(), MSE2Collector::getEstimatedCurrentVehicleNumber(), MSLCM_SL2015::getLateralDrift(), LIBSUMO_NAMESPACE::Lane::getLinks(), getMaximumBrakeDist(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), GUILane::getParameterWindow(), GUILane::getScaleValue(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informLeader(), MSLCM_LC2013::informLeader(), MSCFModel_EIDM::internalspeedlimit(), MSVehicle::planMoveInternal(), MSLCM_LC2013::prepareStep(), MSVehicle::slowDownForSchedule(), MSLCM_DK2008::wantsChangeToRight(), MSMeanData::writeEdge(), and MSFullExport::writeLane().
|
inline |
Definition at line 1285 of file MSLane.h.
References myStopWatch.
Referenced by MSVehicle::planMoveInternal().
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.
[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.) |
Definition at line 4168 of file MSLane.cpp.
References Named::getID(), getIncomingLanes(), getLength(), getLinkCont(), getSurroundingVehicles(), getVehiclesInRange(), MAX2(), MIN2(), Named::myID, and myLength.
Referenced by libsumo::Helper::applySubscriptionFilterLanes(), and getSurroundingVehicles().
|
inline |
returns the associated thread index
Definition at line 236 of file MSLane.h.
References MSGlobals::gNumSimThreads, and myRNGIndex.
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 4240 of file MSLane.cpp.
References 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 4251 of file MSLane.cpp.
References getEntryLink(), Named::getID(), MSLink::getInternalLengthsAfter(), MSLink::getLane(), getLength(), getLinkTo(), and isInternal().
Referenced by libsumo::Helper::applySubscriptionFilterTurn(), and getUpcomingJunctions().
|
inline |
Returns the lane's maximum speed, given a vehicle's speed limit adaptation.
[in] | The | vehicle to return the adapted speed limit for |
Definition at line 574 of file MSLane.h.
References SUMOTrafficObject::getChosenSpeedFactor(), SUMOTrafficObject::getMaxSpeed(), SUMOTrafficObject::getVClass(), MIN2(), myMaxSpeed, myRestrictions, mySpeedByTraCI, and mySpeedByVSS.
Referenced by MSCFModel_EIDM::_v(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLCM_LC2013::anticipateFollowSpeed(), MSE2Collector::calculateTimeLossAndTimeOnDetector(), MSLaneChanger::changeOpposite(), GUIApplicationWindow::checkGamingEvents(), MSLaneChanger::checkOppositeStop(), MSLCM_SL2015::commitManoeuvre(), MSLaneChanger::computeOvertakingTime(), MSLaneChanger::computeSurplusGap(), MEVehicle::estimateLeaveSpeed(), MSVehicle::estimateTimeToNextStop(), MSCFModel::finalizeSpeed(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel_IDM::finalizeSpeed(), MSCFModel_CACC::followSpeed(), MSCFModel_IDM::followSpeed(), MSCFModel_IDM::freeSpeed(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), getCriticalLeader(), getDepartSpeed(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), MSVehicle::getMaxSpeedOnLane(), GUIBaseVehicle::getScaleValue(), MSLink::getZipperSpeed(), MSVehicle::Influencer::implicitSpeedRemote(), MSCFModel::interactionGap(), MSCFModel_EIDM::interactionGap(), MSCFModel_IDM::interactionGap(), MSCFModel_EIDM::internalspeedlimit(), isInsertionSuccess(), MSDevice_Bluelight::notifyMove(), MSDevice_GLOSA::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), MSCFModel_Krauss::patchSpeedBeforeLC(), MSVehicle::planMoveInternal(), MSVehicle::processNextStop(), MSVehicle::setBlinkerInformation(), MSCFModel_IDM::stopSpeed(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::updateTimeLoss(), MSEdge::validateDepartSpeed(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().
|
inline |
Returns the number of vehicles on this lane (for which this lane is responsible)
Definition at line 456 of file MSLane.h.
References myVehicles.
Referenced by executeMovements(), MSCalibrator::invalidJam(), MSVehicle::planMoveInternal(), MSCalibrator::remainingVehicleCapacity(), and MSFullExport::writeLane().
|
inline |
Returns the number of vehicles on this lane (including partial occupators)
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().
std::set< MSVehicle * > MSLane::getVehiclesInRange | ( | const double | a, |
const double | b | ||
) | const |
Returns all vehicles on the lane overlapping with the interval [a,b].
Definition at line 4220 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by libsumo::Helper::applySubscriptionFilterLanes(), and getSurroundingVehicles().
|
inlinevirtual |
Returns the vehicles container; locks it for microsimulation.
Please note that it is necessary to release the vehicles container afterwards using "releaseVehicles".
Reimplemented in GUILane.
Definition at line 483 of file MSLane.h.
References myVehicles.
Referenced by MSLane::StoringVisitor::add(), libsumo::Helper::applySubscriptionFilterTurn(), MSVehicleTransfer::checkInsertions(), GUIParkingArea::drawGL(), 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().
double MSLane::getVehicleStopOffset | ( | const MSVehicle * | veh | ) | const |
Returns vehicle class specific stopOffset for the vehicle.
Definition at line 3700 of file MSLane.cpp.
References StopOffset::getOffset(), StopOffset::getPermissions(), MSBaseVehicle::getVClass(), StopOffset::isDefined(), and myLaneStopOffset.
Referenced by isInsertionSuccess(), MSVehicle::planMoveInternal(), MSVehicle::processLaneAdvances(), and MSVehicle::processLinkApproaches().
double MSLane::getWaitingSeconds | ( | ) | const |
Returns the overall waiting time on this lane.
Definition at line 3345 of file MSLane.cpp.
References myVehicles.
|
inline |
Returns the lane's width.
Definition at line 635 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(), MSTrainHelper::computeCarriages(), MSLaneChanger::computeOvertakingTime(), MSLCM_SL2015::computeSublaneShift(), MSLaneChanger::continueChange(), MSAbstractLaneChangeModel::determineTargetLane(), GUILane::drawGL(), GUIBaseVehicle::drawStopLabels(), MSVehicle::enterLaneAtMove(), MSLaneChangerSublane::findClosestLeader(), MSVehicle::getCenterOnEdge(), MSStoppingPlace::getCenterPos(), getDepartPosLat(), getFollowersOnConsecutive(), MSVehicle::getLateralOverlap(), MSPModel_Striping::PState::getLatOffset(), MSVehicle::getLatOffset(), MSLink::getLeaderInfo(), MSVehicle::getLeftSideOnLane(), MSVehicle::getLeftSideOnLane(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), MSLCM_SL2015::getNeighRight(), MSPModel_Striping::getNextLaneObstacles(), MEVehicle::getRightSideOnEdge(), MSVehicle::getRightSideOnLane(), MSVehicle::getRightSideOnLane(), getSpaceTillLastStanding(), MSLCM_SL2015::getSublaneWidth(), MSLCM_SL2015::getVehicleCenter(), MSPModel_Striping::getVehicleObstacles(), MSStoppingPlace::getWaitPosition(), GUIParkingArea::GUIParkingArea(), GUIBusStop::initShape(), insertVehicle(), MSPModel_Striping::insertWalkArePaths(), MSVehicle::interpolateLateralZ(), MSRouteHandler::interpretDepartPosLat(), MSLCM_SL2015::keepLatGap(), MSVehicle::lateralDistanceToLane(), MSPModel_Striping::moveInDirection(), LIBSUMO_NAMESPACE::Person::moveTo(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), MSPModel_Striping::PState::moveToXY(), MSParkingArea::MSParkingArea(), MSLCM_SL2015::mustOvertakeStopped(), MSPModel_Interacting::nextBlocking(), MSDevice_Bluelight::notifyMove(), MSPModel_Striping::numStripes(), MSVehicle::planMoveInternal(), MSLCM_SL2015::prepareStep(), MSVehicle::processLinkApproaches(), MSPModel_Striping::PState::PState(), MSLink::recheckSetRequestInformation(), MSAbstractLaneChangeModel::saveNeighbors(), GUIVehicle::selectBlockingFoes(), MSLink::setRequestInformation(), MSLaneChangerSublane::startChangeSublane(), MSAbstractLaneChangeModel::startLaneChangeManeuver(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), and MSLCM_SL2015::wantsChange().
bool MSLane::hadPermissionChanges | ( | ) | const |
Definition at line 4465 of file MSLane.cpp.
References myPermissionChanges.
|
protected |
take action upon collision
Definition at line 2002 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(), DEBUG_COND2, SUMOVehicleParameter::Stop::duration, SUMOVehicleParameter::Stop::endPos, MSVehicle::getAngle(), MSEdge::getBidiEdge(), MSVehicle::getCarFollowModel(), getEdge(), 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(), isInternal(), MSAbstractLaneChangeModel::isOpposite(), MSVehicle::Influencer::isRemoteAffected(), SUMOVehicleParameter::Stop::lane, MAX3(), MIN2(), myCollisionAction, myCollisionStopTime, SUMOVehicleParameter::Stop::parametersSet, RAD2DEG, MSVehicleControl::registerCollision(), MSNet::registerCollision(), SPEED2DIST, SUMOVehicleParameter::Stop::startPos, STOP_DURATION_SET, STOP_END_SET, STOP_START_SET, std::swap(), time2string(), TL, TLF, toString(), and WRITE_WARNINGF.
Referenced by detectCollisionBetween(), and detectCollisions().
|
protected |
Definition at line 2129 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSNet::COLLISION, SUMOVehicleParameter::Stop::collision, COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, COLLISION_ACTION_WARN, MSVehicle::collisionStopTime(), DEBUG_COND2, SUMOVehicleParameter::Stop::duration, SUMOVehicleParameter::Stop::endPos, MSVehicle::getCarFollowModel(), MSTransportable::getEdgePos(), MSCFModel::getEmergencyDecel(), Named::getID(), MSVehicle::getInfluencer(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSNet::getVehicleControl(), MSTransportable::getVehicleType(), MSVehicle::hasInfluencer(), MSVehicle::ignoreCollision(), MSNet::informVehicleStateListener(), MSVehicle::Influencer::isRemoteAffected(), SUMOVehicleParameter::Stop::lane, MAX3(), MIN2(), myIntermodalCollisionAction, myIntermodalCollisionStopTime, SUMOVehicleParameter::Stop::parametersSet, MSVehicleControl::registerCollision(), MSNet::registerCollision(), SPEED2DIST, SUMOVehicleParameter::Stop::startPos, STOP_DURATION_SET, STOP_END_SET, STOP_START_SET, time2string(), TLF, and WRITE_WARNING.
Referenced by detectCollisions(), and detectPedestrianJunctionCollision().
bool MSLane::hasApproaching | ( | ) | const |
Definition at line 3613 of file MSLane.cpp.
References myLinks.
Referenced by saveState().
|
protected |
check whether any of the outgoing links are being approached
|
inherited |
Returns whether the parameter is set.
[in] | key | The key to ask for |
Definition at line 84 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by MSStageWalking::activateEntryReminders(), NBEdge::append(), MSVehicleType::build(), GUIInductLoop::buildDetectorGUIRepresentation(), MSDevice_ElecHybrid::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), GUINet::createTLWrapper(), EnergyParams::EnergyParams(), MSDevice_SSM::filterByConflictType(), NWWriter_DlrNavteq::getBrunnelType(), GNEEdgeData::getColorValue(), GNEEdgeRelData::getColorValue(), GNETAZRelData::getColorValue(), GNELane::getColorValue(), GUILane::getColorValue(), MSDevice_SSM::getDetectionRange(), MSDevice_SSM::getExtraTime(), MSDevice_SSM::getMDRAC_PRT(), MSDevice_SSM::getMeasuresAndThresholds(), MSDevice_SSM::getOutputFilename(), LIBSUMO_NAMESPACE::Simulation::getParameter(), MSStoppingPlaceRerouter::getWeight(), MSStageDriving::init(), SUMOVTypeParameter::initRailVisualizationParameters(), MSEdge::insertVehicle(), NWWriter_OpenDrive::mapmatchRoadObjects(), Parameterised::mergeParameters(), MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(), MSSimpleTrafficLightLogic::MSSimpleTrafficLightLogic(), GNEVType::overwriteVType(), NWWriter_OpenDrive::parseTrafficSign(), NBTrafficLightDefinition::railSignalUncontrolled(), MSDevice_Battery::readParameterValue(), MSDevice_SSM::requestsTrajectories(), NBTrafficLightLogicCont::setOpenDriveSignalParameters(), MSVehicle::slowDownForSchedule(), MSDevice_SSM::useGeoCoords(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::WAUTSwitchProcedure_Stretch(), MSDevice_SSM::writeLanesPositions(), MSDevice_SSM::writePositions(), NWWriter_OpenDrive::writeRoadObjectPoly(), NWWriter_OpenDrive::writeRoadObjects(), and NWWriter_OpenDrive::writeSignals().
bool MSLane::hasPedestrians | ( | ) | const |
whether the lane has pedestrians on it
Definition at line 4483 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(), MSInductLoop::detectorUpdate(), detectPedestrianJunctionCollision(), MSVehicle::planMoveInternal(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().
|
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
[in] | veh | The vehicle to be incorporated |
[in] | pos | The position of the vehicle |
[in] | speed | The speed of the vehicle |
[in] | posLat | The lateral position of the vehicle |
[in] | at | |
[in] | notification | The cause of insertion (i.e. departure, teleport, parking) defaults to departure |
Reimplemented in GUILane.
Definition at line 445 of file MSLane.cpp.
References MSVehicle::enterLaneAtInsertion(), getBidiLane(), MSNet::getEdgeControl(), MSNet::getInstance(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), getPermissions(), MSBaseVehicle::getVClass(), MSBaseVehicle::getVehicleType(), MSEdgeControl::gotActive(), isRailway(), MSEdge::markDelayed(), myBruttoVehicleLengthSum, myEdge, myLength, myNeedsCollisionCheck, myNettoVehicleLengthSum, myVehicles, setPartialOccupation(), and SVC_RAIL_CLASSES.
Referenced by forceVehicleInsertion(), GUILane::incorporateVehicle(), isInsertionSuccess(), and loadState().
|
static |
Definition at line 4409 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().
|
static |
Definition at line 4425 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().
void MSLane::initRestrictions | ( | ) |
initialized vClass-specific speed limits
Definition at line 306 of file MSLane.cpp.
References MSEdge::getEdgeType(), MSNet::getInstance(), MSNet::getRestrictions(), MSGlobals::gUnitTests, myEdge, and myRestrictions.
Referenced by MSLane().
|
static |
initialize rngs
Definition at line 4532 of file MSLane.cpp.
References OptionsCont::getBool(), OptionsCont::getInt(), RandHelper::initRand(), myRNGs, and toString().
Referenced by NLBuilder::initRandomness().
|
static |
Adds the ids of all stored lanes into the given vector.
[in,filled] | into The vector to add the IDs into |
Definition at line 2446 of file MSLane.cpp.
References myDict.
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.
[in] | v | The vehicle to insert |
Definition at line 668 of file MSLane.cpp.
References anyVehiclesBegin(), anyVehiclesEnd(), BASE, MSBaseVehicle::basePos(), DEBUG_COND2, DEFAULT, DELTA_T, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosLatProcedure, SUMOVehicleParameter::departPosProcedure, SUMOVehicleParameter::departProcedure, MSVehicle::executeFractionalMove(), FALLTHROUGH, FREE, freeInsertion(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), 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(), MSStop::lane, 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().
|
virtual |
Insert buffered vehicle into the real lane.
Reimplemented in GUILane.
Definition at line 2491 of file MSLane.cpp.
References DEBUG_COND, MFXSynchQue< T, Container >::getContainer(), Named::getID(), MSGlobals::gLateralResolution, MSEdge::markDelayed(), myBruttoVehicleLengthSum, myEdge, myNeedsCollisionCheck, myNettoVehicleLengthSum, myOpposite, myPartialVehicles, myVehBuffer, myVehicles, SIMTIME, sortPartialVehicles(), toString(), and MFXSynchQue< T, Container >::unlock().
Referenced by GUILane::integrateNewVehicles().
|
inline |
Definition at line 566 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by libsumo::Helper::convertCartesianToRoadMap(), MSLaneChanger::foundHilltop(), GUILane::getPopUpMenu(), libsumo::Helper::moveToXYMap(), MSDevice_FCDReplay::FCDHandler::myStartElement(), MSStageDriving::setArrived(), and MSLink::setRequestInformation().
|
inline |
Definition at line 554 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by MSVehicle::computeAngle(), GUIOverheadWire::drawGL(), GUIEdge::drawMesoVehicles(), geometryPositionAtOffset(), MEVehicle::getAngle(), LIBSUMO_NAMESPACE::Lane::getAngle(), MSStoppingPlace::getCenterPos(), MSStage::getLanePosition(), MSVehicle::getPosition(), MEVehicle::getSlope(), MSVehicle::getSlope(), LIBSUMO_NAMESPACE::Person::getSlope(), MSStoppingPlace::getWaitPosition(), GUIOverheadWire::GUIOverheadWire(), GUIChargingStation::initAppearance(), MSParkingArea::MSParkingArea(), GUIInductLoop::MyWrapper::MyWrapper(), and MSParkingArea::setRoadsideCapacity().
|
inline |
return whether this lane is an acceleration lane
Definition at line 543 of file MSLane.h.
References myIsRampAccel.
Referenced by MSLCM_LC2013::informFollower().
|
inline |
Definition at line 956 of file MSLane.h.
References myApproachingLanes.
Definition at line 2804 of file MSLane.cpp.
References myApproachingLanes.
bool MSLane::isCrossing | ( | ) | const |
Returns whether the lane pertains to a crossing edge
Definition at line 2557 of file MSLane.cpp.
References MSEdge::isCrossing(), and myEdge.
Referenced by GUILane::drawGL(), GUILane::drawLinkRules(), LIBSUMO_NAMESPACE::Lane::getInternalFoes(), MSLink::getLeaderInfo(), MSPModel_Striping::PState::getNextCrossing(), and MSPModel_Striping::getNextLane().
|
inline |
Returns the information whether the lane is has no vehicle and no partial occupation
Definition at line 865 of file MSLane.h.
References myPartialVehicles, and myVehicles.
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.
[in] | vehicle | The vehicle to insert |
[in] | speed | The speed with which it shall be inserted |
[in] | pos | The position at which it shall be inserted |
[in] | posLat | The lateral position at which it shall be inserted |
[in] | recheckNextLanes | Forces patching the speed for not being too fast on next lanes |
[in] | notification | The cause of insertion (i.e. departure, teleport, parking) defaults to departure |
Definition at line 827 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(), getInsertionChecks(), MSNet::getInsertionControl(), MSNet::getInstance(), SUMOVTypeParameter::getJMParam(), MSLink::getJunction(), MSVehicle::getLaneChangeModel(), getLastAnyVehicle(), MSRoute::getLastEdge(), getLastVehicleInformation(), getLength(), MSVehicleType::getLength(), MSCFModel::getMaxDecel(), getMeanSpeed(), MSVehicleType::getMinGap(), getMissingRearGap(), MSBaseVehicle::getNextStop(), MSBaseVehicle::getParameter(), MSVehicleType::getParameter(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getRoute(), MSCFModel::getSecureGap(), MSAbstractLaneChangeModel::getShadowLane(), MSVehicle::getSpeed(), MSLink::getState(), 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(), isRailway(), JUNCTION, MSStop::lane, LANECHANGE, LAST, LEADER_GAP, LIMIT, LINKSTATE_ALLWAY_STOP, LINKSTATE_EQUAL, LINKSTATE_MINOR, LINKSTATE_STOP, MAX2(), Named::myID, myLength, myManeuverReservations, myPartialVehicles, myVehicles, NONE, MSLeaderInfo::numFreeSublanes(), MSLeaderInfo::numSublanes(), ONCOMING_TRAIN, MSStop::pars, RAIL_SIGNAL, MSVehicle::registerInsertionApproach(), safeInsertionSpeed(), MSPModel::SAFETY_GAP, Parameterised::setParameter(), MSVehicle::setTentativeLaneAndPosition(), SIMTIME, SUMOVehicleParameter::Stop::speed, SPEED_LIMIT, SPLIT, SUMOVehicleParameter::Stop::startPos, STOP, MSCFModel::stopSpeed(), succLinkSec(), SUMO_ATTR_JM_STOPLINE_CROSSING_GAP, SUMO_const_haltingSpeed, TIME2STEPS, TL, MSLeaderInfo::toString(), toString(), Parameterised::unsetParameter(), MSVehicle::updateBestLanes(), WRITE_ERRORF, and WRITE_WARNINGF.
Referenced by MSVehicleTransfer::checkInsertions(), freeInsertion(), insertVehicle(), and lastInsertion().
bool MSLane::isInternal | ( | ) | const |
Returns whether the lane pertains to an internal edge
Definition at line 2545 of file MSLane.cpp.
References MSEdge::isInternal(), and myEdge.
Referenced by addLeaders(), MSTractionSubstation::addOverheadWireSegmentToCircuit(), MSRouteHandler::addStop(), MSBaseVehicle::addStop(), libsumo::Helper::applySubscriptionFilterTurn(), MSVehicle::brakeForOverlap(), MSDriveWay::buildRoute(), MSLaneChanger::changeOpposite(), MSDevice_ToC::checkDynamicToC(), MSDriveWay::checkFlanks(), MSVehicle::checkReversal(), MSDevice_SSM::classifyEncounter(), MSVehicle::computeAngle(), MSVehicle::computeFurtherLanes(), detectCollisionBetween(), detectCollisions(), MSLCHelper::divergentRoute(), GUILane::drawGL(), GUILane::drawLinkRule(), GUIVehicle::drawRouteHelper(), 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(), MSVehicle::getNextEdgePtr(), getNormalPredecessorLane(), getNormalSuccessorLane(), MSVehicle::getPastLanesUntil(), MSVehicle::getPositionAlongBestLanes(), MSVehicle::getPreviousLane(), MSVehicle::getRerouteOrigin(), MSVehicle::getUpcomingLanesUntil(), getUpcomingLinks(), handleCollisionBetween(), MSE2Collector::initAuxiliaries(), MSBaseVehicle::insertStop(), isInsertionSuccess(), MSVehicle::isLeader(), MSVehicle::isOppositeLane(), MSVehicle::joinTrainPartFront(), MSLink::MSLink(), MSDevice_Routing::notifyEnter(), MSLane::incoming_lane_priority_sorter::operator()(), NLTriggerBuilder::parseAndBuildOverheadWireSegment(), MSVehicle::planMoveInternal(), MSDevice_Taxi::prepareStop(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), MSBaseVehicle::replaceRoute(), MSBaseVehicle::replaceStop(), MSBaseVehicle::rerouteBetweenStops(), succLinkSec(), MSVehicle::updateBestLanes(), MSVehicle::updateDriveItems(), and MSFCDExport::write().
|
inline |
Returns the information whether the given link shows at the end of the list of links (is not valid)
Definition at line 853 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().
|
inline |
bool MSLane::isNormal | ( | ) | const |
Returns whether the lane pertains to a normal edge
Definition at line 2551 of file MSLane.cpp.
References MSEdge::isNormal(), and myEdge.
Referenced by MSVehicle::getDistanceToLeaveJunction(), NEMALogic::getLaneInfoFromNEMAState(), MSLink::getLeaderInfo(), MSStageWalking::loadState(), MSPModel_Striping::PState::moveTo(), setBidiLane(), and MSLink::setRequestInformation().
|
staticprivateinherited |
check if given string can be parsed to a parameter of type "key=value"
Definition at line 254 of file Parameterised.cpp.
References StringTokenizer::getVector(), and SUMOXMLDefinitions::isValidParameterKey().
Referenced by Parameterised::areAttributesValid(), and Parameterised::areParametersValid().
|
inlinevirtual |
bool MSLane::isWalkingArea | ( | ) | const |
Returns whether the lane pertains to a walkingarea
Definition at line 2562 of file MSLane.cpp.
References MSEdge::isWalkingArea(), and myEdge.
Referenced by GUILane::drawGL(), and MSPModel_Striping::registerCrossingApproach().
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 470 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().
void MSLane::leftByLaneChange | ( | MSVehicle * | v | ) |
Definition at line 3271 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.
Referenced by MSAbstractLaneChangeModel::primaryLaneChanged().
|
static |
load random number generator state for the given rng index
Definition at line 4555 of file MSLane.cpp.
References getNumRNGs(), RandHelper::loadState(), myRNGs, TLF, and toString().
Referenced by MSStateHandler::myStartElement().
void MSLane::loadState | ( | const std::vector< std::string > & | vehIDs, |
MSVehicleControl & | vc | ||
) |
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.
[in] | vehIDs | The vehicle ids for the current que |
[in] | vc | The vehicle control to retrieve references vehicles from |
What about throwing an IOError?
What about throwing an error if something else fails (a vehicle can not be referenced)?
Definition at line 3682 of file MSLane.cpp.
References MSNet::getInstance(), MSVehicle::getLastActionTime(), MSVehicle::getLateralPositionOnLane(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSVehicleControl::getVehicle(), incorporateVehicle(), myVehicles, MSMoveReminder::NOTIFICATION_LOAD_STATE, MSVehicle::processNextStop(), MSVehicle::resetActionOffset(), and MSVehicle::updateBestLanes().
Referenced by MSStateHandler::myStartElement().
void MSLane::markRecalculateBruttoSum | ( | ) |
Set a flag to recalculate the brutto (including minGaps) occupancy of this lane (used if mingap is changed)
Definition at line 2358 of file MSLane.cpp.
References myRecalculateBruttoSum.
Referenced by MSVehicle::updateLaneBruttoSum().
|
inherited |
Adds or appends all given parameters from the map.
[in] | mapArg | The keys/values to insert |
Definition at line 65 of file Parameterised.cpp.
References Parameterised::getParameter(), Parameterised::hasParameter(), and Parameterised::setParameter().
Referenced by NBEdge::append().
bool MSLane::mustCheckJunctionCollisions | ( | ) | const |
whether this lane must check for junction collisions
Definition at line 4570 of file MSLane.cpp.
References MSEdge::isInternal(), myCheckJunctionCollisions, myEdge, and myLinks.
Referenced by detectCollisions(), and MSVehicle::processLaneAdvances().
|
inline |
short-circut collision check if nothing changed since the last check
Definition at line 705 of file MSLane.h.
References myNeedsCollisionCheck.
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 4490 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().
|
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.
Reimplemented in GUILane.
Definition at line 1520 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().
|
inlinevirtual |
Allows to use the container for microsimulation again.
Reimplemented in GUILane.
Definition at line 513 of file MSLane.h.
Referenced by MSLane::StoringVisitor::add(), libsumo::Helper::applySubscriptionFilterTurn(), MSVehicleTransfer::checkInsertions(), GUIParkingArea::drawGL(), 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().
|
virtual |
Remove a move-reminder from move-reminder container.
The move reminder will not be deleted by the lane.
[in] | rem | The move reminder to remvoe |
Definition at line 362 of file MSLane.cpp.
References myMoveReminders, and myVehicles.
|
virtual |
remove parking vehicle. This must be syncrhonized when running with GUI
Reimplemented in GUILane.
Definition at line 3608 of file MSLane.cpp.
References myParkingVehicles.
Referenced by MSVehicleTransfer::checkInsertions(), MSVehicleTransfer::remove(), and GUILane::removeParking().
|
virtual |
Reimplemented in GUILane.
Definition at line 2755 of file MSLane.cpp.
References MSVehicle::getLane(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSVehicle::leaveLane(), myBruttoVehicleLengthSum, myNettoVehicleLengthSum, and myVehicles.
Referenced by detectCollisions(), MSVehicle::executeFractionalMove(), LIBSUMO_NAMESPACE::Vehicle::moveTo(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdRemoveObject(), MSVehicle::Influencer::postProcessRemoteControl(), LIBSUMO_NAMESPACE::Vehicle::remove(), MSCalibrator::removePending(), and GUILane::removeVehicle().
|
inline |
require another collision check due to relevant changes in the simulation
Definition at line 710 of file MSLane.h.
References myNeedsCollisionCheck.
Referenced by MSLaneChanger::continueChange().
|
virtual |
Unregisters a vehicle, which previously registered for maneuvering into this lane.
[in] | v | The vehicle |
Definition at line 427 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), myManeuverReservations, and SIMTIME.
Referenced by MSAbstractLaneChangeModel::cleanupTargetLane(), and MSAbstractLaneChangeModel::updateTargetLane().
|
virtual |
Removes the information about a vehicle lapping into this lane.
[in] | v | The vehicle which laps into this lane |
Reimplemented in GUILane.
Definition at line 393 of file MSLane.cpp.
References DEBUG_COND2, MSGlobals::gClearState, Named::getID(), MSVehicle::getLaneChangeModel(), MSGlobals::gNumSimThreads, MSAbstractLaneChangeModel::hasBlueLight(), myPartialVehicles, and SIMTIME.
Referenced by MSAbstractLaneChangeModel::cleanupShadowLane(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::leaveLane(), GUILane::resetPartialOccupation(), MSVehicle::updateFurtherLanes(), and MSAbstractLaneChangeModel::updateShadowLane().
void MSLane::resetPermissions | ( | long long | transientID | ) |
Definition at line 4450 of file MSLane.cpp.
References myOriginalPermissions, myPermissionChanges, myPermissions, and SVCAll.
Referenced by GUILane::closeTraffic(), and setPermissions().
|
protected |
return the maximum safe speed for insertion behind leaders (a negative value indicates that safe insertion is impossible)
Definition at line 1367 of file MSLane.cpp.
References COLLISION, DEBUG_COND2, MSVehicle::getBackPositionOnLane(), getBidiLane(), MSVehicle::getBrakeGap(), MSVehicle::getCarFollowModel(), Named::getID(), 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().
|
static |
save random number generator states to the given output device
Definition at line 4545 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().
void MSLane::saveState | ( | OutputDevice & | out | ) |
Saves the state of this lane into the given stream.
Basically, a list of vehicle ids
[in,filled] | out The (possibly binary) device to write the state into |
Definition at line 3623 of file MSLane.cpp.
References OutputDevice::closeTag(), Named::getID(), MSEdge::getToJunction(), MSJunction::getType(), hasApproaching(), myEdge, myLinks, myVehicles, OutputDevice::openTag(), RAIL_CROSSING, RAIL_SIGNAL, SUMO_ATTR_ARRIVALSPEED, SUMO_ATTR_ARRIVALSPEEDBRAKING, SUMO_ATTR_ARRIVALTIME, SUMO_ATTR_DEPARTSPEED, SUMO_ATTR_DISTANCE, SUMO_ATTR_ID, SUMO_ATTR_POSITION_LAT, SUMO_ATTR_REQUEST, SUMO_ATTR_TO, SUMO_ATTR_VALUE, SUMO_ATTR_WAITINGTIME, SUMO_TAG_APPROACHING, SUMO_TAG_LANE, SUMO_TAG_LINK, SUMO_TAG_VIEWSETTINGS_VEHICLES, and OutputDevice::writeAttr().
void MSLane::setBidiLane | ( | MSLane * | bidyLane | ) |
Adds the (overlapping) reverse direction lane to this lane.
[in] | id | The lane's id |
Definition at line 339 of file MSLane.cpp.
References Named::getID(), getLength(), MSGlobals::gUsingInternalLanes, isNormal(), myBidiLane, TL, and WRITE_WARNINGF.
void MSLane::setChangeLeft | ( | SVCPermissions | permissions | ) |
Sets the permissions for changing to the left neighbour lane.
[in] | permissions | The new permissions |
Definition at line 4471 of file MSLane.cpp.
References myChangeLeft.
Referenced by LIBSUMO_NAMESPACE::Lane::setChangePermissions().
void MSLane::setChangeRight | ( | SVCPermissions | permissions | ) |
Sets the permissions for changing to the right neighbour lane.
[in] | permissions | The new permissions |
Definition at line 4477 of file MSLane.cpp.
References myChangeRight.
Referenced by LIBSUMO_NAMESPACE::Lane::setChangePermissions().
void MSLane::setFrictionCoefficient | ( | double | val | ) |
Sets a new friction coefficient for the lane [to be later (used by TraCI and MSCalibrator)].
[in] | val | the new friction coefficient [0..1] |
Definition at line 2724 of file MSLane.cpp.
References myEdge, myFrictionCoefficient, and MSEdge::recalcCache().
|
inlinevirtualinherited |
resets the id
[in] | newID | The new id of this object |
Reimplemented in MSBaseVehicle, MSTransportable, and NBLoadedSUMOTLDef.
Definition at line 82 of file Named.h.
References Named::myID.
Referenced by Distribution_Parameterized::parse(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdgeCont::rename(), NBNodeCont::rename(), GNEJunction::setAttribute(), NBLoadedSUMOTLDef::setID(), and IntermodalNetwork< E, L, N, V >::splitEdge().
|
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 1560 of file MSLane.cpp.
References myVehicles.
Referenced by GUILane::setJunctionApproaches().
void MSLane::setLaneStopOffset | ( | const StopOffset & | stopOffset | ) |
Set vehicle class specific stopOffsets.
Definition at line 3719 of file MSLane.cpp.
References myLaneStopOffset.
void MSLane::setLength | ( | double | val | ) |
Sets a new length for the lane (used by TraCI only)
[in] | val | the new length in m |
Definition at line 2731 of file MSLane.cpp.
References myEdge, myLength, and MSEdge::recalcCache().
|
virtual |
Registers the lane change intentions (towards this lane) for the given vehicle.
Definition at line 416 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), myManeuverReservations, and SIMTIME.
Referenced by MSAbstractLaneChangeModel::updateTargetLane().
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)
[in] | val | the new speed in m/s |
[in] | whether | a variable speed sign (VSS) imposes the speed limit |
[in] | whether | TraCI imposes the speed limit |
Definition at line 2708 of file MSLane.cpp.
References MESegment::getNextSegment(), MELoop::getSegmentForEdge(), MSGlobals::gMesoNet, MSGlobals::gUseMesoSim, myEdge, myIndex, myMaxSpeed, mySpeedByTraCI, mySpeedByVSS, MSEdge::recalcCache(), MESegment::setSpeed(), and SIMSTEP.
Referenced by MSCalibrator::execute().
void MSLane::setOpposite | ( | MSLane * | oppositeLane | ) |
Adds a neighbor to this lane.
[in] | id | The lane's id |
Definition at line 331 of file MSLane.cpp.
References Named::getID(), getLength(), myOpposite, TL, and WRITE_WARNINGF.
|
virtualinherited |
Sets a parameter.
[in] | key | The parameter's name |
[in] | value | The parameter's value |
Reimplemented in MSRailCrossing, MSActuatedTrafficLightLogic, MSRailSignal, MSSimpleTrafficLightLogic, and NEMALogic.
Definition at line 45 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NBRailwayTopologyAnalyzer::addBidiEdge(), NLHandler::addDistrict(), RONetHandler::addParam(), ShapeHandler::addPOI(), NBOwnTLDef::buildNemaPhases(), MSParkingArea::enter(), NIImporter_MATSim::EdgesHandler::insertEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_OpenStreetMap::insertNodeChecking(), isInsertionSuccess(), NBNodeCont::joinNodeCluster(), NBEdge::Lane::Lane(), NWWriter_OpenDrive::mapmatchRoadObjects(), Parameterised::mergeParameters(), MSStateHandler::myStartElement(), NIXMLConnectionsHandler::myStartElement(), NIXMLNodesHandler::myStartElement(), NIXMLTrafficLightsHandler::myStartElement(), ShapeHandler::myStartElement(), MSDevice_Bluelight::notifyMove(), GNESingleParametersDialog::onCmdAccept(), NBRailwayTopologyAnalyzer::reverseEdges(), GNEVType::setAttribute(), NBEdge::setJunctionPriority(), NIImporter_OpenDrive::setLaneAttributes(), MSRailCrossing::setParameter(), MSActuatedTrafficLightLogic::setParameter(), MSRailSignal::setParameter(), MSSimpleTrafficLightLogic::setParameter(), NEMALogic::setParameter(), LIBSUMO_NAMESPACE::Simulation::setParameter(), Parameterised::setParametersStr(), LIBSUMO_NAMESPACE::Vehicle::setStopParameter(), LIBSUMO_NAMESPACE::TrafficLight::swapParameters(), Parameterised::updateParameters(), NWWriter_OpenDrive::writeNetwork(), and NIImporter_OpenDrive::writeRoadObjects().
|
inherited |
set the inner key/value map in map<string, string> format
Definition at line 167 of file Parameterised.cpp.
References Parameterised::getParametersMap(), and Parameterised::myMap.
Referenced by MSStageDriving::clone(), MSStageTranship::clone(), MSStageTrip::clone(), MSStageWaiting::clone(), MSStageWalking::clone(), and MSStageTrip::reroute().
|
inherited |
set the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN"
[in] | paramsString | A serialized key-value map |
[in] | kvsep | The separater between key and value |
[in] | sep | The separater between map entries |
Definition at line 173 of file Parameterised.cpp.
References StringTokenizer::getVector(), Parameterised::myMap, and Parameterised::setParameter().
Referenced by MSDevice_Taxi::initDispatch(), GNEAccess::setAttribute(), GNEBusStop::setAttribute(), GNECalibrator::setAttribute(), GNECalibratorFlow::setAttribute(), GNEChargingStation::setAttribute(), GNEContainerStop::setAttribute(), GNEMultiEntryExitDetector::setAttribute(), GNEOverheadWire::setAttribute(), GNEParkingArea::setAttribute(), GNEParkingSpace::setAttribute(), GNERerouter::setAttribute(), GNERouteProbe::setAttribute(), GNETAZ::setAttribute(), GNETAZSourceSink::setAttribute(), GNETractionSubstation::setAttribute(), GNEVaporizer::setAttribute(), GNEVariableSpeedSign::setAttribute(), GNEEdgeData::setAttribute(), GNEEdgeRelData::setAttribute(), GNETAZRelData::setAttribute(), GNEContainer::setAttribute(), GNEPerson::setAttribute(), GNERoute::setAttribute(), GNEStop::setAttribute(), GNEVehicle::setAttribute(), GNEVType::setAttribute(), GNEConnection::setAttribute(), GNEEdge::setAttribute(), GNEEdgeType::setAttribute(), GNEJunction::setAttribute(), GNELane::setAttribute(), GNELaneType::setAttribute(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), and GNEDetector::setDetectorAttribute().
|
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()
[in] | v | The vehicle which laps into this lane |
Reimplemented in GUILane.
Definition at line 374 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), MSGlobals::gNumSimThreads, myLength, myNeedsCollisionCheck, myPartialVehicles, and SIMTIME.
Referenced by MSVehicle::computeFurtherLanes(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::enterLaneAtMove(), incorporateVehicle(), GUILane::setPartialOccupation(), MSVehicle::updateFurtherLanes(), and MSAbstractLaneChangeModel::updateShadowLane().
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.
[in] | permissions | The new permissions |
[in] | transientID | The id of the permission-modification or the special value PERMANENT |
Definition at line 4438 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().
|
inline |
Definition at line 1184 of file MSLane.h.
References myRightmostSublane, and myRightSideOnEdge.
void MSLane::sortManeuverReservations | ( | ) |
sorts myManeuverReservations
Definition at line 2526 of file MSLane.cpp.
References DEBUG_COND, Named::getID(), myManeuverReservations, and toString().
void MSLane::sortPartialVehicles | ( | ) |
sorts myPartialVehicles
Definition at line 2518 of file MSLane.cpp.
References myPartialVehicles.
Referenced by integrateNewVehicles(), and swapAfterLaneChange().
|
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 2619 of file MSLane.cpp.
References Named::getID(), MSNet::getInstance(), MSVehicleType::getVehicleClass(), SUMOTrafficObject::getVehicleType(), isInternal(), 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().
|
protectedvirtual |
moves myTmpVehicles int myVehicles after a lane change procedure
Reimplemented in GUILane.
Definition at line 2738 of file MSLane.cpp.
References getOpposite(), MSGlobals::gSublane, myBidiLane, myTmpVehicles, myVehicles, and sortPartialVehicles().
Referenced by GUILane::swapAfterLaneChange().
|
inherited |
Removes a parameter.
[in] | key | The parameter's name |
Definition at line 51 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NIImporter_OpenStreetMap::insertEdge(), isInsertionSuccess(), GNEVType::setAttribute(), and LIBSUMO_NAMESPACE::TrafficLight::swapParameters().
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 1568 of file MSLane.cpp.
References MSLeaderInfo::addLeader(), DEBUG_COND, MSVehicle::getPositionOnLane(), MSGlobals::gLaneChangeDuration, myManeuverReservations, and myPartialVehicles.
Referenced by planMovements().
void MSLane::updateLengthSum | ( | ) |
updated current vehicle length sum (delayed to avoid lane-order-dependency)
Definition at line 2364 of file MSLane.cpp.
References myBruttoVehicleLengthSum, myBruttoVehicleLengthSumToRemove, myNettoVehicleLengthSum, myNettoVehicleLengthSumToRemove, myRecalculateBruttoSum, and myVehicles.
|
inherited |
Adds or updates all given parameters from the map.
[in] | mapArg | The keys/values to insert |
Definition at line 57 of file Parameterised.cpp.
References Parameterised::setParameter().
Referenced by NIImporter_SUMO::_loadNetwork(), NBNode::addCrossing(), PCLoaderOSM::addPOI(), PCLoaderOSM::addPolygon(), NLHandler::closeEdge(), NLJunctionControlBuilder::closeJunction(), NLJunctionControlBuilder::closeTrafficLightLogic(), NBTrafficLightDefinition::compute(), NLDetectorBuilder::endE3Detector(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_OpenStreetMap::insertNodeChecking(), NBEdge::NBEdge(), NBLoadedSUMOTLDef::NBLoadedSUMOTLDef(), NBTrafficLightLogic::NBTrafficLightLogic(), and LIBSUMO_NAMESPACE::TrafficLight::swapConstraints().
|
inline |
Callback for visiting the lane when traversing an RTree.
This is used in the TraCIServerAPI_Lane for context subscriptions.
[in] | cont | The context doing all the work |
Definition at line 1334 of file MSLane.h.
References MSLane::StoringVisitor::add().
Referenced by libsumo::Helper::collectObjectsInRange().
|
inherited |
write Params in the given outputdevice
Definition at line 188 of file Parameterised.cpp.
References OutputDevice::closeTag(), StringUtils::escapeXML(), Parameterised::myMap, OutputDevice::openTag(), SUMO_ATTR_KEY, SUMO_ATTR_VALUE, SUMO_TAG_PARAM, and OutputDevice::writeAttr().
Referenced by MSStageWaiting::routeOutput(), MSTransportable::routeOutput(), ROPerson::saveAsXML(), ROVehicle::saveAsXML(), MEVehicle::saveState(), MSVehicle::saveState(), MSStop::write(), SUMOVTypeParameter::write(), SUMOVehicleParameter::Stop::write(), NBPTStop::write(), MSRailSignalConstraint_Predecessor::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(), 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::writeJunction(), NWWriter_SUMO::writeLane(), NWWriter_XML::writeNodes(), MSDevice_Vehroutes::writeOutput(), NWWriter_SUMO::writeTrafficLight(), SUMOPolygon::writeXML(), and PointOfInterest::writeXML().
|
friend |
|
friend |
|
friend |
|
friend |
|
static |
Definition at line 1366 of file MSLane.h.
Referenced by GUILane::closeTraffic().
|
static |
Definition at line 1365 of file MSLane.h.
Referenced by LIBSUMO_NAMESPACE::Lane::setAllowed(), LIBSUMO_NAMESPACE::Edge::setAllowedSVCPermissions(), LIBSUMO_NAMESPACE::Lane::setDisallowed(), and setPermissions().
All direct internal and direct (disregarding internal predecessors) non-internal predecessor lanes of this lane.
Definition at line 1563 of file MSLane.h.
Referenced by addApproachingLane(), getNormalIncomingLanes(), isApproachedFrom(), and isApproachedFrom().
|
protected |
Definition at line 1596 of file MSLane.h.
Referenced by GUILane::drawGL(), getBidiLane(), getLastAnyVehicle(), GUILane::getParameterWindow(), setBidiLane(), and swapAfterLaneChange().
|
protected |
The current length of all vehicles on this lane, including their minGaps.
Definition at line 1544 of file MSLane.h.
Referenced by clearState(), enteredByLaneChange(), getBruttoOccupancy(), getBruttoVehLenSum(), incorporateVehicle(), integrateNewVehicles(), leftByLaneChange(), removeVehicle(), and updateLengthSum().
|
protected |
The length of all vehicles that have left this lane in the current step (this lane, including their minGaps)
Definition at line 1550 of file MSLane.h.
Referenced by clearState(), executeMovements(), and updateLengthSum().
|
mutableprotected |
Similar to LogicalPredecessorLane,.
Definition at line 1538 of file MSLane.h.
Referenced by getCanonicalPredecessorLane().
|
mutableprotected |
Main successor lane,.
Definition at line 1541 of file MSLane.h.
Referenced by getCanonicalSuccessorLane().
|
protected |
The vClass permissions for changing from this lane.
Definition at line 1522 of file MSLane.h.
Referenced by allowsChangingLeft(), getChangeLeft(), and setChangeLeft().
|
protected |
Definition at line 1523 of file MSLane.h.
Referenced by allowsChangingRight(), getChangeRight(), and setChangeRight().
|
staticprivate |
Definition at line 1620 of file MSLane.h.
Referenced by detectCollisions(), and initCollisionOptions().
|
staticprivate |
Definition at line 1619 of file MSLane.h.
Referenced by initCollisionOptions(), and mustCheckJunctionCollisions().
|
staticprivate |
the action to take on collisions
Definition at line 1617 of file MSLane.h.
Referenced by detectCollisionBetween(), detectCollisions(), getCollisionAction(), handleCollisionBetween(), and initCollisionOptions().
|
staticprivate |
Definition at line 1623 of file MSLane.h.
Referenced by detectCollisionBetween(), and initCollisionOptions().
|
staticprivate |
Definition at line 1621 of file MSLane.h.
Referenced by handleCollisionBetween(), and initCollisionOptions().
|
staticprotected |
Static dictionary to associate string-ids with objects.
Definition at line 1608 of file MSLane.h.
Referenced by clear(), dictionary(), dictionary(), dictSize(), fill(), and insertIDs().
|
protected |
The lane's edge, for routing only.
Definition at line 1505 of file MSLane.h.
Referenced by appropriate(), changeLanes(), detectCollisionBetween(), detectCollisions(), GUILane::drawGL(), GUILane::drawJunctionChangeProhibitions(), GUILane::drawLane2LaneConnections(), GUILane::drawLinkRule(), GUILane::drawLinkRules(), GUILane::drawMarkings(), GUILane::getClickPriority(), GUILane::getColorValue(), getEdge(), GUILane::getEdgeLaneNumber(), getFollowersOnConsecutive(), GUILane::getLoadedEdgeWeight(), getLogicalPredecessorLane(), getMeanSpeed(), getNextNormal(), getParallelLane(), getParallelOpposite(), GUILane::getParameterWindow(), GUILane::getScaleValue(), GUILane::getStoredEdgeTravelTime(), incorporateVehicle(), initRestrictions(), insertVehicle(), integrateNewVehicles(), isCrossing(), isInternal(), GUILane::isLaneOrEdgeSelected(), isNormal(), isWalkingArea(), mustCheckJunctionCollisions(), MSLane::by_connections_to_sorter::operator()(), saveState(), GUILane::setColor(), setFrictionCoefficient(), GUILane::setFunctionalColor(), setLength(), and setMaxSpeed().
|
staticprivate |
Definition at line 1624 of file MSLane.h.
Referenced by initCollisionOptions(), and insertVehicle().
|
mutableprotected |
followers on all sublanes as seen by vehicles on consecutive lanes (cached)
Definition at line 1568 of file MSLane.h.
Referenced by getFirstVehicleInformation().
|
mutableprotected |
time step for which myFollowerInfo was last updated
Definition at line 1573 of file MSLane.h.
Referenced by clearState(), and getFirstVehicleInformation().
|
protected |
Lane-wide friction coefficient [0..1].
Definition at line 1510 of file MSLane.h.
Referenced by getFrictionCoefficient(), and setFrictionCoefficient().
|
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(), getCanonicalPredecessorLane(), getCanonicalSuccessorLane(), Named::getID(), NBEdge::getLaneID(), NEMALogic::getPhaseObj(), ROEdge::getStoredEffort(), GNEPOI::getSumoBaseObject(), getSurroundingVehicles(), ROEdge::getTravelTime(), NBEdge::init(), MSSOTLTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), NEMALogic::init(), isInsertionSuccess(), NBNode::NBNode(), NBNode::NBNode(), MSE2Collector::notifyEnter(), MSE2Collector::notifyLeave(), MSE2Collector::notifyMove(), MSMeanData::openInterval(), NEMALogic::parseControllerType(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), NBEdge::setGeometry(), Named::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().
|
protected |
All direct predecessor lanes.
Definition at line 1532 of file MSLane.h.
Referenced by addIncomingLane(), getCanonicalPredecessorLane(), getFollowersOnConsecutive(), getIncomingLanes(), getLogicalPredecessorLane(), and getLogicalPredecessorLane().
|
protected |
The lane index.
Definition at line 1445 of file MSLane.h.
Referenced by GUILane::drawGL(), GUILane::drawJunctionChangeProhibitions(), GUILane::drawMarkings(), getIndex(), and setMaxSpeed().
|
staticprivate |
Definition at line 1618 of file MSLane.h.
Referenced by detectCollisions(), detectPedestrianJunctionCollision(), getIntermodalCollisionAction(), handleIntermodalCollisionBetween(), and initCollisionOptions().
|
staticprivate |
Definition at line 1622 of file MSLane.h.
Referenced by handleIntermodalCollisionBetween(), and initCollisionOptions().
|
protected |
whether this lane is an acceleration lane
Definition at line 1579 of file MSLane.h.
Referenced by isAccelLane().
|
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 1502 of file MSLane.h.
Referenced by GUILane::drawLinkRules(), getLaneStopOffsets(), getVehicleStopOffset(), and setLaneStopOffset().
|
protected |
the type of this lane
Definition at line 1582 of file MSLane.h.
Referenced by getLaneType(), and GUILane::getParameterWindow().
|
mutableprotected |
leaders on all sublanes as seen by approaching vehicles (cached)
Definition at line 1566 of file MSLane.h.
Referenced by getLastVehicleInformation().
|
mutableprotected |
time step for which myLeaderInfo was last updated
Definition at line 1571 of file MSLane.h.
Referenced by clearState(), and getLastVehicleInformation().
|
protected |
Lane length [m].
Definition at line 1494 of file MSLane.h.
Referenced by GUILane::addSecondaryShape(), detectCollisions(), freeInsertion(), getBruttoOccupancy(), GUILane::getColorValue(), getFirstVehicleInformation(), getFractionalVehicleLength(), getLength(), getNettoOccupancy(), getOppositePos(), GUILane::getParameterWindow(), GUILane::getScaleValue(), getSurroundingVehicles(), incorporateVehicle(), insertVehicle(), isInsertionSuccess(), setLength(), setPartialOccupation(), and GUILane::splitAtSegments().
|
protected |
precomputed myShape.length / myLength
Definition at line 1576 of file MSLane.h.
Referenced by getLengthGeometryFactor(), GUILane::getLengthGeometryFactor(), getLengthGeometryFactor(), interpolateGeometryPosToLanePos(), and interpolateLanePosToGeometryPos().
|
protected |
The lane's Links to its succeeding lanes and the default right-of-way rule, i.e. blocked or not blocked.
Definition at line 1560 of file MSLane.h.
Referenced by addLink(), appropriate(), clearState(), detectCollisions(), GUILane::drawArrows(), GUILane::drawLane2LaneConnections(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), executeMovements(), getCanonicalSuccessorLane(), getCrossingIndex(), getInternalFollowingLane(), getLinkCont(), getLinkTo(), getOutgoingViaLanes(), hasApproaching(), isLinkEnd(), isLinkEnd(), mustCheckJunctionCollisions(), saveState(), succLinkSec(), and ~MSLane().
|
mutableprotected |
Definition at line 1535 of file MSLane.h.
Referenced by getLogicalPredecessorLane().
|
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 1486 of file MSLane.h.
Referenced by clearState(), isInsertionSuccess(), planMovements(), resetManeuverReservation(), setManeuverReservation(), sortManeuverReservations(), and updateLeaderInfo().
|
privateinherited |
The key->value map.
Definition at line 139 of file Parameterised.h.
Referenced by Parameterised::clearParameter(), Parameterised::getDouble(), Parameterised::getDoubles(), Parameterised::getParameter(), Parameterised::getParametersMap(), Parameterised::getParametersStr(), Parameterised::hasParameter(), Parameterised::setParameter(), Parameterised::setParameters(), Parameterised::setParametersStr(), Parameterised::unsetParameter(), and Parameterised::writeParams().
|
protected |
Lane-wide speed limit [m/s].
Definition at line 1508 of file MSLane.h.
Referenced by addLeaders(), GUILane::getColorValue(), getMeanSpeed(), getMeanSpeedBike(), GUILane::getScaleValue(), getSpeedLimit(), getVehicleMaxSpeed(), and setMaxSpeed().
|
private |
This lane's move reminder.
Definition at line 1614 of file MSLane.h.
Referenced by addMoveReminder(), getMoveReminders(), and removeMoveReminder().
|
protected |
whether a collision check is currently needed
Definition at line 1590 of file MSLane.h.
Referenced by detectCollisions(), executeMovements(), incorporateVehicle(), integrateNewVehicles(), needsCollisionCheck(), requireCollisionCheck(), and setPartialOccupation().
|
protected |
The current length of all vehicles on this lane, excluding their minGaps.
Definition at line 1547 of file MSLane.h.
Referenced by clearState(), enteredByLaneChange(), getNettoOccupancy(), incorporateVehicle(), integrateNewVehicles(), leftByLaneChange(), removeVehicle(), and updateLengthSum().
|
protected |
The length of all vehicles that have left this lane in the current step (this lane, excluding their minGaps)
Definition at line 1553 of file MSLane.h.
Referenced by clearState(), executeMovements(), and updateLengthSum().
|
protected |
Unique numerical ID (set on reading by netload)
Definition at line 1436 of file MSLane.h.
Referenced by getNumericalID().
|
protected |
Definition at line 1593 of file MSLane.h.
Referenced by getOpposite(), integrateNewVehicles(), and setOpposite().
|
protected |
The original vClass permissions for this lane (before temporary modifications)
Definition at line 1526 of file MSLane.h.
Referenced by allowsVehicleClass(), resetPermissions(), and setPermissions().
|
protected |
the outline of the lane (optional)
Definition at line 1442 of file MSLane.h.
Referenced by GUILane::drawGL(), getOutlineShape(), MSLane(), and ~MSLane().
|
protected |
Definition at line 1491 of file MSLane.h.
Referenced by addParking(), clearState(), GUILane::drawGL(), executeMovements(), getParkingVehicles(), and removeParking().
|
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 entering vehicles are inserted at the front of this container and the leaving ones leave from the back.
Definition at line 1470 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().
|
protected |
Definition at line 1599 of file MSLane.h.
Referenced by GUILane::closeTraffic(), GUILane::getPopUpMenu(), hadPermissionChanges(), resetPermissions(), and setPermissions().
|
protected |
The vClass permissions for this lane.
Definition at line 1519 of file MSLane.h.
Referenced by allowsVehicleClass(), allowsVehicleClass(), GUILane::drawAsRailway(), GUILane::drawAsWaterway(), GUILane::drawGL(), GUILane::drawJunctionChangeProhibitions(), GUILane::drawMarkings(), GUILane::getColorValue(), getMaximumBrakeDist(), GUILane::getParameterWindow(), getPermissions(), resetPermissions(), and setPermissions().
|
protected |
Flag to recalculate the occupancy (including minGaps) after a change in minGap.
Definition at line 1556 of file MSLane.h.
Referenced by markRecalculateBruttoSum(), and updateLengthSum().
|
protected |
The vClass speed restrictions for this lane.
Definition at line 1529 of file MSLane.h.
Referenced by getVehicleMaxSpeed(), and initRestrictions().
|
protected |
the index of the rightmost sublane of this lane on myEdge
Definition at line 1587 of file MSLane.h.
Referenced by getRightmostSublane(), and setRightSideOnEdge().
|
protected |
the combined width of all lanes with lower index on myEdge
Definition at line 1585 of file MSLane.h.
Referenced by getCenterOnEdge(), getRightSideOnEdge(), and setRightSideOnEdge().
|
protected |
Definition at line 1602 of file MSLane.h.
Referenced by GUILane::getColorValue(), getRNG(), getRNGIndex(), getThreadIndex(), and MSLane().
|
staticprotected |
Definition at line 1610 of file MSLane.h.
Referenced by getNumRNGs(), getRNG(), initRNGs(), loadRNGState(), MSLane(), and saveRNGStates().
|
protected |
The shape of the lane.
Definition at line 1439 of file MSLane.h.
Referenced by geometryPositionAtOffset(), GUILane::getCenteringBoundary(), getShape(), GUILane::getShape(), getShape(), GUILane::GUILane(), and GUILane::setFunctionalColor().
|
protected |
Whether the current speed limit has been set through TraCI.
Definition at line 1516 of file MSLane.h.
Referenced by getVehicleMaxSpeed(), and setMaxSpeed().
|
protected |
Whether the current speed limit is set by a variable speed sign (VSS)
Definition at line 1513 of file MSLane.h.
Referenced by getVehicleMaxSpeed(), and setMaxSpeed().
|
private |
Definition at line 1780 of file MSLane.h.
Referenced by getStopWatch().
|
protected |
Container for lane-changing vehicles. After completion of lane-change- process, the containers will be swapped with myVehicles.
Definition at line 1474 of file MSLane.h.
Referenced by MSLaneChangerSublane::addOutsideLeaders(), anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), getLeader(), and swapAfterLaneChange().
|
protected |
Buffer for vehicles that moved from their previous lane onto this one. Integrated after all vehicles executed their moves.
Definition at line 1478 of file MSLane.h.
Referenced by checkBufferType(), empty(), executeMovements(), and integrateNewVehicles().
|
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 1458 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(), getVehiclesSecure(), GUILane::getVehiclesSecure(), getWaitingSeconds(), incorporateVehicle(), integrateNewVehicles(), isEmpty(), isInsertionSuccess(), loadState(), planMovements(), removeMoveReminder(), removeVehicle(), saveState(), setJunctionApproaches(), swapAfterLaneChange(), updateLengthSum(), and MSQueueExport::writeLane().
|
protected |
Lane width [m].
Definition at line 1497 of file MSLane.h.
Referenced by GUILane::drawArrows(), GUILane::drawDirectionIndicators(), GUILane::drawGL(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), getCenterOnEdge(), getFirstVehicleInformation(), getFollowersOnConsecutive(), getLastVehicleInformation(), GUILane::getParameterWindow(), getPartialBeyond(), getWidth(), GUILane::GUILane(), and planMovements().