![]() |
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 | vehicle_natural_position_sorter |
class | vehicle_position_sorter |
Sorts vehicles by their position (descending) More... | |
struct | VehPosition |
Public Types | |
enum | CollisionAction { COLLISION_ACTION_NONE, COLLISION_ACTION_WARN, COLLISION_ACTION_TELEPORT, COLLISION_ACTION_REMOVE } |
typedef std::vector< MSVehicle * > | VehCont |
Container for vehicles. More... | |
Public Member Functions | |
void | addApproachingLane (MSLane *lane, bool warnMultiCon) |
void | addIncomingLane (MSLane *lane, MSLink *viaLink) |
void | addParking (MSVehicle *veh) |
add parking vehicle. This should only used during state loading More... | |
void | addTo (const StoringVisitor &cont) const |
Adds this object to the given container. More... | |
bool | allowsVehicleClass (SUMOVehicleClass vclass) const |
virtual bool | appropriate (const MSVehicle *veh) |
void | clearParameter () |
Clears the parameter map. More... | |
virtual void | detectCollisions (SUMOTime timestep, const std::string &stage) |
Check if vehicles are too close. More... | |
bool | empty () const |
Returns true if there is not a single vehicle on the lane. More... | |
void | enteredByLaneChange (MSVehicle *v) |
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. More... | |
int | getCrossingIndex () const |
return the index of the link to the next crossing if this is walkingArea, else -1 More... | |
double | getDouble (const std::string &key, const double defaultValue) const |
Returns the value for a given key converted to a double. More... | |
MSEdge & | getEdge () const |
Returns the lane's edge. More... | |
MSLink * | getEntryLink () const |
Returns the entry link if this is an internal lane, else 0. More... | |
MSVehicle * | getFirstAnyVehicle () const |
returns the first vehicle that is fully or partially on this lane More... | |
MSVehicle * | getFirstFullVehicle () const |
returns the first vehicle for which this lane is responsible or 0 More... | |
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. More... | |
std::pair< MSVehicle *const, double > | getFollower (const MSVehicle *ego, double egoPos, double dist, bool ignoreMinorLinks) const |
Find follower vehicle for the given ego vehicle (which may be on the opposite direction lane) More... | |
MSLeaderDistanceInfo | getFollowersOnConsecutive (const MSVehicle *ego, double backOffset, bool allSublanes, double searchDist=-1, bool ignoreMinorLinks=false) const |
return the sublane followers with the largest missing rear gap among all predecessor lanes (within dist) More... | |
const std::string & | getID () const |
Returns the id. More... | |
const std::vector< IncomingLaneInfo > & | getIncomingLanes () const |
LinkState | getIncomingLinkState () const |
get the state of the link from the logical predecessor to this lane More... | |
MSVehicle * | getLastAnyVehicle () const |
returns the last vehicle that is fully or partially on this lane More... | |
MSVehicle * | getLastFullVehicle () const |
returns the last vehicle for which this lane is responsible or 0 More... | |
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. More... | |
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. More... | |
void | getLeadersOnConsecutive (double dist, double seen, double speed, const MSVehicle *ego, const std::vector< MSLane *> &bestLaneConts, MSLeaderDistanceInfo &result) const |
Returns the immediate leaders and the distance to them (as getLeaderOnConsecutive but for the sublane case) More... | |
const MSLinkCont & | getLinkCont () const |
returns the container with all links !!! More... | |
MSLink * | getLinkTo (const MSLane *) const |
returns the link to the given lane or 0, if it is not connected More... | |
MSLane * | getLogicalPredecessorLane () const |
get the most likely precedecessor lane (sorted using by_connections_to_sorter). The result is cached in myLogicalPredecessorLane More... | |
MSLane * | getLogicalPredecessorLane (const MSEdge &fromEdge) const |
return the (first) predecessor lane from the given edge More... | |
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 More... | |
const MSEdge * | getNextNormal () const |
Returns the lane's follower if it is an internal lane, the edge of the lane otherwise. More... | |
MSLane * | getOpposite () const |
return the opposite direction lane for lane changing or 0 More... | |
std::pair< MSVehicle *const, double > | getOppositeFollower (const MSVehicle *ego) const |
std::pair< MSVehicle *const, double > | getOppositeLeader (const MSVehicle *ego, double dist, bool oppositeDir) const |
double | getOppositePos (double pos) const |
return the corresponding position on the opposite lane More... | |
const std::vector< std::pair< const MSLane *, const MSEdge * > > | getOutgoingViaLanes () const |
get the list of outgoing lanes More... | |
MSLane * | getParallelLane (int offset) const |
Returns the lane with the given offset parallel to this one or 0 if it does not exist. More... | |
const std::string | getParameter (const std::string &key, const std::string &defaultValue="") const |
Returns the value for a given key. More... | |
const std::map< std::string, std::string > & | getParametersMap () const |
Returns the inner key/value map. More... | |
const std::set< const MSVehicle * > & | getParkingVehicles () const |
retrieve the parking vehicles (see GUIParkingArea) More... | |
MSVehicle * | getPartialBehind (const MSVehicle *ego) const |
MSLeaderInfo | getPartialBeyond () const |
get all vehicles that are inlapping from consecutive edges More... | |
int | getRightmostSublane () const |
double | getRightSideOnEdge () const |
double | getStopOffset (const MSVehicle *veh) const |
Returns vehicle class specific stopOffset for the vehicle. More... | |
const std::map< SVCPermissions, double > & | getStopOffsets () const |
Returns vehicle class specific stopOffsets. More... | |
std::set< MSVehicle * > | getSurroundingVehicles (double startPos, double downstreamDist, double upstreamDist, std::shared_ptr< LaneCoverageInfo > checkedLanes) const |
Returns all vehicles closer than downstreamDist along the along the road network starting on the given position. Predecessor lanes are searched upstream for the given upstreamDistance. More... | |
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. More... | |
std::vector< const MSLink * > | getUpcomingLinks (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. More... | |
std::set< MSVehicle * > | getVehiclesInRange (double a, double b) const |
Returns all vehicles on the lane overlapping with the interval [a,b]. More... | |
void | initRestrictions () |
initialized vClass-specific speed limits More... | |
bool | isApproachedFrom (MSEdge *const edge) |
bool | isApproachedFrom (MSEdge *const edge, MSLane *const lane) |
bool | isEmpty () const |
bool | isInternal () const |
bool | isLinkEnd (MSLinkCont::const_iterator &i) const |
bool | isLinkEnd (MSLinkCont::iterator &i) |
virtual bool | isSelected () const |
whether this lane is selected in the GUI More... | |
bool | knowsParameter (const std::string &key) const |
Returns whether the parameter is known. More... | |
void | leftByLaneChange (MSVehicle *v) |
MSLane (const std::string &id, double maxSpeed, double length, MSEdge *const edge, int numericalID, const PositionVector &shape, double width, SVCPermissions permissions, int index, bool isRampAccel) | |
Constructor. More... | |
bool | needsCollisionCheck () const |
short-circut collision check if nothing changed since the last check More... | |
virtual void | removeParking (MSVehicle *veh) |
remove parking vehicle. This must be syncrhonized when running with GUI More... | |
virtual MSVehicle * | removeVehicle (MSVehicle *remVehicle, MSMoveReminder::Notification notification, bool notify=true) |
void | requireCollisionCheck () |
require another collision check due to relevant changes in the simulation More... | |
void | resetPermissions (long long transientID) |
void | setID (const std::string &newID) |
resets the id More... | |
void | setLength (double val) |
Sets a new length for the lane (used by TraCI only) More... | |
void | setMaxSpeed (double val) |
Sets a new maximum speed for the lane (used by TraCI and MSCalibrator) More... | |
void | setParameter (const std::string &key, const std::string &value) |
Sets a parameter. More... | |
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. More... | |
void | setRightSideOnEdge (double value, int rightmostSublane) |
void | setStopOffsets (std::map< SVCPermissions, double > stopOffsets) |
Set vehicle class specific stopOffsets. More... | |
void | sortManeuverReservations () |
sorts myManeuverReservations More... | |
void | sortPartialVehicles () |
sorts myPartialVehicles More... | |
void | unsetParameter (const std::string &key) |
Removes a parameter. More... | |
void | updateParameter (const std::map< std::string, std::string > &mapArg) |
Adds or updates all given parameters from the map. More... | |
void | visit (const LaneStoringVisitor &cont) const |
Callback for visiting the lane when traversing an RTree. More... | |
void | writeParams (OutputDevice &device) const |
write Params in the given outputdevice More... | |
virtual | ~MSLane () |
Destructor. More... | |
Additional initialisation | |
void | addLink (MSLink *link) |
Delayed initialization. More... | |
void | addNeigh (const std::string &id) |
Adds a neighbor to this lane. More... | |
interaction with MSMoveReminder | |
virtual void | addMoveReminder (MSMoveReminder *rem) |
Add a move-reminder to move-reminder container. More... | |
const std::vector< MSMoveReminder *> & | getMoveReminders () const |
Return the list of this lane's move reminders. More... | |
Vehicle insertion | |
bool | insertVehicle (MSVehicle &v) |
Tries to insert the given vehicle. More... | |
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) More... | |
bool | checkFailure (const MSVehicle *aVehicle, double &speed, double &dist, const double nspeed, const bool patchSpeed, const std::string errorMsg) 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) More... | |
bool | freeInsertion (MSVehicle &veh, double speed, double posLat, MSMoveReminder::Notification notification=MSMoveReminder::NOTIFICATION_DEPARTED) |
Tries to insert the given vehicle on any place. More... | |
void | forceVehicleInsertion (MSVehicle *veh, double pos, MSMoveReminder::Notification notification, double posLat=0) |
Inserts the given vehicle at the given position. More... | |
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. More... | |
virtual void | resetPartialOccupation (MSVehicle *v) |
Removes the information about a vehicle lapping into this lane. More... | |
virtual void | setManeuverReservation (MSVehicle *v) |
Registers the lane change intentions (towards this lane) for the given vehicle. More... | |
virtual void | resetManeuverReservation (MSVehicle *v) |
Unregisters a vehicle, which previously registered for maneuvering into this lane. More... | |
const MSLeaderInfo & | getLastVehicleInformation (const MSVehicle *ego, double latOffset, double minPos=0, bool allowCached=true) const |
Returns the last vehicles on the lane. More... | |
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 More... | |
Access to vehicles | |
int | getVehicleNumber () const |
Returns the number of vehicles on this lane (for which this lane is responsible) More... | |
int | getVehicleNumberWithPartials () const |
Returns the number of vehicles on this lane (including partial occupators) More... | |
int | getPartialVehicleNumber () const |
Returns the number of vehicles partially on this lane (for which this lane is not responsible) More... | |
virtual const VehCont & | getVehiclesSecure () const |
Returns the vehicles container; locks it for microsimulation. More... | |
AnyVehicleIterator | anyVehiclesBegin () const |
begin iterator for iterating over all vehicles touching this lane in downstream direction More... | |
AnyVehicleIterator | anyVehiclesEnd () const |
end iterator for iterating over all vehicles touching this lane in downstream direction More... | |
AnyVehicleIterator | anyVehiclesUpstreamBegin () const |
begin iterator for iterating over all vehicles touching this lane in upstream direction More... | |
AnyVehicleIterator | anyVehiclesUpstreamEnd () const |
end iterator for iterating over all vehicles touching this lane in upstream direction More... | |
virtual void | releaseVehicles () const |
Allows to use the container for microsimulation again. More... | |
Atomar value getter | |
int | getNumericalID () const |
Returns this lane's numerical id. More... | |
const PositionVector & | getShape () const |
Returns this lane's shape. More... | |
double | getLengthGeometryFactor () const |
return shape.length() / myLength More... | |
bool | isAccelLane () const |
return whether this lane is an acceleration lane More... | |
double | interpolateLanePosToGeometryPos (double lanePos) const |
const Position | geometryPositionAtOffset (double offset, double lateralOffset=0) const |
double | interpolateGeometryPosToLanePos (double geometryPos) const |
double | getVehicleMaxSpeed (const SUMOVehicle *const veh) const |
Returns the lane's maximum speed, given a vehicle's speed limit adaptation. More... | |
double | getSpeedLimit () const |
Returns the lane's maximum allowed speed. More... | |
double | getLength () const |
Returns the lane's length. More... | |
SVCPermissions | getPermissions () const |
Returns the vehicle class permissions for this lane. More... | |
double | getWidth () const |
Returns the lane's width. More... | |
int | getIndex () const |
Returns the lane's index. More... | |
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. More... | |
virtual void | setJunctionApproaches (const SUMOTime t) |
Register junction approaches for all vehicles after velocities have been planned. More... | |
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). More... | |
virtual bool | executeMovements (SUMOTime t, std::vector< MSLane *> &lanesWithVehiclesToIntegrate) |
Executes planned vehicle movements with regards to right-of-way. More... | |
virtual bool | integrateNewVehicle (SUMOTime t) |
Insert buffered vehicle into the real lane. More... | |
Current state retrieval | |
double | getMeanSpeed () const |
Returns the mean speed on this lane. More... | |
double | getWaitingSeconds () const |
Returns the overall waiting time on this lane. More... | |
double | getBruttoOccupancy () const |
Returns the brutto (including minGaps) occupancy of this lane during the last step. More... | |
double | getNettoOccupancy () const |
Returns the netto (excluding minGaps) occupancy of this lane during the last step (including minGaps) More... | |
double | getBruttoVehLenSum () const |
Returns the sum of lengths of vehicles, including their minGaps, which were on the lane during the last step. More... | |
double | getCO2Emissions () const |
Returns the sum of last step CO2 emissions. More... | |
double | getCOEmissions () const |
Returns the sum of last step CO emissions. More... | |
double | getPMxEmissions () const |
Returns the sum of last step PMx emissions. More... | |
double | getNOxEmissions () const |
Returns the sum of last step NOx emissions. More... | |
double | getHCEmissions () const |
Returns the sum of last step HC emissions. More... | |
double | getFuelConsumption () const |
Returns the sum of last step fuel consumption. More... | |
double | getElectricityConsumption () const |
Returns the sum of last step electricity consumption. More... | |
double | getHarmonoise_NoiseEmissions () const |
Returns the sum of last step noise emissions. More... | |
State saving/loading | |
void | saveState (OutputDevice &out) |
Saves the state of this lane into the given stream. More... | |
void | loadState (std::vector< std::string > &vehIDs, MSVehicleControl &vc) |
Loads the state of this segment with the given parameters. More... | |
Static Public Member Functions | |
static void | clear () |
Clears the dictionary. More... | |
static bool | dictionary (const std::string &id, MSLane *lane) |
Static (sic!) container methods {. More... | |
static MSLane * | dictionary (const std::string &id) |
Returns the MSLane associated to the key id. More... | |
static int | dictSize () |
Returns the number of stored lanes. More... | |
template<class RTREE > | |
static void | fill (RTREE &into) |
Fills the given RTree with lane instances. More... | |
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 More... | |
static void | initCollisionOptions (const OptionsCont &oc) |
static void | insertIDs (std::vector< std::string > &into) |
Adds the ids of all stored lanes into the given vector. More... | |
static MSLinkCont::const_iterator | succLinkSec (const SUMOVehicle &veh, int nRouteSuccs, const MSLane &succLinkSource, const std::vector< MSLane *> &conts) |
static bool | teleportOnCollision () |
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 More... | |
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 More... | |
bool | detectCollisionBetween (SUMOTime timestep, const std::string &stage, MSVehicle *collider, MSVehicle *victim, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toRemove, std::set< const MSVehicle *> &toTeleport) const |
detect whether there is a collision between the two vehicles More... | |
void | detectPedestrianJunctionCollision (const MSVehicle *collider, const PositionVector &colliderBoundary, const MSLane *foeLane, SUMOTime timestep, const std::string &stage) |
detect whether a vehicle collids with pedestrians on the junction More... | |
double | getDepartPosLat (const MSVehicle &veh) |
double | getDepartSpeed (const MSVehicle &veh, bool &patchSpeed) |
double | getMaximumBrakeDist () const |
compute maximum braking distance on this lane More... | |
void | handleCollisionBetween (SUMOTime timestep, const std::string &stage, MSVehicle *collider, MSVehicle *victim, double gap, double latGap, std::set< const MSVehicle *, ComparatorNumericalIdLess > &toRemove, std::set< const MSVehicle *> &toTeleport) const |
take action upon collision More... | |
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. More... | |
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) More... | |
virtual void | swapAfterLaneChange (SUMOTime t) |
moves myTmpVehicles int myVehicles after a lane change procedure More... | |
Protected Attributes | |
std::map< MSEdge *, std::vector< MSLane * > > | myApproachingLanes |
All direct internal and direct (disregarding internal predecessors) non-internal predecessor lanes of this lane. More... | |
double | myBruttoVehicleLengthSum |
The current length of all vehicles on this lane, including their minGaps. More... | |
MSLane * | myCanonicalPredecessorLane |
Similar to LogicalPredecessorLane,. More... | |
MSLane * | myCanonicalSuccessorLane |
Main successor lane,. More... | |
MSEdge *const | myEdge |
The lane's edge, for routing only. More... | |
MSLeaderInfo | myFollowerInfo |
followers on all sublanes as seen by vehicles on consecutive lanes (cached) More... | |
SUMOTime | myFollowerInfoTime |
time step for which myFollowerInfo was last updated More... | |
std::string | myID |
The name of the object. More... | |
std::vector< IncomingLaneInfo > | myIncomingLanes |
All direct predecessor lanes. More... | |
int | myIndex |
The lane index. More... | |
const bool | myIsRampAccel |
whether this lane is an acceleration lane More... | |
MSLeaderInfo | myLeaderInfo |
leaders on all sublanes as seen by approaching vehicles (cached) More... | |
SUMOTime | myLeaderInfoTime |
time step for which myLeaderInfo was last updated More... | |
MSLeaderInfo | myLeaderInfoTmp |
double | myLength |
Lane length [m]. More... | |
const double | myLengthGeometryFactor |
precomputed myShape.length / myLength More... | |
MSLinkCont | 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. More... | |
double | myMaxSpeed |
Lane-wide speedlimit [m/s]. More... | |
bool | myNeedsCollisionCheck |
whether a collision check is currently needed More... | |
std::vector< std::string > | myNeighs |
double | myNettoVehicleLengthSum |
The current length of all vehicles on this lane, excluding their minGaps. More... | |
int | myNumericalID |
Unique numerical ID (set on reading by netload) More... | |
SVCPermissions | myOriginalPermissions |
The original vClass permissions for this lane (before temporary modifications) More... | |
std::set< const MSVehicle * > | 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. More... | |
std::map< long long, SVCPermissions > | myPermissionChanges |
SVCPermissions | myPermissions |
The vClass permissions for this lane. More... | |
const std::map< SUMOVehicleClass, double > * | myRestrictions |
The vClass speed restrictions for this lane. More... | |
int | myRightmostSublane |
the index of the rightmost sublane of this lane on myEdge More... | |
double | myRightSideOnEdge |
the combined width of all lanes with lower index on myEdge More... | |
PositionVector | myShape |
The shape of the lane. More... | |
std::map< SVCPermissions, double > | myStopOffsets |
VehCont | myTmpVehicles |
Container for lane-changing vehicles. After completion of lane-change- process, the containers will be swapped with myVehicles. More... | |
VehCont | myVehBuffer |
Buffer for vehicles that moved from their previous lane onto this one. Integrated after all vehicles executed their moves. More... | |
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) More... | |
const double | myWidth |
Lane width [m]. More... | |
Static Protected Attributes | |
static DictType | myDict |
Static dictionary to associate string-ids with objects. More... | |
Private Member Functions | |
MSLane (const MSLane &) | |
invalidated copy constructor More... | |
MSLane & | operator= (const MSLane &) |
invalidated assignment operator More... | |
Private Attributes | |
std::vector< MSMoveReminder *> | myMoveReminders |
This lane's move reminder. More... | |
Static Private Attributes | |
static bool | myCheckJunctionCollisions |
static CollisionAction | myCollisionAction |
the action to take on collisions More... | |
static double | myCollisionMinGapFactor |
static SUMOTime | myCollisionStopTime |
Friends | |
class | AnyVehicleIterator |
class | MSLaneChanger |
needs access to myTmpVehicles (this maybe should be done via double-buffering!!!) More... | |
class | MSLaneChangerSublane |
class | MSQueueExport |
class | MSXMLRawOut |
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 |
typedef std::vector<MSVehicle*> MSLane::VehCont |
MSLane::MSLane | ( | const std::string & | id, |
double | maxSpeed, | ||
double | length, | ||
MSEdge *const | edge, | ||
int | numericalID, | ||
const PositionVector & | shape, | ||
double | width, | ||
SVCPermissions | permissions, | ||
int | index, | ||
bool | isRampAccel | ||
) |
Constructor.
[in] | id | The lane's id |
[in] | maxSpeed | The speed allowed on 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 171 of file MSLane.cpp.
References initRestrictions().
|
virtual |
|
private |
invalidated copy constructor
void MSLane::addApproachingLane | ( | MSLane * | lane, |
bool | warnMultiCon | ||
) |
Definition at line 2079 of file MSLane.cpp.
References getEdge(), Named::getID(), MSEdge::isInternal(), myApproachingLanes, and WRITE_WARNING.
Referenced by NLHandler::addConnection(), and getIncomingLanes().
Definition at line 2069 of file MSLane.cpp.
References getLength(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, myIncomingLanes, and MSLane::IncomingLaneInfo::viaLink.
Referenced by NLHandler::addConnection(), and allowsVehicleClass().
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 216 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 234 of file MSLane.cpp.
References myMoveReminders, and myVehicles.
Referenced by MSMoveReminder::MSMoveReminder().
void MSLane::addNeigh | ( | const std::string & | id | ) |
Adds a neighbor to this lane.
[in] | id | The lane's id |
Definition at line 222 of file MSLane.cpp.
References Named::getID(), getLength(), getOpposite(), myNeighs, toString(), and WRITE_WARNING.
void MSLane::addParking | ( | MSVehicle * | veh | ) |
add parking vehicle. This should only used during state loading
Definition at line 2871 of file MSLane.cpp.
References myParkingVehicles.
Referenced by getCenterOnEdge(), and MSVehicleTransfer::loadState().
|
inlineinherited |
Adds this object to the given container.
Definition at line 123 of file Named.h.
References Named::StoringVisitor::add().
|
inline |
Definition at line 772 of file MSLane.h.
References addIncomingLane(), and myPermissions.
Referenced by MSVehicle::addStop(), MSLaneChanger::changeOpposite(), MSPModel_NonInteracting::PState::getPosition(), MSVehicle::updateBestLanes(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().
|
inline |
begin iterator for iterating over all vehicles touching this lane in downstream direction
Definition at line 412 of file MSLane.h.
References AnyVehicleIterator, myPartialVehicles, myTmpVehicles, and myVehicles.
Referenced by detectCollisions(), getFollowersOnConsecutive(), getLastVehicleInformation(), getLeader(), MSLink::getLeaderInfo(), and MSPModel_Striping::getVehicleObstacles().
|
inline |
end iterator for iterating over all vehicles touching this lane in downstream direction
Definition at line 418 of file MSLane.h.
References AnyVehicleIterator, myPartialVehicles, myTmpVehicles, and myVehicles.
Referenced by detectCollisions(), getFollowersOnConsecutive(), getLeader(), MSLink::getLeaderInfo(), and MSPModel_Striping::getVehicleObstacles().
|
inline |
begin iterator for iterating over all vehicles touching this lane in upstream direction
Definition at line 424 of file MSLane.h.
References AnyVehicleIterator, 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 430 of file MSLane.h.
References AnyVehicleIterator.
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 1786 of file MSLane.cpp.
References MSVehicle::getBestLanes(), MSVehicle::getBestLanesContinuation(), MSVehicle::getLaneIndex(), MSEdge::isInternal(), myEdge, myLinks, MSBaseVehicle::succEdge(), and succLinkSec().
Referenced by executeMovements(), and requireCollisionCheck().
bool MSLane::checkFailure | ( | const MSVehicle * | aVehicle, |
double & | speed, | ||
double & | dist, | ||
const double | nspeed, | ||
const bool | patchSpeed, | ||
const std::string | errorMsg | ||
) | const |
Definition at line 577 of file MSLane.cpp.
References MSCFModel::brakeGap(), MSInsertionControl::descheduleDeparture(), MSGlobals::gCheckRoutes, MSVehicle::getCarFollowModel(), MSCFModel::getEmergencyDecel(), MSBaseVehicle::getID(), MSNet::getInsertionControl(), MSNet::getInstance(), MSVehicleType::getMinGap(), MSBaseVehicle::getVehicleType(), MIN2(), WRITE_ERROR, and WRITE_WARNING.
Referenced by checkForPedestrians(), getMoveReminders(), and isInsertionSuccess().
|
protected |
check whether pedestrians on this lane interfere with vehicle insertion
Definition at line 3498 of file MSLane.cpp.
References checkFailure(), DEBUG_COND2, MSVehicle::getCarFollowModel(), getEdge(), Named::getID(), MSBaseVehicle::getID(), MSVehicle::getLateralPositionOnLane(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSCFModel::getMaxDecel(), MSPModel::getModel(), MSVehicle::getRightSideOnLane(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), MSPModel::nextBlocking(), SIMTIME, and MSCFModel::stopSpeed().
Referenced by isInsertionSuccess().
|
static |
Clears the dictionary.
Definition at line 1753 of file MSLane.cpp.
References myDict.
Referenced by MSNet::clearAll(), and getEdge().
|
inherited |
Clears the parameter map.
Definition at line 99 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NLHandler::beginEdgeParsing(), GNECrossing::setGenericParametersStr(), GNEConnection::setGenericParametersStr(), GNEPoly::setGenericParametersStr(), GNELane::setGenericParametersStr(), GNEJunction::setGenericParametersStr(), GNEPOI::setGenericParametersStr(), GNEEdge::setGenericParametersStr(), and GNEAdditional::setGenericParametersStr().
|
protected |
detect whether there is a collision between the two vehicles
Definition at line 1403 of file MSLane.cpp.
References COLLISION_ACTION_TELEPORT, DEBUG_COND, DEBUG_COND2, DELTA_T, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSVehicle::getCenterOnEdge(), MSCFModel::getCollisionMinGapFactor(), Named::getID(), MSBaseVehicle::getID(), MSVehicle::getInfluencer(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), MSGlobals::gLaneChangeDuration, handleCollisionBetween(), MSVehicle::hasInfluencer(), MSAbstractLaneChangeModel::haveLateralDynamics(), MSAbstractLaneChangeModel::isChangingLanes(), MSAbstractLaneChangeModel::isOpposite(), MSVehicle::Influencer::isRemoteAffected(), myCollisionAction, myCollisionMinGapFactor, NUMERICAL_EPS, and SIMTIME.
Referenced by detectCollisions().
|
virtual |
Check if vehicles are too close.
Reimplemented in GUILane.
Definition at line 1203 of file MSLane.cpp.
References MSVehicleTransfer::add(), anyVehiclesBegin(), anyVehiclesEnd(), COLLISION_ACTION_NONE, DEBUG_COND, DEBUG_COND2, detectCollisionBetween(), detectPedestrianJunctionCollision(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBoundingBox(), MSVehicle::getBoundingPoly(), Named::getID(), MSBaseVehicle::getID(), Named::getIDSecure(), MSVehicleTransfer::getInstance(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), getLastVehicleInformation(), MSVehicleType::getLength(), MSPModel::getModel(), MSEdge::getPersons(), MSVehicle::getPositionOnLane(), MSVehicle::getRightSideOnEdge(), getRightSideOnEdge(), MSAbstractLaneChangeModel::getShadowLane(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), handleCollisionBetween(), MSPModel::hasPedestrians(), MSAbstractLaneChangeModel::haveLateralDynamics(), MSEdge::isInternal(), myCheckJunctionCollisions, myCollisionAction, myEdge, myLinks, myNeedsCollisionCheck, myPartialVehicles, myVehicles, MSPModel::nextBlocking(), MSMoveReminder::NOTIFICATION_TELEPORT, MSMoveReminder::NOTIFICATION_VAPORIZED, MSLeaderInfo::numSublanes(), MSVehicle::onRemovalFromNet(), PositionVector::overlapsWith(), MSVehicleControl::registerCollision(), removeVehicle(), MSVehicleControl::scheduleVehicleRemoval(), SIMTIME, time2string(), toString(), and WRITE_WARNING.
Referenced by GUILane::detectCollisions(), and requireCollisionCheck().
|
protected |
detect whether a vehicle collids with pedestrians on the junction
Definition at line 1370 of file MSLane.cpp.
References DEBUG_COND, getEdge(), Named::getID(), MSBaseVehicle::getID(), MSNet::getInstance(), MSPModel::getModel(), MSEdge::getPersons(), MSEdge::getSortedPersons(), MSNet::getVehicleControl(), MSPModel::hasPedestrians(), PositionVector::overlapsWith(), MSVehicleControl::registerCollision(), SIMTIME, time2string(), and WRITE_WARNING.
Referenced by detectCollisions().
|
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 1730 of file MSLane.cpp.
References myDict.
Referenced by NLHandler::addConnection(), NLHandler::addLane(), MSRouteHandler::addStop(), MSVehicle::addStop(), getEdge(), libsumo::Lane::getLane(), NLTriggerBuilder::getLane(), NLDetectorBuilder::getLaneChecking(), NLShapeHandler::getLanePos(), MSE2Collector::getLanes(), getOpposite(), MSEdge::getStopPosition(), MSPedestrianPushButton::loadPushButtons(), MSVehicleTransfer::loadState(), libsumo::Vehicle::moveTo(), MSTriggeredRerouter::myStartElement(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), NLHandler::parseLanes(), TraCIServerAPI_Lane::processSet(), and MSE2Collector::recalculateDetectorLength().
|
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 1742 of file MSLane.cpp.
References myDict.
|
inlinestatic |
Returns the number of stored lanes.
Definition at line 691 of file MSLane.h.
References enteredByLaneChange(), fill(), getFirstAnyVehicle(), getFirstFullVehicle(), getLastAnyVehicle(), getLastFullVehicle(), getParallelLane(), insertIDs(), isEmpty(), isInternal(), isLinkEnd(), leftByLaneChange(), myDict, removeVehicle(), resetPermissions(), setPermissions(), and succLinkSec().
|
inline |
Returns true if there is not a single vehicle on the lane.
Definition at line 622 of file MSLane.h.
References myVehBuffer, myVehicles, setLength(), and setMaxSpeed().
Referenced by MSQueueExport::writeLane().
void MSLane::enteredByLaneChange | ( | MSVehicle * | v | ) |
Definition at line 2513 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.
Referenced by dictSize(), and 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 1593 of file MSLane.cpp.
References MSVehicleTransfer::add(), appropriate(), COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, MSVehicle::collisionStopTime(), DEBUG_COND2, MSVehicle::executeMove(), MSVehicle::getBestLanesContinuation(), getCollisionAction(), getEdge(), Named::getID(), MSBaseVehicle::getID(), MSVehicleTransfer::getInstance(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicleType::getLength(), getLength(), MSVehicleType::getLengthWithGap(), MSVehicle::getPositionOnLane(), getSpeedLimit(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), MSVehicle::getWaitingTime(), MSGlobals::gLateralResolution, MSGlobals::gTimeToGridlock, MSGlobals::gTimeToGridlockHighways, MSVehicle::hasArrived(), MSVehicle::isParking(), MSVehicle::isStopped(), MSEdge::isVaporizing(), myBruttoVehicleLengthSum, myLinks, myNeedsCollisionCheck, myNettoVehicleLengthSum, myParkingVehicles, myVehBuffer, myVehicles, MSMoveReminder::NOTIFICATION_ARRIVED, MSMoveReminder::NOTIFICATION_VAPORIZED, MSVehicle::onRemovalFromNet(), MSVehicleControl::registerCollision(), MSVehicleControl::registerTeleportJam(), MSVehicleControl::registerTeleportWrongLane(), MSVehicleControl::registerTeleportYield(), MSVehicle::resumeFromStopping(), MSVehicleControl::scheduleVehicleRemoval(), SIMTIME, succLinkSec(), time2string(), and WRITE_WARNING.
Referenced by GUILane::executeMovements(), and getIndex().
|
static |
Fills the given RTree with lane instances.
Definition at line 1770 of file MSLane.cpp.
References PositionVector::getBoxBoundary(), getShape(), Boundary::grow(), LANE_RTREE_QUAL, myDict, Boundary::xmax(), Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().
Referenced by libsumo::Helper::collectObjectsInRange(), dictSize(), and MSNet::getLanesRTree().
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 964 of file MSLane.cpp.
References getDepartSpeed(), MSVehicle::getSpeed(), MSBaseVehicle::hasDeparted(), incorporateVehicle(), myVehicles, and MSVehicle::updateBestLanes().
Referenced by MSLaneChanger::changeOpposite(), getMoveReminders(), libsumo::Vehicle::moveTo(), and MSVehicle::Influencer::postProcessRemoteControl().
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 362 of file MSLane.cpp.
References MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), getFirstFullVehicle(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getMissingRearGap(), MSVehicle::getPositionOnLane(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), isInsertionSuccess(), MIN2(), myLength, myPartialVehicles, myVehicles, MSMoveReminder::NOTIFICATION_TELEPORT, POSITION_EPS, and MSVehicle::setTentativeLaneAndPosition().
Referenced by MSVehicleTransfer::checkInsertions(), getMoveReminders(), and insertVehicle().
|
inline |
Definition at line 478 of file MSLane.h.
References interpolateLanePosToGeometryPos(), myShape, and PositionVector::positionAtOffset().
Referenced by GUIBusStop::addAccess(), GUIE3Collector::MyWrapper::buildDefinition(), MSVehicle::computeAngle(), GUILane::debugDrawFoeIntersections(), GUIVehicle::drawAction_drawRailCarriages(), GUIEdge::drawMesoVehicles(), MSStoppingPlace::getAccessDistance(), MSVehicle::getBackPosition(), NLShapeHandler::getLanePos(), MEVehicle::getPosition(), MSVehicle::getPosition(), MSVehicle::getPositionAlongBestLanes(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), MSPerson::MSPersonStage_Access::MSPersonStage_Access(), GUIMEInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), and MSVehicle::validatePosition().
double MSLane::getBruttoOccupancy | ( | ) | const |
Returns the brutto (including minGaps) occupancy of this lane during the last step.
Definition at line 2531 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), MIN2(), myBruttoVehicleLengthSum, myLength, myPartialVehicles, myVehicles, and releaseVehicles().
Referenced by MSLCM_LC2013::_wantsChange(), GUILane::getColorValue(), GUILane::getParameterWindow(), GUILane::getScaleValue(), MSEdge::insertVehicle(), and setStopOffsets().
|
inline |
Returns the sum of lengths of vehicles, including their minGaps, which were on the lane during the last step.
Definition at line 966 of file MSLane.h.
References getCO2Emissions(), getCOEmissions(), getElectricityConsumption(), getFuelConsumption(), getHarmonoise_NoiseEmissions(), getHCEmissions(), getNOxEmissions(), getPMxEmissions(), and myBruttoVehicleLengthSum.
Referenced by MSVehicle::checkRewindLinkLanes().
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 2443 of file MSLane.cpp.
References myCanonicalPredecessorLane, Named::myID, and myIncomingLanes.
Referenced by getEntryLink(), getFirstInternalInConnection(), MSRailSignal::init(), MSE2Collector::selectLanes(), and setStopOffsets().
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 2463 of file MSLane.cpp.
References myCanonicalSuccessorLane, Named::myID, and myLinks.
Referenced by MSDevice_SSM::classifyEncounter(), MSE2Collector::selectLanes(), and setStopOffsets().
|
inline |
Definition at line 1035 of file MSLane.h.
References addParking(), getFollower(), getOpposite(), getOppositeFollower(), getOppositeLeader(), getOppositePos(), myRightSideOnEdge, myWidth, removeParking(), sortManeuverReservations(), and sortPartialVehicles().
Referenced by MSVehicle::getCenterOnEdge(), and MSAbstractLaneChangeModel::startLaneChangeManeuver().
double MSLane::getCO2Emissions | ( | ) | const |
Returns the sum of last step CO2 emissions.
Definition at line 2590 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by getBruttoVehLenSum(), libsumo::Lane::getCO2Emission(), GUILane::getColorValue(), GUILane::getScaleValue(), and MSFullExport::writeLane().
double MSLane::getCOEmissions | ( | ) | const |
Returns the sum of last step CO emissions.
Definition at line 2602 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by getBruttoVehLenSum(), libsumo::Lane::getCOEmission(), GUILane::getColorValue(), GUILane::getScaleValue(), and MSFullExport::writeLane().
|
inlinestatic |
Definition at line 1136 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 2334 of file MSLane.cpp.
References MSCFModel::brakeGap(), DEBUG_COND2, MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), Named::getID(), MSBaseVehicle::getID(), MSBaseVehicle::getImpatience(), MSNet::getInstance(), getLastAnyVehicle(), MSVehicle::getLateralPositionOnLane(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::getSafeFollowSpeed(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), isInternal(), isLinkEnd(), MAX2(), NUMERICAL_EPS, SIMTIME, succLinkSec(), and TIME2STEPS.
Referenced by MSLaneChanger::checkChange(), and setStopOffsets().
int MSLane::getCrossingIndex | ( | ) | const |
return the index of the link to the next crossing if this is walkingArea, else -1
Definition at line 2520 of file MSLane.cpp.
References myLinks.
Referenced by getIndex().
|
protected |
Definition at line 477 of file MSLane.cpp.
References DEPART_POSLAT_CENTER, DEPART_POSLAT_DEFAULT, DEPART_POSLAT_GIVEN, DEPART_POSLAT_LEFT, DEPART_POSLAT_RANDOM, DEPART_POSLAT_RIGHT, SUMOVehicleParameter::departPosLat, SUMOVehicleParameter::departPosLatProcedure, MSBaseVehicle::getParameter(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), getWidth(), and RandHelper::rand().
Referenced by insertVehicle().
|
protected |
Definition at line 450 of file MSLane.cpp.
References DEPART_SPEED_DEFAULT, DEPART_SPEED_GIVEN, DEPART_SPEED_MAX, DEPART_SPEED_RANDOM, SUMOVehicleParameter::departSpeed, SUMOVehicleParameter::departSpeedProcedure, MSBaseVehicle::getParameter(), getVehicleMaxSpeed(), and RandHelper::rand().
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 81 of file Parameterised.cpp.
References Parameterised::myMap, StringUtils::toDouble(), and WRITE_WARNING.
Referenced by MSDevice_Battery::buildVehicleDevices(), 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(), and MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus().
|
inline |
Returns the lane's edge.
Definition at line 640 of file MSLane.h.
References clear(), dictionary(), getFirstInternalInConnection(), getNextNormal(), and myEdge.
Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), LaneStoringVisitor::add(), addApproachingLane(), MSRouteHandler::addPersonTrip(), MSRouteHandler::addStop(), MSVehicle::addStop(), MSSwarmTrafficLightLogic::allowLine(), libsumo::Helper::applySubscriptionFilters(), MSSOTLE2Sensors::buildSensorForLane(), MSVehicle::canReverse(), MSLaneChanger::checkChange(), MSLink::checkContOff(), checkForPedestrians(), MSVehicle::checkLinkLeader(), MSVehicle::checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), MSEdge::closeBuilding(), GUILane::closeTraffic(), MSDevice_Tripinfo::computeLengthAndDuration(), MSLCM_SL2015::computeSpeedGain(), GUIDetectorBuilder::createInductLoop(), NLDetectorBuilder::createInductLoop(), detectPedestrianJunctionCollision(), MSLCM_LC2013::distanceAlongNextRoundabout(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtMove(), MSVehicle::executeMove(), executeMovements(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSStoppingPlace::getAccessDistance(), MSStoppingPlace::getAccessPos(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), libsumo::Vehicle::getDistance(), MSVehicle::getDistanceToPosition(), libsumo::Vehicle::getDrivingDistance(), MSTransportable::Stage_Driving::getEdge(), libsumo::Lane::getEdgeID(), getFollowersOnConsecutive(), MSLinkContHelper::getInternalFollowingEdge(), MSVehicle::getLaneIndex(), MSVehicle::getLatOffset(), MSLink::getLeaderInfo(), GUIVehicle::getLeftSublaneOnEdge(), getLogicalPredecessorLane(), MSPModel_Striping::PState::getNextEdge(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), libsumo::Vehicle::getNextTLS(), MSVehicle::getPosition(), GUIVehicle::getRightSublaneOnEdge(), libsumo::Vehicle::getRoadID(), MSLCM_LC2013::getRoundaboutAheadInfo(), MSAbstractLaneChangeModel::getShadowDirection(), MSVehicle::getSpaceTillLastStanding(), MSPModel_Remote::handlePedestrianLane(), MSVehicle::Influencer::implicitDeltaPosRemote(), MSVehicle::Influencer::implicitSpeedRemote(), MSVehicle::influenceChangeDecision(), MSRailSignal::init(), isInsertionSuccess(), MSVehicle::isLeader(), MSLCM_SL2015::keepLatGap(), MSLink::lastWasContMajor(), MSVehicle::leaveLane(), MESegment::limitedControlOverride(), MSPedestrianPushButton::loadPushButtons(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), libsumo::Vehicle::moveTo(), MSPModel_Striping::PState::moveToNextLane(), MSPModel_Striping::PState::moveToXY(), libsumo::Helper::moveToXYMap(), MSTriggeredRerouter::notifyEnter(), MSDevice_SSM::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSDevice_SSM::notifyLeave(), GUIViewTraffic::onCmdAddRerouter(), GUIViewTraffic::onCmdCloseEdge(), MSLane::outgoing_lane_priority_sorter::operator()(), MSLane::edge_finder::operator()(), NLTriggerBuilder::parseAndBuildCalibrator(), MSRouteHandler::parseWalkPositions(), MSVehicle::passingMinor(), MSLCM_DK2008::patchSpeed(), MSVehicle::planMoveInternal(), MSInternalJunction::postloadInit(), MSLCM_SL2015::prepareStep(), MSContainer::MSContainerStage_Driving::proceed(), MSPerson::MSPersonStage_Driving::proceed(), MSPerson::MSPersonStage_Access::proceed(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkAproaches(), MSVehicle::processNextStop(), MSPModel_Striping::PState::PState(), MSVehicle::replaceRoute(), MSTriggeredRerouter::rerouteParkingArea(), MSTransportable::rerouteParkingArea(), MSVehicle::rerouteParkingArea(), MSVehicle::resumeFromStopping(), libsumo::Lane::setAllowed(), libsumo::Lane::setDisallowed(), MSLink::setRequestInformation(), MSAbstractLaneChangeModel::startLaneChangeManeuver(), MSVehicle::unsafeLinkAhead(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateCFRelated(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSPModel_Striping::PState::walk(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSVehicle::willStop(), and MSFCDExport::write().
double MSLane::getElectricityConsumption | ( | ) | const |
Returns the sum of last step electricity consumption.
Definition at line 2662 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by getBruttoVehLenSum(), GUILane::getColorValue(), libsumo::Lane::getElectricityConsumption(), GUILane::getScaleValue(), and MSFullExport::writeLane().
MSLink * MSLane::getEntryLink | ( | ) | const |
Returns the entry link if this is an internal lane, else 0.
Definition at line 2003 of file MSLane.cpp.
References getCanonicalPredecessorLane(), getLinkTo(), and isInternal().
Referenced by MSDevice_SSM::classifyEncounter(), MSLink::getLengthBeforeCrossing(), getUpcomingLinks(), and requireCollisionCheck().
MSVehicle * MSLane::getFirstAnyVehicle | ( | ) | const |
returns the first vehicle that is fully or partially on this lane
Definition at line 1912 of file MSLane.cpp.
References MSVehicle::getPositionOnLane(), myPartialVehicles, and myVehicles.
Referenced by dictSize().
MSVehicle * MSLane::getFirstFullVehicle | ( | ) | const |
returns the first vehicle for which this lane is responsible or 0
Definition at line 1889 of file MSLane.cpp.
References myVehicles.
Referenced by dictSize(), and freeInsertion().
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 1712 of file MSLane.cpp.
References getCanonicalPredecessorLane(), getLength(), and isInternal().
Referenced by MSDevice_SSM::classifyEncounter(), and getEdge().
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 1055 of file MSLane.cpp.
References MSLeaderInfo::addLeader(), anyVehiclesUpstreamBegin(), DEBUG_COND2, MSNet::getCurrentTimeStep(), MSBaseVehicle::getID(), MSNet::getInstance(), MSVehicle::getLatOffset(), MSVehicle::getPositionOnLane(), MSVehicle::isFrontOnLane(), myFollowerInfo, myFollowerInfoTime, myLeaderInfoTmp, and myLength.
Referenced by getFollowersOnConsecutive(), and getMoveReminders().
std::pair< MSVehicle *const, double > MSLane::getFollower | ( | const MSVehicle * | ego, |
double | egoPos, | ||
double | dist, | ||
bool | ignoreMinorLinks | ||
) | 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 3380 of file MSLane.cpp.
References anyVehiclesUpstreamBegin(), anyVehiclesUpstreamEnd(), DEBUG_COND2, getFollowersOnConsecutive(), Named::getID(), MSBaseVehicle::getID(), MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), and MSBaseVehicle::getVehicleType().
Referenced by libsumo::Helper::applySubscriptionFilters(), getCenterOnEdge(), getOppositeFollower(), and getOppositeLeader().
MSLeaderDistanceInfo MSLane::getFollowersOnConsecutive | ( | const MSVehicle * | ego, |
double | backOffset, | ||
bool | allSublanes, | ||
double | searchDist = -1 , |
||
bool | ignoreMinorLinks = false |
||
) | 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 2922 of file MSLane.cpp.
References MSCriticalFollowerDistanceInfo::addFollower(), anyVehiclesBegin(), anyVehiclesEnd(), DEBUG_COND2, gDebugFlag1, getEdge(), getFirstVehicleInformation(), Named::getID(), MSBaseVehicle::getID(), Named::getIDSecure(), getIncomingLanes(), MSVehicle::getLane(), MSVehicle::getLatOffset(), MSVehicleType::getLength(), getLength(), getMaximumBrakeDist(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), getRightSideOnEdge(), MSBaseVehicle::getVehicleType(), MSVehicle::isFrontOnLane(), MSLane::IncomingLaneInfo::lane, MSLane::IncomingLaneInfo::length, MAX2(), myIncomingLanes, NUMERICAL_EPS, MSLeaderInfo::numFreeSublanes(), SIMTIME, MSLeaderInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), and MSLane::IncomingLaneInfo::viaLink.
Referenced by getFollower(), getMissingRearGap(), isInsertionSuccess(), and setStopOffsets().
double MSLane::getFuelConsumption | ( | ) | const |
Returns the sum of last step fuel consumption.
Definition at line 2650 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by getBruttoVehLenSum(), GUILane::getColorValue(), libsumo::Lane::getFuelConsumption(), GUILane::getScaleValue(), and MSFullExport::writeLane().
double MSLane::getHarmonoise_NoiseEmissions | ( | ) | const |
Returns the sum of last step noise emissions.
Definition at line 2674 of file MSLane.cpp.
References getVehiclesSecure(), releaseVehicles(), and HelpersHarmonoise::sum().
Referenced by getBruttoVehLenSum(), GUILane::getColorValue(), libsumo::Lane::getNoiseEmission(), GUILane::getScaleValue(), and MSFullExport::writeLane().
double MSLane::getHCEmissions | ( | ) | const |
Returns the sum of last step HC emissions.
Definition at line 2638 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by getBruttoVehLenSum(), GUILane::getColorValue(), libsumo::Lane::getHCEmission(), GUILane::getScaleValue(), and MSFullExport::writeLane().
|
inlineinherited |
Returns the id.
Definition at line 78 of file Named.h.
Referenced by NIImporter_SUMO::_loadNetwork(), MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaders(), MSPModel_Remote::add(), LaneStoringVisitor::add(), MSPModel_Striping::add(), MSVehicleTransfer::add(), PCPolyContainer::add(), MSDetectorControl::add(), Named::StoringVisitor::add(), ShapeContainer::add(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), addApproachingLane(), NBRailwayTopologyAnalyzer::addBidiEdge(), NBRailwayTopologyAnalyzer::addBidiEdgesForStops(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), NIXMLConnectionsHandler::addCrossing(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), RONet::addEdge(), NBParkingCont::addEdges2Keep(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), addNeigh(), RONet::addNode(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), NBEdge::addRestrictedLane(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), ROVehicle::addStop(), MSRouteHandler::addStop(), MSVehicle::addStop(), MSNet::addStoppingPlace(), NBEdge::addStraightConnections(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), MSVehicle::addTraciStopAtStoppingPlace(), AGActivityTripWriter::addTrip(), NIXMLConnectionsHandler::addWalkingArea(), NBRailwayTopologyAnalyzer::allBroken(), NBEdge::append(), NBEdgeCont::appendRailwayTurnarounds(), libsumo::Helper::applySubscriptionFilters(), NBPTStopCont::assignAndCreatNewPTStopAsNeeded(), NBPTStopCont::assignPTStopToEdgeOfClosestPlatform(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSTransportable::Stage_Waiting::beginEventOutput(), MSTransportable::Stage_Driving::beginEventOutput(), MSPModel_Striping::blockedAtDist(), MSLink::blockedAtTime(), MSLink::blockedByFoe(), NLEdgeControlBuilder::build(), NIVisumTL::build(), RODFNet::buildApproachList(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), NBNode::buildCrossings(), NBNode::buildCrossingsAndWalkingAreas(), NIImporter_VISUM::buildDistrictNode(), NLDetectorBuilder::buildE2Detector(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), GNETLSEditorFrame::buildIinternalLanes(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSSimpleTrafficLightLogic::changeStepAndDuration(), MSEdge::checkAndRegisterBiDirEdge(), checkForPedestrians(), NBEdge::checkGeometry(), NBEdgeCont::checkGrade(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), NBEdgeCont::checkOverlap(), MSDevice_Battery::checkParam(), MSE2Collector::checkPositioning(), MSVehicle::checkRewindLinkLanes(), MSSwarmTrafficLightLogic::choosePolicy(), MSDevice_SSM::classifyEncounter(), NBTrafficLightLogic::closeBuilding(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBLoadedSUMOTLDef::collectEdges(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBEdge::computeAngle(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNode::computeNodeShape(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSSOTLE2Sensors::countVehicles(), MSDevice_SSM::createEncounters(), GUINet::createTLWrapper(), NBEdge::debugPrintConnections(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), detectCollisionBetween(), detectCollisions(), detectPedestrianJunctionCollision(), NIVissimDistrictConnection::dict_BuildDistricts(), NBEdge::divideOnEdges(), NBEdge::divideSelectedLanesOnEdges(), MSTransportable::Stage_Waiting::endEventOutput(), MSTransportable::Stage_Driving::endEventOutput(), MSE3Collector::enter(), MSVehicle::enterLaneAtMove(), METriggeredCalibrator::execute(), MSCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSTrafficLightLogic::SwitchCommand::execute(), MSVehicle::executeMove(), executeMovements(), NBRailwayTopologyAnalyzer::extendBidiEdges(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), NBNodeCont::feasibleCluster(), libsumo::Helper::findCloserLane(), MSDevice_SSM::findFoeConflictLane(), libsumo::Simulation::findIntermodalRoute(), MSDevice_SSM::findSurroundingVehicles(), MSDevice_SSM::flushConflicts(), NBTrafficLightDefinition::forbids(), NBRampsComputer::fulfillsRampConstraints(), NBPTStopCont::generateBidiStops(), NBNodeCont::generateNodeClusters(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSPModel_Striping::getArbitraryPath(), GNEConnection::getAttribute(), MSVehicle::getBackPosition(), MSVehicle::getBackPositionOnLane(), libsumo::Vehicle::getBestLanes(), NBOwnTLDef::getBestPair(), NBRailwayTopologyAnalyzer::getBrokenRailNodes(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), GUILane::getColorValue(), NBEdge::getConnection(), NBEdge::getConnectionRef(), libsumo::TrafficLight::getControlledLinks(), getCriticalLeader(), NBEdge::getCrossingAngle(), NBNodeShapeComputer::getDefaultRadius(), NBTrafficLightDefinition::getDescription(), RODFNet::getDetectorEdge(), libsumo::Lane::getEdgeID(), MSMeanData::getEdgeID(), NBEdge::getFirstNonPedestrianLane(), MSPModel_Remote::getFirstPedestrianLane(), getFollower(), getFollowersOnConsecutive(), libsumo::LaneArea::getLaneID(), libsumo::InductionLoop::getLaneID(), libsumo::Vehicle::getLaneID(), MSParkingArea::getLastFreePosWithReservation(), getLastVehicleInformation(), MSVehicle::getLatOffset(), getLeader(), MSLink::getLeaderInfo(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), getLinkTo(), MSTLLogicControl::TLSLogicVariants::getLogicInstantiatingOff(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), getOppositeFollower(), getOppositeLeader(), getOppositePos(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIMEInductLoop::MyWrapper::getParameterWindow(), GUIVehicle::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), GUILane::getParameterWindow(), getPartialBehind(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBPTStopCont::getReverseStop(), libsumo::Person::getRoadID(), libsumo::Vehicle::getRoadID(), libsumo::Vehicle::getRouteID(), MSContainer::MSContainerStage_Driving::getStageSummary(), MSPerson::MSPersonStage_Walking::getStageSummary(), MSContainer::MSContainerStage_Tranship::getStageSummary(), MSTransportable::Stage_Trip::getStageSummary(), MSPerson::MSPersonStage_Driving::getStageSummary(), MSPerson::MSPersonStage_Access::getStageSummary(), MSTransportable::Stage_Waiting::getStageSummary(), MSNet::getStoppingPlaceID(), getSurroundingVehicles(), getUpcomingLinks(), MSDevice_SSM::getUpstreamVehicles(), MSPModel_Striping::getVehicleObstacles(), MSDevice_SSM::getVehiclesOnJunction(), MSTransportable::Stage_Driving::getWaitingDescription(), MSVehicleControl::getWaitingVehicle(), MSLink::getZipperSpeed(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBEdgeCont::guessSidewalks(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), handleCollisionBetween(), NBEdgeCont::ignoreFilterMatch(), MSVehicle::ignoreRed(), MSDeterministicHiLevelTrafficLightLogic::init(), MSRailSignal::init(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), NBEdge::init(), MSE2Collector::initAuxiliaries(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), MSEdge::insertVehicle(), integrateNewVehicle(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isDestination(), RODFNet::isFalseSource(), isInsertionSuccess(), MSVehicle::isLeader(), MESegment::isOpen(), RODFNet::isSource(), NIImporter_VISUM::isSplitEdge(), MSSOTLTrafficLightLogic::isThresholdPassed(), MESegment::jamThresholdForSpeed(), NBNodeShapeComputer::joinSameDirectionEdges(), NBEdgeCont::joinSameNodeConnectingEdges(), MSAbstractLaneChangeModel::laneChangeOutput(), MSE3Collector::leave(), MSE3Collector::leaveFront(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), NIImporter_ArcView::load(), MSPedestrianPushButton::loadCrossingEdgeMap(), NIImporter_OpenDrive::loadNetwork(), MSPedestrianPushButton::loadPushButtons(), NBEdge::MainDirections::MainDirections(), ODDistrictCont::makeDistricts(), MSE2Collector::makeVehicleInfo(), GNEJunction::markAsModified(), MSSOTLE2Sensors::meanVehiclesSpeed(), METriggeredCalibrator::METriggeredCalibrator(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), NBRampsComputer::moveRampRight(), MSPModel_Striping::PState::moveToNextLane(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), MSCalibrator::MSCalibrator(), MSChargingStation::MSChargingStation(), MSDevice_Battery::MSDevice_Battery(), MSE2Collector::MSE2Collector(), NBLoadedTLDef::myCompute(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), NIXMLEdgesHandler::myStartElement(), MSCalibrator::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSPModel_Striping::nextBlocking(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Bluelight::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Example::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSTriggeredRerouter::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSE2Collector::notifyEnter(), MSDevice_SSM::notifyEnter(), MSDevice_Transportable::notifyLeave(), MSDevice_Bluelight::notifyLeave(), MSDevice_Example::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE2Collector::notifyLeave(), MSDevice_SSM::notifyLeave(), MSDevice_Bluelight::notifyMove(), MSDevice_Example::notifyMove(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSDevice_BTsender::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSE2Collector::notifyMove(), MSDevice_SSM::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), GNETLSEditorFrame::TLSFile::onCmdLoadTLSProgram(), GNETLSEditorFrame::TLSFile::onCmdSaveTLSProgram(), GUIViewTraffic::onGamingClick(), GNEViewNet::onLeftBtnPress(), MSLink::opened(), RORouteHandler::openRoute(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), RODFNet::idComp::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), NBContHelper::edge_by_angle_to_nodeShapeCentroid_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), NBRequest::oppositeLeftTurnConflict(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NLTriggerBuilder::parseAndBuildCalibrator(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSVehicle::planMove(), MSVehicle::planMoveInternal(), planMovements(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), NBEdge::prepareEdgePriorities(), AGStreet::print(), MSDevice_SSM::processEncounters(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkAproaches(), MSVehicle::processNextStop(), TraCIServerAPI_Vehicle::processSet(), NBEdgeCont::processSplits(), MEVehicle::processStop(), NIXMLNodesHandler::processTrafficLightDefinitions(), NWWriter_SUMO::prohibitionConnection(), MSDelayBasedTrafficLightLogic::proposeProlongation(), NBNodeCont::pruneClusterFringe(), MSPModel_Striping::PState::PState(), MSOffTrafficLightLogic::rebuildPhase(), NBEdgeCont::recheckLanes(), NBEdge::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdgeCont::remapIDs(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), MSLink::removeApproaching(), GNEJunction::removeConnectionsFrom(), NBNodeCont::removeIsolatedRoads(), MSVehicle::removePassedDriveItems(), MSCalibrator::removePending(), NBNode::removeSelfLoops(), GNEJunction::removeTLSConnections(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::rename(), NBEdgeCont::rename(), GNENet::renameEdge(), GNENet::renameJunction(), RORouteDef::repairCurrentRoute(), NBConnection::replaceFrom(), GNEJunction::replaceIncomingConnections(), MSVehicle::replaceParkingArea(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), NLEdgeControlBuilder::reportCurrentEdgeOrLane(), MSBaseVehicle::reroute(), MSTriggeredRerouter::rerouteParkingArea(), MSVehicle::rerouteParkingArea(), resetManeuverReservation(), resetPartialOccupation(), NBEdge::restoreRestrictedLane(), GNEEdge::retrieveGNEConnection(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), NBRailwayTopologyAnalyzer::reverseEdges(), NBPTLineCont::reviseStops(), MSPerson::MSPersonStage_Walking::routeOutput(), MSPerson::MSPersonStage_Driving::routeOutput(), RONet::saveAndRemoveRoutesUntil(), MSPersonDevice_Routing::saveState(), MSDevice_Routing::saveState(), MSDevice::saveState(), MSDevice_Vehroutes::saveState(), MSDevice_Tripinfo::saveState(), MSBaseVehicle::saveState(), saveState(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSLink::setApproaching(), MSTransportable::Stage_Trip::setArrived(), NBNodeCont::setAsTLControlled(), GNEEdge::setAttribute(), NBRequest::setBlocking(), MSChargingStation::setChargeDelay(), MSChargingStation::setChargingPower(), NBEdge::setControllingTLInformation(), NLEdgeControlBuilder::setDefaultStopOffsets(), MSChargingStation::setEfficency(), setManeuverReservation(), MSDevice_Battery::setMaximumBatteryCapacity(), NBEdge::setNodeBorder(), NIXMLEdgesHandler::setNodes(), setPartialOccupation(), MSDevice_Battery::setPowerMax(), MSLink::setRequestInformation(), MSTLLogicControl::TLSLogicVariants::setStateInstantiatingOnline(), NBEdge::setStopOffsets(), MSDevice_Battery::setStoppingTreshold(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdge::shiftPositionAtNode(), NBNode::sortEdges(), sortManeuverReservations(), NBEdgeCont::splitAt(), IntermodalNetwork< E, L, N, V >::splitEdge(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSStopOut::stopStarted(), succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MELoop::teleportVehicle(), NGNet::toNB(), METriggeredCalibrator::tryEmit(), MSSOTLTrafficLightLogic::trySwitch(), MSDevice_SSM::update(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateCFRelated(), MSSOTLTrafficLightLogic::updateCTS(), NLEdgeControlBuilder::updateCurrentLaneStopOffsets(), MSVehicle::updateDriveItems(), GNETLSEditorFrame::TLSJunction::updateJunctionDescription(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSSwarmTrafficLightLogic::updateSensitivities(), MSAbstractLaneChangeModel::updateTargetLane(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), NBNodeTypeComputer::validateRailCrossings(), MSPModel_Striping::PState::walk(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), NBParking::write(), MSBatteryExport::write(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), MSLink::writeApproaching(), NBSign::writeAsPOI(), NWWriter_DlrNavteq::writeConnectedLanes(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_SUMO::writeInternalConnections(), NWWriter_OpenDrive::writeInternalEdge(), writeInterval(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_OpenDrive::writeNormalEdge(), NWWriter_DlrNavteq::writeProhibitedManoeuvres(), NWWriter_SUMO::writeRoundabout(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_DlrNavteq::writeTrafficSignals(), MSFCDExport::writeTransportable(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), PointOfInterest::writeXML(), SUMOPolygon::writeXML(), MSRouteProbe::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSE2Collector::writeXMLOutput(), and RONet::~RONet().
|
inlinestaticinherited |
get an identifier for Named-like object which may be Null
Definition at line 71 of file Named.h.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChanger::changeOpposite(), MSVehicle::checkRewindLinkLanes(), MSLaneChanger::continueChange(), detectCollisions(), MSVehicle::getBackPositionOnLane(), NBOwnTLDef::getBestPair(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), NBEdge::Connection::getDescription(), getFollowersOnConsecutive(), MSVehicle::getLatOffset(), getLeaderOnConsecutive(), GUIVehicle::getParameterWindow(), MSLaneChanger::getRealLeader(), NBEdge::init(), isInsertionSuccess(), MESegment::isOpen(), joinNamedToString(), joinNamedToStringSorting(), MSPModel_Striping::PState::moveToNextLane(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), operator<<(), NBEdge::recheckLanes(), MSTriggeredRerouter::rerouteParkingArea(), MSLCM_SL2015::saveBlockerLength(), MSLCM_LC2013::saveBlockerLength(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), toString(), MSLeaderInfo::toString(), MSLeaderDistanceInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), MSVehicle::updateBestLanes(), and MSAbstractLaneChangeModel::updateShadowLane().
|
inline |
Definition at line 785 of file MSLane.h.
References addApproachingLane(), getStopOffset(), isApproachedFrom(), and myIncomingLanes.
Referenced by getFollowersOnConsecutive(), MSLogicJunction::getInternalLanes(), MSNoLogicJunction::getInternalLanes(), MSLink::getInternalLengthsBefore(), MSLink::getLeaderInfo(), MSPModel_Striping::getNextLaneObstacles(), MSPModel_Striping::getNextWalkingArea(), getSurroundingVehicles(), MSRailSignal::init(), MSLink::isExitLinkAfterInternalJunction(), MSVehicle::isLeader(), MSLane::incoming_lane_priority_sorter::operator()(), MSVehicle::passingMinor(), MSVehicle::planMoveInternal(), MSInternalJunction::postloadInit(), and MSLink::setRequestInformation().
LinkState MSLane::getIncomingLinkState | ( | ) | const |
get the state of the link from the logical predecessor to this lane
Definition at line 2484 of file MSLane.cpp.
References MSLinkContHelper::getConnectingLink(), getLogicalPredecessorLane(), MSLink::getState(), and LINKSTATE_DEADEND.
Referenced by setStopOffsets().
|
inline |
Returns the lane's index.
Definition at line 537 of file MSLane.h.
References executeMovements(), getCrossingIndex(), integrateNewVehicle(), myIndex, planMovements(), setJunctionApproaches(), and updateLeaderInfo().
Referenced by MSLCM_SL2015::_wantsChangeSublane(), libsumo::Helper::applySubscriptionFilters(), GUILane::drawLinkNo(), MSCalibrator::execute(), libsumo::Vehicle::getLaneIndex(), MSLink::getLeaderInfo(), MSAbstractLaneChangeModel::getShadowDirection(), MSLink::getZipperSpeed(), MSEdge::insertVehicle(), MSCalibrator::myStartElement(), MSDevice_Vehroutes::notifyEnter(), MSDevice_Bluelight::notifyMove(), MSLink::opened(), MSLaneChangerSublane::startChangeSublane(), and MSLaneChangerSublane::updateChanger().
MSVehicle * MSLane::getLastAnyVehicle | ( | ) | const |
returns the last vehicle that is fully or partially on this lane
Definition at line 1898 of file MSLane.cpp.
References myPartialVehicles, and myVehicles.
Referenced by MSVehicle::checkRewindLinkLanes(), dictSize(), MSLaneChanger::getColumnleader(), getCriticalLeader(), lastInsertion(), and MSLink::maybeOccupied().
MSVehicle * MSLane::getLastFullVehicle | ( | ) | const |
returns the last vehicle for which this lane is responsible or 0
Definition at line 1880 of file MSLane.cpp.
References myVehicles.
Referenced by dictSize().
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 1002 of file MSLane.cpp.
References MSLeaderInfo::addLeader(), anyVehiclesBegin(), DEBUG_COND2, gDebugFlag1, MSNet::getCurrentTimeStep(), Named::getID(), MSBaseVehicle::getID(), MSNet::getInstance(), MSVehicle::getLatOffset(), MSVehicle::getPositionOnLane(), myLeaderInfo, myLeaderInfoTime, myLeaderInfoTmp, and MSLeaderInfo::toString().
Referenced by detectCollisions(), getLeadersOnConsecutive(), getMoveReminders(), 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 2143 of file MSLane.cpp.
References anyVehiclesBegin(), anyVehiclesEnd(), MSCFModel::brakeGap(), DEBUG_COND2, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), Named::getID(), MSBaseVehicle::getID(), getLeaderOnConsecutive(), getLength(), MSVehicleType::getMinGap(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), gPrecision, myTmpVehicles, myVehicles, and toString().
Referenced by libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::checkChange(), getOppositeFollower(), getOppositeLeader(), lastInsertion(), and setStopOffsets().
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 2208 of file MSLane.cpp.
References MSCFModel::brakeGap(), DEBUG_COND2, gDebugFlag1, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), Named::getID(), MSBaseVehicle::getID(), Named::getIDSecure(), MSBaseVehicle::getImpatience(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLateralPositionOnLane(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), isInternal(), MSVehicle::isLeader(), MAX2(), myPartialVehicles, NUMERICAL_EPS, succLinkSec(), TIME2STEPS, and toString().
Referenced by getLeader(), MSVehicle::getLeader(), and setStopOffsets().
void MSLane::getLeadersOnConsecutive | ( | double | dist, |
double | seen, | ||
double | speed, | ||
const MSVehicle * | ego, | ||
const std::vector< MSLane *> & | bestLaneConts, | ||
MSLeaderDistanceInfo & | result | ||
) | const |
Returns the immediate leaders and the distance to them (as getLeaderOnConsecutive but for the sublane case)
Definition at line 3084 of file MSLane.cpp.
References MSLeaderDistanceInfo::addLeader(), MSCFModel::brakeGap(), DEBUG_COND2, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), Named::getID(), MSBaseVehicle::getID(), MSBaseVehicle::getImpatience(), MSNet::getInstance(), getLastVehicleInformation(), MSVehicle::getLateralPositionOnLane(), MSVehicle::getLatOffset(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSVehicle::isFrontOnLane(), MSVehicle::isLeader(), isLinkEnd(), MAX2(), MIN2(), myPartialVehicles, NUMERICAL_EPS, MSLeaderInfo::numFreeSublanes(), MSLeaderInfo::numSublanes(), SIMTIME, succLinkSec(), TIME2STEPS, MSLeaderInfo::toString(), and MSLink::LinkLeader::vehAndGap.
Referenced by setStopOffsets().
|
inline |
Returns the lane's length.
Definition at line 514 of file MSLane.h.
References myLength.
Referenced by MSVehicle::adaptLaneEntering2MoveReminder(), MSVehicle::adaptToLeaders(), NLTriggerBuilder::addAccess(), NLHandler::addConnection(), MSPModel_Striping::addCrossingVehs(), addIncomingLane(), addNeigh(), MSVehicle::addStop(), libsumo::Helper::applySubscriptionFilters(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), NLDetectorBuilder::buildE2Detector(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), MSVehicle::canReverse(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChange(), MSE2Collector::checkPositioning(), MSVehicle::checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::classifyEncounter(), GUILane::debugDrawFoeIntersections(), MSLCM_LC2013::distanceAlongNextRoundabout(), MSPModel_Striping::PState::distToLaneEnd(), GUIVehicle::drawAction_drawRailCarriages(), GUIEdge::drawMesoVehicles(), MSVehicle::executeMove(), executeMovements(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), freeInsertion(), GUILane::getColorValue(), MSLaneChanger::getColumnleader(), getCriticalLeader(), MSVehicle::getDistanceToPosition(), MSE2Collector::getEstimateQueueLength(), getFirstInternalInConnection(), getFollowersOnConsecutive(), MSLink::getInternalLengthsAfter(), MSLink::getInternalLengthsBefore(), libsumo::Helper::getLaneChecking(), NLShapeHandler::getLanePos(), getLeader(), MSVehicle::getLeader(), MSLink::getLeaderInfo(), getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), getLeadersOnConsecutive(), libsumo::Lane::getLength(), MSLink::getLengthBeforeCrossing(), MSLink::getLengthsBeforeCrossing(), MSPModel_Striping::getNextLaneObstacles(), libsumo::Vehicle::getNextTLS(), getOppositePos(), NLTriggerBuilder::getPosition(), MSVehicle::getPositionAlongBestLanes(), NLDetectorBuilder::getPositionChecking(), MSLaneChanger::getRealLeader(), MSVehicle::getRerouteOrigin(), MSLCM_LC2013::getRoundaboutAheadInfo(), MSVehicle::getSafeFollowSpeed(), MSVehicle::getSpaceTillLastStanding(), getSurroundingVehicles(), libsumo::Lane::getTraveltime(), getUpcomingLinks(), MSPModel_Striping::getVehicleObstacles(), handleCollisionBetween(), MSLCM_LC2013::informFollower(), MSRailSignal::init(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSE2Collector::initAuxiliaries(), MSPModel_Striping::initWalkingAreaPaths(), insertVehicle(), isInsertionSuccess(), lastInsertion(), MSLink::maybeOccupied(), MSPModel_Striping::moveInDirectionOnLane(), MSPModel_Striping::PState::moveToNextLane(), libsumo::Helper::moveToXYMap(), MSCalibrator::MSCalibrator(), MSE2Collector::MSE2Collector(), NLTriggerBuilder::parseAndBeginParkingArea(), NLTriggerBuilder::parseAndBuildChargingStation(), MSRouteHandler::parseWalkPositions(), MSVehicle::planMoveInternal(), MSVehicle::Influencer::postProcessRemoteControl(), MSVehicle::processLaneAdvances(), MSE2Collector::recalculateDetectorLength(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSVehicle::setBlinkerInformation(), MSLink::setRequestInformation(), MSVehicle::unsafeLinkAhead(), MSVehicle::updateBestLanes(), MSVehicle::validatePosition(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSMeanData::writeEdge(), and MSQueueExport::writeLane().
|
inline |
return shape.length() / myLength
Definition at line 461 of file MSLane.h.
References myLengthGeometryFactor.
const MSLinkCont & MSLane::getLinkCont | ( | ) | const |
returns the container with all links !!!
Definition at line 1975 of file MSLane.cpp.
References myLinks.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSPModel_Striping::addCrossingVehs(), MSDevice_SSM::classifyEncounter(), MSLCM_SL2015::computeSublaneShift(), MSLink::contIntersect(), GUILane::debugDrawFoeIntersections(), MSLCM_LC2013::distanceAlongNextRoundabout(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSVehicle::getBestLanesContinuation(), MSLinkContHelper::getConnectingLink(), MSLink::getCorrespondingExitLink(), libsumo::Lane::getInternalFoes(), MSLinkContHelper::getInternalFollowingEdge(), MSLinkContHelper::getInternalFollowingLane(), MSLink::getInternalLengthsAfter(), MSLink::getLeaderInfo(), MSLink::getLengthsBeforeCrossing(), MESegment::getLink(), libsumo::Lane::getLinkNumber(), libsumo::Lane::getLinks(), MESegment::getMaxPenaltySeconds(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextWalkingArea(), MSVehicle::getPositionAlongBestLanes(), getSurroundingVehicles(), MSDevice_SSM::getVehiclesOnJunction(), MSRailSignal::init(), MSVehicle::planMoveInternal(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::processLaneAdvances(), MSEdge::recalcCache(), requireCollisionCheck(), MSVehicle::setBlinkerInformation(), MSLink::setRequestInformation(), MSVehicle::updateBestLanes(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().
returns the link to the given lane or 0, if it is not connected
Definition at line 1982 of file MSLane.cpp.
References Named::getID(), isInternal(), and myLinks.
Referenced by MSVehicle::enterLaneAtMove(), MSDevice_SSM::findFoeConflictLane(), getEntryLink(), MSVehicle::getPositionAlongBestLanes(), getUpcomingLinks(), MSRailSignal::init(), MSE2Collector::initAuxiliaries(), MSLane::incoming_lane_priority_sorter::operator()(), MSE2Collector::recalculateDetectorLength(), requireCollisionCheck(), MSE2Collector::selectLanes(), and MSVehicle::updateDriveItems().
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 2407 of file MSLane.cpp.
References getEdge(), MSEdge::getPredecessors(), myEdge, myIncomingLanes, and myLogicalPredecessorLane.
Referenced by MSEdge::allowsLaneChanging(), MSVehicle::checkLinkLeader(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSVehicle::enterLaneAtInsertion(), MSVehicle::enterLaneAtLaneChange(), getIncomingLinkState(), MSLink::getLeaderInfo(), MSPModel_Striping::getNextLane(), MSLink::lastWasContMajor(), libsumo::Helper::moveToXYMap(), GUILane::setFunctionalColor(), MSLink::setRequestInformation(), setStopOffsets(), and MSVehicle::updateBestLanes().
return the (first) predecessor lane from the given edge
Definition at line 2432 of file MSLane.cpp.
References getEdge(), and myIncomingLanes.
|
protected |
compute maximum braking distance on this lane
Definition at line 2133 of file MSLane.cpp.
References MSNet::getInstance(), MSVehicleControl::getMaxSpeedFactor(), MSVehicleControl::getMinDeceleration(), getSpeedLimit(), and MSNet::getVehicleControl().
Referenced by getFollowersOnConsecutive().
double MSLane::getMeanSpeed | ( | ) | const |
Returns the mean speed on this lane.
Definition at line 2574 of file MSLane.cpp.
References getVehiclesSecure(), myMaxSpeed, myVehicles, and releaseVehicles().
Referenced by GUILane::getColorValue(), libsumo::Lane::getLastStepMeanSpeed(), GUILane::getScaleValue(), libsumo::Lane::getTraveltime(), setStopOffsets(), and MSFullExport::writeLane().
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 2117 of file MSLane.cpp.
References MSVehicle::getCarFollowModel(), getFollowersOnConsecutive(), MSCFModel::getMaxDecel(), MSCFModel::getSecureGap(), and MSVehicle::getSpeed().
Referenced by freeInsertion(), isInsertionSuccess(), and setStopOffsets().
|
inline |
Return the list of this lane's move reminders.
Definition at line 246 of file MSLane.h.
References checkFailure(), forceVehicleInsertion(), freeInsertion(), getFirstVehicleInformation(), getLastVehicleInformation(), insertVehicle(), isInsertionSuccess(), lastInsertion(), myMoveReminders, MSMoveReminder::NOTIFICATION_DEPARTED, resetManeuverReservation(), resetPartialOccupation(), setManeuverReservation(), and setPartialOccupation().
Referenced by MSVehicle::adaptLaneEntering2MoveReminder(), MSVehicle::enterLaneAtInsertion(), MSVehicle::enterLaneAtLaneChange(), and MSVehicle::processNextStop().
double MSLane::getNettoOccupancy | ( | ) | const |
Returns the netto (excluding minGaps) occupancy of this lane during the last step (including minGaps)
Definition at line 2546 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicle::getPositionOnLane(), getVehiclesSecure(), MSBaseVehicle::getVehicleType(), MIN2(), myLength, myNettoVehicleLengthSum, myPartialVehicles, myVehicles, and releaseVehicles().
Referenced by GUILane::getColorValue(), libsumo::Lane::getLastStepOccupancy(), GUILane::getParameterWindow(), GUILane::getScaleValue(), setStopOffsets(), 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 1702 of file MSLane.cpp.
References MSEdge::getSuccessors(), MSEdge::isInternal(), and myEdge.
Referenced by MSVehicle::addStop(), getEdge(), MSVehicle::getRerouteOrigin(), and MSVehicle::updateBestLanes().
double MSLane::getNOxEmissions | ( | ) | const |
Returns the sum of last step NOx emissions.
Definition at line 2626 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by getBruttoVehLenSum(), GUILane::getColorValue(), libsumo::Lane::getNOxEmission(), GUILane::getScaleValue(), and MSFullExport::writeLane().
|
inline |
Returns this lane's numerical id.
Definition at line 448 of file MSLane.h.
References myNumericalID.
Referenced by MSPModel_Striping::lane_by_numid_sorter::operator()(), and MSPModel_Striping::walkingarea_path_sorter::operator()().
MSLane * MSLane::getOpposite | ( | ) | const |
return the opposite direction lane for lane changing or 0
Definition at line 3359 of file MSLane.cpp.
References dictionary(), and myNeighs.
Referenced by addNeigh(), MSLaneChanger::changeOpposite(), MSVehicle::executeMove(), getCenterOnEdge(), getOppositePos(), MSVehicle::planMoveInternal(), MSVehicle::updateBestLanes(), and MSVehicle::updateState().
Definition at line 3422 of file MSLane.cpp.
References DEBUG_COND2, MSVehicle::getBackPositionOnLane(), getFollower(), Named::getID(), MSBaseVehicle::getID(), MSVehicle::getLaneChangeModel(), getLeader(), MSVehicleType::getLength(), getOppositePos(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), MSAbstractLaneChangeModel::isOpposite(), POSITION_EPS, and SIMTIME.
Referenced by MSLaneChanger::changeOpposite(), and getCenterOnEdge().
std::pair< MSVehicle *const, double > MSLane::getOppositeLeader | ( | const MSVehicle * | ego, |
double | dist, | ||
bool | oppositeDir | ||
) | const |
Definition at line 3399 of file MSLane.cpp.
References DEBUG_COND2, MSVehicle::getBestLanesContinuation(), getFollower(), Named::getID(), MSBaseVehicle::getID(), MSVehicle::getLaneChangeModel(), getLeader(), MSVehicleType::getLength(), MSVehicleType::getMinGap(), getOppositePos(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getVehicleType(), MSAbstractLaneChangeModel::isOpposite(), and SIMTIME.
Referenced by MSLaneChanger::changeOpposite(), getCenterOnEdge(), and MSVehicle::planMoveInternal().
double MSLane::getOppositePos | ( | double | pos | ) | const |
return the corresponding position on the opposite lane
Definition at line 3368 of file MSLane.cpp.
References Named::getID(), getLength(), getOpposite(), and MAX2().
Referenced by MSLCM_LC2013::_wantsChange(), MSLaneChanger::changeOpposite(), MSVehicle::executeMove(), getCenterOnEdge(), getOppositeFollower(), getOppositeLeader(), and MSVehicle::updateState().
const std::vector< std::pair< const MSLane *, const MSEdge * > > MSLane::getOutgoingViaLanes | ( | ) | const |
get the list of outgoing lanes
Definition at line 2495 of file MSLane.cpp.
References myLinks.
Referenced by MSRailSignal::init(), MSVehicle::replaceRoute(), and setStopOffsets().
MSLane * MSLane::getParallelLane | ( | int | offset | ) | 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 2063 of file MSLane.cpp.
References myEdge, and MSEdge::parallelLane().
Referenced by libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::checkChange(), MSLink::computeParallelLink(), MSAbstractLaneChangeModel::determineTargetLane(), dictSize(), MSAbstractLaneChangeModel::getShadowLane(), MSVehicle::lateralDistanceToLane(), MSVehicle::planMoveInternal(), and MSAbstractLaneChangeModel::updateTargetLane().
|
inherited |
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 |
Definition at line 71 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by MSTLLogicControl::WAUTSwitchProcedure_Stretch::adaptLogic(), NBEdge::addRestrictedLane(), MSDevice_Battery::buildVehicleDevices(), MSDevice_Bluelight::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice::equippedByParameter(), libsumo::Simulation::findIntermodalRoute(), MSDevice::getBoolParam(), NBRailwayTopologyAnalyzer::getBrokenRailNodes(), GNELane::getColorValue(), GUILane::getColorValue(), MSSOTLTrafficLightLogic::getDecayConstant(), MSDevice_SSM::getDetectionRange(), MSDevice_SSM::getExtraTime(), MSDevice::getFloatParam(), MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSSOTLTrafficLightLogic::getInputSensorsLength(), MSDevice_SSM::getMeasuresAndThresholds(), MSSOTLRequestPolicy::getMinDecisionalPhaseDuration(), MSSOTLTrafficLightLogic::getMode(), MSDevice_ToC::getOutputFilename(), MSDevice_SSM::getOutputFilename(), MSSOTLTrafficLightLogic::getOutputSensorsLength(), libsumo::Polygon::getParameter(), libsumo::Route::getParameter(), libsumo::POI::getParameter(), libsumo::Person::getParameter(), libsumo::TrafficLight::getParameter(), libsumo::Edge::getParameter(), libsumo::Lane::getParameter(), libsumo::VehicleType::getParameter(), libsumo::Vehicle::getParameter(), MSSOTLTrafficLightLogic::getSpeedThreshold(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchAreaNo(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchBereichDef(), MSDevice::getStringParam(), MSSOTLTrafficLightLogic::getThreshold(), MSTriggeredRerouter::getWeight(), PushButtonLogic::init(), MSSOTLPhasePolicy::init(), SigmoidLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), NIImporter_OpenStreetMap::insertEdge(), MSSOTLTrafficLightLogic::isDecayThresholdActivated(), MSSOTLTrafficLightLogic::isPushButtonPressed(), libsumo::Helper::moveToXYMap(), MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(), MSDelayBasedTrafficLightLogic::MSDelayBasedTrafficLightLogic(), MSSOTLPolicy::MSSOTLPolicy(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), MSSwarmTrafficLightLogic::MSSwarmTrafficLightLogic(), MSTriggeredRerouter::notifyEnter(), MSDevice_SSM::requestsTrajectories(), NBEdgeCont::splitAt(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic(), MSDevice_SSM::useGeoCoords(), and NWWriter_DlrNavteq::writeLinksUnsplitted().
|
inherited |
Returns the inner key/value map.
Definition at line 105 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NIImporter_SUMO::_loadNetwork(), NBEdge::addLane(), GUIParameterTableWindow::closeBuilding(), NLHandler::closeEdge(), NBTrafficLightDefinition::compute(), GNEPoly::getGenericParameters(), GNELane::getGenericParameters(), GNEJunction::getGenericParameters(), GNEPOI::getGenericParameters(), GNEEdge::getGenericParameters(), GNEAdditional::getGenericParameters(), GNEPoly::getGenericParametersStr(), GNELane::getGenericParametersStr(), GNEPOI::getGenericParametersStr(), GNEJunction::getGenericParametersStr(), GNEEdge::getGenericParametersStr(), GNEAdditional::getGenericParametersStr(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIPolygon::getParameterWindow(), GUIJunctionWrapper::getParameterWindow(), GUIPointOfInterest::getParameterWindow(), GUILane::getParameterWindow(), GUIContainer::getTypeParameterWindow(), GUIPerson::getTypeParameterWindow(), GUIMEVehicle::getTypeParameterWindow(), GUIVehicle::getTypeParameterWindow(), NIImporter_OpenStreetMap::insertEdge(), NBLoadedSUMOTLDef::NBLoadedSUMOTLDef(), GUIParameterTableWindow::numParams(), and TraCIServerAPI_TrafficLight::processGet().
|
inline |
retrieve the parking vehicles (see GUIParkingArea)
Definition at line 1083 of file MSLane.h.
References myParkingVehicles.
Referenced by GUIParkingArea::drawGL().
Definition at line 3174 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), MSBaseVehicle::getID(), MSVehicle::getPositionOnLane(), MSVehicle::isFrontOnLane(), myPartialVehicles, SIMTIME, and toString().
Referenced by setStopOffsets().
MSLeaderInfo MSLane::getPartialBeyond | ( | ) | const |
get all vehicles that are inlapping from consecutive edges
Definition at line 3197 of file MSLane.cpp.
References MSLeaderInfo::addLeader(), MSVehicle::getLatOffset(), MSVehicle::isFrontOnLane(), and myPartialVehicles.
Referenced by setStopOffsets().
|
inline |
Returns the number of vehicles partially on this lane (for which this lane is not responsible)
Definition at line 395 of file MSLane.h.
References myPartialVehicles.
|
inline |
Returns the vehicle class permissions for this lane.
Definition at line 522 of file MSLane.h.
References myPermissions.
Referenced by MSSwarmTrafficLightLogic::allowLine(), libsumo::Lane::getAllowed(), MSInternalJunction::indirectBicycleTurn(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), and GUIApplicationWindow::onCmdEditChosen().
double MSLane::getPMxEmissions | ( | ) | const |
Returns the sum of last step PMx emissions.
Definition at line 2614 of file MSLane.cpp.
References getVehiclesSecure(), and releaseVehicles().
Referenced by getBruttoVehLenSum(), GUILane::getColorValue(), libsumo::Lane::getPMxEmission(), GUILane::getScaleValue(), and MSFullExport::writeLane().
|
inline |
Definition at line 1031 of file MSLane.h.
References myRightmostSublane.
Referenced by MSLCM_SL2015::_wantsChangeSublane().
|
inline |
Definition at line 1027 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::keepLatGap(), MSVehicle::planMoveInternal(), MSLaneChangerSublane::startChangeSublane(), and MSLaneChangerSublane::updateChanger().
|
inline |
Returns this lane's shape.
Definition at line 456 of file MSLane.h.
References myShape.
Referenced by MSPModel_Remote::add(), LaneStoringVisitor::add(), NLHandler::addConnection(), GUIE3Collector::MyWrapper::buildDefinition(), MSDevice_SSM::classifyEncounter(), TraCIServerAPI_Simulation::commandPositionConversion(), MSVehicle::computeAngle(), MSLink::contIntersect(), libsumo::Simulation::convert2D(), libsumo::Simulation::convert3D(), GUILane::debugDrawFoeIntersections(), GUIVehicle::drawAction_drawLinkItems(), GUILane::drawLane2LaneConnections(), fill(), libsumo::Helper::findCloserLane(), MEVehicle::getAngle(), MSPModel_Striping::PState::getAngle(), MSTransportable::Stage::getLanePosition(), MSPModel_Striping::getNextLaneObstacles(), GUIContainer::getPosition(), libsumo::Lane::getShape(), MEVehicle::getSlope(), MSVehicle::getSlope(), MSVTKExport::getSpeed(), libsumo::InductionLoop::getTree(), MSStoppingPlace::getWaitPosition(), GUIBusStop::GUIBusStop(), GUIChargingStation::GUIChargingStation(), GUIContainerStop::GUIContainerStop(), MSPModel_Remote::handlePedestrianLane(), MSPModel_Remote::handleWalkingArea(), MSInternalJunction::indirectBicycleTurn(), MSPModel_Striping::initWalkingAreaPaths(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), MSLink::MSLink(), MSParkingArea::MSParkingArea(), GUIMEInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), MSLane::by_connections_to_sorter::operator()(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), MSLink::setRequestInformation(), MSLaneChangerSublane::startChangeSublane(), libsumo::InductionLoop::storeShape(), libsumo::Lane::storeShape(), and MSPerson::MSPersonStage_Walking::walkDistance().
|
inline |
Returns the lane's maximum allowed speed.
Definition at line 506 of file MSLane.h.
References myMaxSpeed.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChanger::changeOpposite(), MSVehicleTransfer::checkInsertions(), MSLCM_SL2015::checkStrategicChange(), MSAbstractLaneChangeModel::congested(), executeMovements(), MSCFModel_ACC::followSpeed(), MSCFModel_CACC::followSpeed(), GUILane::getColorValue(), MSE2Collector::getEstimatedCurrentVehicleNumber(), libsumo::Lane::getLinks(), getMaximumBrakeDist(), libsumo::Lane::getMaxSpeed(), GUILane::getParameterWindow(), GUILane::getScaleValue(), MSLCM_LC2013::informFollower(), MSActuatedTrafficLightLogic::init(), MSLCM_DK2008::wantsChangeToRight(), MSMeanData::writeEdge(), and MSFullExport::writeLane().
double MSLane::getStopOffset | ( | const MSVehicle * | veh | ) | const |
Returns vehicle class specific stopOffset for the vehicle.
Definition at line 2908 of file MSLane.cpp.
References MSBaseVehicle::getVClass(), and myStopOffsets.
Referenced by getIncomingLanes(), and MSVehicle::planMoveInternal().
|
inline |
Returns vehicle class specific stopOffsets.
Definition at line 798 of file MSLane.h.
References myStopOffsets.
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 along the road network starting on the given position. Predecessor lanes are searched upstream for the given upstreamDistance.
[in] | lanes | - sequence of lanes to search along |
[in] | startPos | - start position of the search on the first lane |
[in] | downstreamDist | - distance to search downstream |
[in] | upstreamDist | - distance to search upstream |
Definition at line 3212 of file MSLane.cpp.
References Named::getID(), getIncomingLanes(), getLength(), getLinkCont(), getSurroundingVehicles(), getVehiclesInRange(), MAX2(), MIN2(), Named::myID, and myLength.
Referenced by libsumo::Helper::applySubscriptionFilters(), getSurroundingVehicles(), and setStopOffsets().
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 3300 of file MSLane.cpp.
References getUpcomingLinks().
Referenced by setStopOffsets().
std::vector< const MSLink * > MSLane::getUpcomingLinks | ( | 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 3311 of file MSLane.cpp.
References getEntryLink(), Named::getID(), MSLink::getInternalLengthsAfter(), MSLink::getLane(), getLength(), getLinkTo(), and isInternal().
Referenced by libsumo::Helper::applySubscriptionFilters(), getUpcomingJunctions(), and setStopOffsets().
|
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 492 of file MSLane.h.
References SUMOVehicle::getChosenSpeedFactor(), SUMOVehicle::getMaxSpeed(), SUMOVehicle::getVClass(), MIN2(), myMaxSpeed, and myRestrictions.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSE2Collector::calculateTimeLossAndTimeOnDetector(), MSLaneChanger::changeOpposite(), MSLCM_SL2015::commitManoeuvre(), MSLaneChanger::computeOvertakingTime(), MEVehicle::estimateLeaveSpeed(), MSVehicle::estimateLeaveSpeed(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel_IDM::finalizeSpeed(), MSCFModel::finalizeSpeed(), MSCFModel_IDM::followSpeed(), libsumo::Vehicle::getAllowedSpeed(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), getCriticalLeader(), getDepartSpeed(), getLeadersOnConsecutive(), MSVehicle::getMaxSpeedOnLane(), MSCFModel_IDM::interactionGap(), MSCFModel::interactionGap(), isInsertionSuccess(), MSVehicle::planMoveInternal(), MSVehicle::setBlinkerInformation(), MSCFModel_IDM::stopSpeed(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::updateTimeLoss(), 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 379 of file MSLane.h.
References myVehicles.
Referenced by libsumo::Lane::getLastStepVehicleNumber(), MSVehicle::planMoveInternal(), MSFullExport::writeLane(), and MSXMLRawOut::writeLane().
|
inline |
Returns the number of vehicles on this lane (including partial occupators)
Definition at line 387 of file MSLane.h.
References myPartialVehicles, and myVehicles.
Referenced by MSPModel_Striping::getNextLaneObstacles(), MSPModel_Striping::moveInDirectionOnLane(), MSVehicle::planMoveInternal(), and MSPModel_Striping::PState::PState().
std::set< MSVehicle * > MSLane::getVehiclesInRange | ( | double | a, |
double | b | ||
) | const |
Returns all vehicles on the lane overlapping with the interval [a,b].
Definition at line 3264 of file MSLane.cpp.
References getVehiclesSecure(), MAX2(), MIN2(), myLength, and releaseVehicles().
Referenced by libsumo::Helper::applySubscriptionFilters(), getSurroundingVehicles(), and setStopOffsets().
|
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 406 of file MSLane.h.
References myVehicles.
Referenced by LaneStoringVisitor::add(), GUIParkingArea::drawGL(), getBruttoOccupancy(), getCO2Emissions(), getCOEmissions(), getElectricityConsumption(), getFuelConsumption(), getHarmonoise_NoiseEmissions(), getHCEmissions(), libsumo::Lane::getLastStepHaltingNumber(), libsumo::Lane::getLastStepLength(), libsumo::Lane::getLastStepVehicleIDs(), MSVehicle::getLeader(), getMeanSpeed(), getNettoOccupancy(), getNOxEmissions(), getPMxEmissions(), MSVehicle::getSpaceTillLastStanding(), MSDevice_SSM::getUpstreamVehicles(), getVehiclesInRange(), MSDevice_SSM::getVehiclesOnJunction(), and MSPedestrianPushButton::isActiveForEdge().
double MSLane::getWaitingSeconds | ( | ) | const |
Returns the overall waiting time on this lane.
Definition at line 2561 of file MSLane.cpp.
References myVehicles.
Referenced by libsumo::Lane::getWaitingTime(), and setStopOffsets().
|
inline |
Returns the lane's width.
Definition at line 530 of file MSLane.h.
References myWidth.
Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSPModel_Striping::addCrossingVehs(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeToNewLane(), MSDevice_SSM::classifyEncounter(), MSLCM_SL2015::computeSpeedGain(), MSLaneChanger::continueChange(), MSAbstractLaneChangeModel::determineTargetLane(), GUILane::drawGL(), MSVehicle::getCenterOnEdge(), getDepartPosLat(), MSVehicle::getLateralOverlap(), MSVehicle::getLatOffset(), MSLink::getLeaderInfo(), MSPModel_Striping::getNextLaneObstacles(), MSPModel_Striping::PState::getPosition(), MSVehicle::getRightSideOnLane(), MSLCM_SL2015::getSublaneWidth(), MSPModel_Striping::getVehicleObstacles(), libsumo::Lane::getWidth(), GUIParkingArea::GUIParkingArea(), MSPModel_Remote::handlePedestrianLane(), MSPModel_Striping::initWalkingAreaPaths(), insertVehicle(), MSLCM_SL2015::keepLatGap(), MSVehicle::lateralDistanceToLane(), MSPModel_Striping::moveInDirection(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), MSPModel_Striping::PState::moveToXY(), MSParkingArea::MSParkingArea(), MSPModel_Striping::nextBlocking(), MSPModel_Striping::numStripes(), MSVehicle::Influencer::postProcessRemoteControl(), MSVehicle::processLinkAproaches(), GUIVehicle::selectBlockingFoes(), MSLink::setRequestInformation(), and MSLaneChangerSublane::startChangeSublane().
|
protected |
take action upon collision
Definition at line 1469 of file MSLane.cpp.
References MSVehicle::addStop(), GeomHelper::angleDiff(), MSCFModel::brakeGap(), SUMOVehicleParameter::Stop::busstop, SUMOVehicleParameter::Stop::chargingStation, COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, COLLISION_ACTION_WARN, MSVehicle::collisionStopTime(), SUMOVehicleParameter::Stop::containerstop, SUMOVehicleParameter::Stop::containerTriggered, DEBUG_COND2, SUMOVehicleParameter::Stop::duration, SUMOVehicleParameter::Stop::endPos, MSVehicle::getAngle(), MSVehicle::getCarFollowModel(), MSCFModel::getEmergencyDecel(), Named::getID(), MSBaseVehicle::getID(), MSVehicle::getInfluencer(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicleType::getLength(), getLength(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), MSVehicle::hasInfluencer(), MSAbstractLaneChangeModel::haveLateralDynamics(), SUMOVehicleParameter::Stop::index, MSNet::informVehicleStateListener(), MSAbstractLaneChangeModel::isOpposite(), MSVehicle::Influencer::isRemoteAffected(), SUMOVehicleParameter::Stop::lane, MAX2(), MIN2(), myCollisionAction, myCollisionStopTime, SUMOVehicleParameter::Stop::parking, SUMOVehicleParameter::Stop::parkingarea, RAD2DEG, MSVehicleControl::registerCollision(), SUMOVehicleParameter::Stop::startPos, time2string(), toString(), SUMOVehicleParameter::Stop::triggered, SUMOVehicleParameter::Stop::until, MSNet::VEHICLE_STATE_COLLISION, and WRITE_WARNING.
Referenced by detectCollisionBetween(), and detectCollisions().
|
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 306 of file MSLane.cpp.
References MSVehicle::enterLaneAtInsertion(), MSNet::getEdgeControl(), MSNet::getInstance(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSEdgeControl::gotActive(), MSEdge::markDelayed(), myBruttoVehicleLengthSum, myEdge, myLength, myNeedsCollisionCheck, myNettoVehicleLengthSum, and myVehicles.
Referenced by forceVehicleInsertion(), GUILane::incorporateVehicle(), isInsertionSuccess(), and loadState().
|
static |
Definition at line 3451 of file MSLane.cpp.
References COLLISION_ACTION_NONE, COLLISION_ACTION_REMOVE, COLLISION_ACTION_TELEPORT, COLLISION_ACTION_WARN, OptionsCont::getBool(), OptionsCont::getFloat(), OptionsCont::getString(), myCheckJunctionCollisions, myCollisionAction, myCollisionMinGapFactor, myCollisionStopTime, string2time(), and WRITE_ERROR.
Referenced by MSFrame::setMSGlobals(), and visit().
void MSLane::initRestrictions | ( | ) |
initialized vClass-specific speed limits
Definition at line 208 of file MSLane.cpp.
References MSEdge::getEdgeType(), MSNet::getInstance(), MSNet::getRestrictions(), MSGlobals::gUnitTests, myEdge, and myRestrictions.
Referenced by MSLane(), and setRightSideOnEdge().
|
static |
Adds the ids of all stored lanes into the given vector.
Definition at line 1762 of file MSLane.cpp.
References myDict.
Referenced by dictSize(), and libsumo::Lane::getIDList().
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 501 of file MSLane.cpp.
References MSVehicle::basePos(), DEPART_POS_BASE, DEPART_POS_DEFAULT, DEPART_POS_FREE, DEPART_POS_GIVEN, DEPART_POS_LAST, DEPART_POS_RANDOM, DEPART_POS_RANDOM_FREE, DEPART_POSLAT_FREE, DEPART_POSLAT_RANDOM_FREE, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosLatProcedure, SUMOVehicleParameter::departPosProcedure, FALLTHROUGH, freeInsertion(), getDepartPosLat(), getDepartSpeed(), getLength(), MSBaseVehicle::getParameter(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), getWidth(), MSGlobals::gLateralResolution, isInsertionSuccess(), lastInsertion(), myEdge, myLength, MSMoveReminder::NOTIFICATION_DEPARTED, and RandHelper::rand().
Referenced by getMoveReminders(), and MSEdge::insertVehicle().
|
virtual |
Insert buffered vehicle into the real lane.
Reimplemented in GUILane.
Definition at line 1804 of file MSLane.cpp.
References DEBUG_COND, Named::getID(), MSVehicle::getLane(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSGlobals::gLateralResolution, MSEdge::markDelayed(), myBruttoVehicleLengthSum, myEdge, myNeedsCollisionCheck, myNeighs, myNettoVehicleLengthSum, myPartialVehicles, myVehBuffer, myVehicles, SIMTIME, sortPartialVehicles(), and toString().
Referenced by getIndex(), and GUILane::integrateNewVehicle().
|
inline |
Definition at line 484 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by GUILane::getPopUpMenu(), and MSLink::setRequestInformation().
|
inline |
Definition at line 472 of file MSLane.h.
References myLengthGeometryFactor.
Referenced by MSVehicle::computeAngle(), GUIEdge::drawMesoVehicles(), geometryPositionAtOffset(), MEVehicle::getAngle(), MSTransportable::Stage::getLanePosition(), MSVehicle::getPosition(), MEVehicle::getSlope(), MSVehicle::getSlope(), MSStoppingPlace::getWaitPosition(), GUIBusStop::GUIBusStop(), GUIChargingStation::GUIChargingStation(), GUIContainerStop::GUIContainerStop(), MSParkingArea::MSParkingArea(), and MSLaneChangerSublane::startChangeSublane().
|
inline |
return whether this lane is an acceleration lane
Definition at line 466 of file MSLane.h.
References myIsRampAccel.
Referenced by MSLCM_LC2013::informFollower().
bool MSLane::isApproachedFrom | ( | MSEdge *const | edge | ) |
Definition at line 2093 of file MSLane.cpp.
References myApproachingLanes.
Referenced by getIncomingLanes().
Definition at line 2099 of file MSLane.cpp.
References myApproachingLanes.
bool MSLane::isEmpty | ( | ) | const |
Returns the information whether the lane is has no vehicle and no partial occupation
Definition at line 1870 of file MSLane.cpp.
References myPartialVehicles, and myVehicles.
Referenced by dictSize().
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 606 of file MSLane.cpp.
References ARRIVAL_SPEED_GIVEN, SUMOVehicleParameter::arrivalSpeed, SUMOVehicleParameter::arrivalSpeedProcedure, MSRoute::begin(), MSCFModel::brakeGap(), checkFailure(), checkForPedestrians(), DEBUG_COND2, MSInsertionControl::descheduleDeparture(), SUMOVehicleParameter::Stop::endPos, MSCFModel::freeSpeed(), MSVehicle::getBackPositionOnLane(), MSVehicle::getBestLanesContinuation(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), getEdge(), getFollowersOnConsecutive(), Named::getID(), MSBaseVehicle::getID(), Named::getIDSecure(), MSBaseVehicle::getImpatience(), MSNet::getInsertionControl(), MSNet::getInstance(), MSVehicle::getLaneChangeModel(), MSRoute::getLastEdge(), getLastVehicleInformation(), MSVehicleType::getLength(), getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), getMissingRearGap(), MSVehicle::getNextStop(), MSBaseVehicle::getParameter(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getRoute(), MSCFModel::getSecureGap(), MSAbstractLaneChangeModel::getShadowLane(), MSVehicle::getSpeed(), getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSVehicle::hasStops(), MSLeaderInfo::hasVehicles(), incorporateVehicle(), MSCFModel::insertionStopSpeed(), INVALID_SPEED, isLinkEnd(), MSVehicle::Stop::lane, LINKSTATE_ALLWAY_STOP, LINKSTATE_EQUAL, LINKSTATE_MINOR, LINKSTATE_STOP, MAX2(), Named::myID, myLength, myManeuverReservations, myPartialVehicles, myVehicles, NUMERICAL_EPS, MSLeaderInfo::numFreeSublanes(), MSLeaderInfo::numSublanes(), MSVehicle::Stop::pars, safeInsertionSpeed(), MSVehicle::setTentativeLaneAndPosition(), SIMTIME, MSCFModel::stopSpeed(), succLinkSec(), SUMO_const_haltingSpeed, TIME2STEPS, toString(), MSLeaderInfo::toString(), MSVehicle::updateBestLanes(), WRITE_ERROR, and WRITE_WARNING.
Referenced by MSVehicleTransfer::checkInsertions(), freeInsertion(), getMoveReminders(), insertVehicle(), and lastInsertion().
bool MSLane::isInternal | ( | ) | const |
Returns whether the lane pertains to an internal edge
Definition at line 1875 of file MSLane.cpp.
References MSEdge::isInternal(), and myEdge.
Referenced by MSVehicle::canReverse(), MSDevice_SSM::classifyEncounter(), dictSize(), MSLCM_LC2013::distanceAlongNextRoundabout(), GUILane::drawGL(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), getCriticalLeader(), libsumo::Vehicle::getDistance(), getEntryLink(), getFirstInternalInConnection(), libsumo::Lane::getInternalFoes(), MSLink::getInternalLengthsAfter(), MSLink::getInternalLengthsBefore(), getLeaderOnConsecutive(), getLinkTo(), MSVehicle::getPositionAlongBestLanes(), getUpcomingLinks(), MSE2Collector::initAuxiliaries(), MSVehicle::isLeader(), MSLink::MSLink(), MSLane::incoming_lane_priority_sorter::operator()(), MSVehicle::planMoveInternal(), MSVehicle::processLinkAproaches(), succLinkSec(), MSVehicle::updateBestLanes(), and MSVehicle::updateDriveItems().
bool MSLane::isLinkEnd | ( | MSLinkCont::const_iterator & | i | ) | const |
Returns the information whether the given link shows at the end of the list of links (is not valid)
Definition at line 1859 of file MSLane.cpp.
References myLinks.
Referenced by MSLaneChanger::checkChange(), dictSize(), getCriticalLeader(), getLeadersOnConsecutive(), libsumo::Vehicle::getNextTLS(), isInsertionSuccess(), MSVehicle::planMoveInternal(), and MSVehicle::unsafeLinkAhead().
bool MSLane::isLinkEnd | ( | MSLinkCont::iterator & | i | ) |
Returns the information whether the given link shows at the end of the list of links (is not valid)
Definition at line 1865 of file MSLane.cpp.
References myLinks.
|
inlinevirtual |
whether this lane is selected in the GUI
Reimplemented in GUILane.
Definition at line 1088 of file MSLane.h.
References loadState(), and saveState().
|
inherited |
Returns whether the parameter is known.
[in] | key | The key to ask for |
Definition at line 65 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NBEdge::append(), MSDevice_Bluelight::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice::equippedByParameter(), MSDevice::getBoolParam(), NWWriter_DlrNavteq::getBrunnelType(), MSDevice_SSM::getDetectionRange(), MSDevice_SSM::getExtraTime(), MSDevice::getFloatParam(), MSDevice_SSM::getMeasuresAndThresholds(), MSDevice_ToC::getOutputFilename(), MSDevice_SSM::getOutputFilename(), MSDevice::getStringParam(), MSTriggeredRerouter::getWeight(), MSDevice_SSM::requestsTrajectories(), and MSDevice_SSM::useGeoCoords().
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 327 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, POSITION_EPS, MSVehicle::setTentativeLaneAndPosition(), and MSVehicle::updateBestLanes().
Referenced by getMoveReminders(), and insertVehicle().
void MSLane::leftByLaneChange | ( | MSVehicle * | v | ) |
Definition at line 2506 of file MSLane.cpp.
References MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), myBruttoVehicleLengthSum, and myNettoVehicleLengthSum.
Referenced by dictSize(), and MSAbstractLaneChangeModel::primaryLaneChanged().
void MSLane::loadState | ( | 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 2893 of file MSLane.cpp.
References MSVehicle::getLateralPositionOnLane(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), MSVehicleControl::getVehicle(), incorporateVehicle(), myVehicles, MSMoveReminder::NOTIFICATION_JUNCTION, MSVehicle::processNextStop(), and MSVehicle::updateBestLanes().
Referenced by isSelected().
|
inline |
short-circut collision check if nothing changed since the last check
Definition at line 593 of file MSLane.h.
References myNeedsCollisionCheck.
invalidated assignment operator
Referenced by MSLane::edge_finder::operator()().
|
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 1107 of file MSLane.cpp.
References MSLeaderInfo::addLeader(), DEBUG_COND, DEBUG_COND2, Named::getID(), MSGlobals::gLateralResolution, myManeuverReservations, myPartialVehicles, myVehicles, SIMTIME, toString(), MSLeaderInfo::toString(), and updateLeaderInfo().
Referenced by getIndex(), and GUILane::planMovements().
|
inlinevirtual |
Allows to use the container for microsimulation again.
Reimplemented in GUILane.
Definition at line 436 of file MSLane.h.
Referenced by LaneStoringVisitor::add(), GUIParkingArea::drawGL(), getBruttoOccupancy(), getCO2Emissions(), getCOEmissions(), getElectricityConsumption(), getFuelConsumption(), getHarmonoise_NoiseEmissions(), getHCEmissions(), libsumo::Lane::getLastStepHaltingNumber(), libsumo::Lane::getLastStepLength(), libsumo::Lane::getLastStepVehicleIDs(), MSVehicle::getLeader(), getMeanSpeed(), getNettoOccupancy(), getNOxEmissions(), getPMxEmissions(), MSVehicle::getSpaceTillLastStanding(), MSDevice_SSM::getUpstreamVehicles(), getVehiclesInRange(), MSDevice_SSM::getVehiclesOnJunction(), and MSPedestrianPushButton::isActiveForEdge().
|
virtual |
remove parking vehicle. This must be syncrhonized when running with GUI
Reimplemented in GUILane.
Definition at line 2877 of file MSLane.cpp.
References myParkingVehicles.
Referenced by MSVehicleTransfer::checkInsertions(), getCenterOnEdge(), MSVehicleTransfer::remove(), and GUILane::removeParking().
|
virtual |
Reimplemented in GUILane.
Definition at line 2045 of file MSLane.cpp.
References MSVehicle::getLane(), MSVehicleType::getLength(), MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSVehicle::leaveLane(), myBruttoVehicleLengthSum, myNettoVehicleLengthSum, and myVehicles.
Referenced by detectCollisions(), dictSize(), libsumo::Vehicle::moveTo(), MSVehicle::Influencer::postProcessRemoteControl(), libsumo::Vehicle::remove(), MSCalibrator::removePending(), and GUILane::removeVehicle().
|
inline |
require another collision check due to relevant changes in the simulation
Definition at line 598 of file MSLane.h.
References appropriate(), detectCollisions(), getEntryLink(), getLinkCont(), getLinkTo(), and myNeedsCollisionCheck.
Referenced by MSLaneChanger::continueChange().
|
virtual |
Unregisters a vehicle, which previously registered for maneuvering into this lane.
[in] | v | The vehicle |
Definition at line 288 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), MSBaseVehicle::getID(), myManeuverReservations, and SIMTIME.
Referenced by MSAbstractLaneChangeModel::cleanupTargetLane(), getMoveReminders(), 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 258 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), MSBaseVehicle::getID(), myPartialVehicles, and SIMTIME.
Referenced by MSAbstractLaneChangeModel::cleanupShadowLane(), getMoveReminders(), GUILane::resetPartialOccupation(), and MSAbstractLaneChangeModel::updateShadowLane().
void MSLane::resetPermissions | ( | long long | transientID | ) |
Definition at line 3483 of file MSLane.cpp.
References myOriginalPermissions, myPermissionChanges, myPermissions, and SVCAll.
Referenced by GUILane::closeTraffic(), dictSize(), and setPermissions().
|
protected |
return the maximum safe speed for insertion behind leaders (a negative value indicates that safe insertion is impossible)
Definition at line 973 of file MSLane.cpp.
References DEBUG_COND2, MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSBaseVehicle::getID(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), MSCFModel::insertionFollowSpeed(), INVALID_SPEED, MIN2(), MSLeaderInfo::numSublanes(), and SIMTIME.
Referenced by isInsertionSuccess().
void MSLane::saveState | ( | OutputDevice & | out | ) |
Saves the state of this lane into the given stream.
Basically, a list of vehicle ids
Definition at line 2882 of file MSLane.cpp.
References OutputDevice::closeTag(), Named::getID(), myVehicles, OutputDevice::openTag(), SUMO_ATTR_VALUE, SUMO_TAG_LANE, SUMO_TAG_VIEWSETTINGS_VEHICLES, and OutputDevice::writeAttr().
Referenced by isSelected().
|
inlineinherited |
resets the id
[in] | newID | The new id of this object |
Definition at line 86 of file Named.h.
Referenced by Distribution_Parameterized::parse(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdgeCont::remapIDs(), NBNodeCont::rename(), NBEdgeCont::rename(), GNEJunction::setAttribute(), 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 1146 of file MSLane.cpp.
References myVehicles.
Referenced by getIndex(), and GUILane::setJunctionApproaches().
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 2027 of file MSLane.cpp.
References myEdge, myLength, and MSEdge::recalcCache().
Referenced by empty(), and libsumo::Lane::setLength().
|
virtual |
Registers the lane change intentions (towards this lane) for the given vehicle.
Definition at line 277 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), MSBaseVehicle::getID(), myManeuverReservations, and SIMTIME.
Referenced by getMoveReminders(), and MSAbstractLaneChangeModel::updateTargetLane().
void MSLane::setMaxSpeed | ( | double | val | ) |
Sets a new maximum speed for the lane (used by TraCI and MSCalibrator)
[in] | val | the new speed in m/s |
Definition at line 2020 of file MSLane.cpp.
References myEdge, myMaxSpeed, and MSEdge::recalcCache().
Referenced by empty(), MSCalibrator::execute(), and libsumo::Lane::setMaxSpeed().
|
inherited |
Sets a parameter.
[in] | key | The parameter's name |
[in] | value | The parameter's value |
Definition at line 45 of file Parameterised.cpp.
References Parameterised::myMap.
Referenced by NLHandler::addDistrict(), SUMORouteHandler::addParam(), ShapeHandler::addPOI(), NIImporter_OpenStreetMap::insertNodeChecking(), NBEdge::Lane::Lane(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIXMLTrafficLightsHandler::myStartElement(), MSStateHandler::myStartElement(), ShapeHandler::myStartElement(), NIXMLNodesHandler::myStartElement(), NIImporter_MATSim::EdgesHandler::myStartElement(), NIImporter_OpenStreetMap::EdgesHandler::myStartElement(), GNEAdditionalHandler::parseGenericParameter(), GNEConnection::setGenericParametersStr(), GNEPoly::setGenericParametersStr(), GNELane::setGenericParametersStr(), GNEPOI::setGenericParametersStr(), GNEJunction::setGenericParametersStr(), GNEEdge::setGenericParametersStr(), GNEAdditional::setGenericParametersStr(), libsumo::Route::setParameter(), libsumo::Polygon::setParameter(), libsumo::POI::setParameter(), libsumo::TrafficLight::setParameter(), libsumo::Edge::setParameter(), and libsumo::Lane::setParameter().
|
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 244 of file MSLane.cpp.
References DEBUG_COND2, Named::getID(), MSBaseVehicle::getID(), myLength, myNeedsCollisionCheck, myPartialVehicles, and SIMTIME.
Referenced by getMoveReminders(), GUILane::setPartialOccupation(), 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 3471 of file MSLane.cpp.
References CHANGE_PERMISSIONS_PERMANENT, myOriginalPermissions, myPermissionChanges, myPermissions, and resetPermissions().
Referenced by GUILane::closeTraffic(), dictSize(), libsumo::Lane::setAllowed(), and libsumo::Lane::setDisallowed().
|
inline |
Definition at line 1019 of file MSLane.h.
References initRestrictions(), myRightmostSublane, and myRightSideOnEdge.
|
inline |
Set vehicle class specific stopOffsets.
Definition at line 803 of file MSLane.h.
References getBruttoOccupancy(), getCanonicalPredecessorLane(), getCanonicalSuccessorLane(), getCriticalLeader(), getFollowersOnConsecutive(), getIncomingLinkState(), getLeader(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), getLogicalPredecessorLane(), getMeanSpeed(), getMissingRearGap(), getNettoOccupancy(), getOutgoingViaLanes(), getPartialBehind(), getPartialBeyond(), getSurroundingVehicles(), getUpcomingJunctions(), getUpcomingLinks(), getVehiclesInRange(), getWaitingSeconds(), and myStopOffsets.
void MSLane::sortManeuverReservations | ( | ) |
sorts myManeuverReservations
Definition at line 1840 of file MSLane.cpp.
References DEBUG_COND, Named::getID(), myManeuverReservations, and toString().
Referenced by getCenterOnEdge().
void MSLane::sortPartialVehicles | ( | ) |
sorts myPartialVehicles
Definition at line 1832 of file MSLane.cpp.
References myPartialVehicles.
Referenced by getCenterOnEdge(), integrateNewVehicle(), 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 1926 of file MSLane.cpp.
References Named::getID(), SUMOVehicle::getID(), MSNet::getInstance(), MSVehicleType::getVehicleClass(), SUMOVehicle::getVehicleType(), isInternal(), myLinks, SUMOVehicle::succEdge(), time2string(), and WRITE_WARNING.
Referenced by appropriate(), MSLaneChanger::checkChange(), dictSize(), executeMovements(), getCriticalLeader(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), libsumo::Vehicle::getNextTLS(), isInsertionSuccess(), MSVehicle::planMoveInternal(), MSVehicle::setBlinkerInformation(), and MSVehicle::unsafeLinkAhead().
|
protectedvirtual |
moves myTmpVehicles int myVehicles after a lane change procedure
Reimplemented in GUILane.
Definition at line 2034 of file MSLane.cpp.
References myTmpVehicles, myVehicles, and sortPartialVehicles().
Referenced by GUILane::swapAfterLaneChange().
|
inlinestatic |
Definition at line 1132 of file MSLane.h.
References COLLISION_ACTION_TELEPORT, and myCollisionAction.
Referenced by MSVehicleControl::getTeleportCount().
|
inherited |
Removes a parameter.
[in] | key | The parameter's name |
Definition at line 51 of file Parameterised.cpp.
References Parameterised::myMap.
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 1153 of file MSLane.cpp.
References MSLeaderInfo::addLeader(), DEBUG_COND, MSVehicle::getPositionOnLane(), myManeuverReservations, and myPartialVehicles.
Referenced by getIndex(), and planMovements().
|
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::myMap.
Referenced by NIImporter_SUMO::_loadNetwork(), PCLoaderOSM::addPOI(), PCLoaderOSM::addPolygon(), NLHandler::closeEdge(), NLJunctionControlBuilder::closeJunction(), NBTrafficLightDefinition::compute(), NIImporter_OpenStreetMap::insertEdge(), and NBLoadedSUMOTLDef::NBLoadedSUMOTLDef().
|
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 1126 of file MSLane.h.
References LaneStoringVisitor::add(), and initCollisionOptions().
Referenced by libsumo::Helper::collectObjectsInRange().
|
inherited |
write Params in the given outputdevice
Definition at line 111 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 ROVehicle::saveAsXML(), ROPerson::saveAsXML(), MEVehicle::saveState(), MSVehicle::saveState(), SUMOVTypeParameter::write(), GNEAdditional::writeAdditional(), NWWriter_SUMO::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeJunction(), NWWriter_SUMO::writeLane(), NWWriter_XML::writeNodes(), MSDevice_Vehroutes::writeOutput(), PointOfInterest::writeXML(), and SUMOPolygon::writeXML().
|
friend |
Definition at line 87 of file MSLane.h.
Referenced by anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), and anyVehiclesUpstreamEnd().
|
friend |
|
friend |
|
friend |
|
friend |
|
static |
Definition at line 1141 of file MSLane.h.
Referenced by GUILane::closeTraffic().
|
static |
Definition at line 1140 of file MSLane.h.
Referenced by libsumo::Lane::setAllowed(), libsumo::Edge::setAllowedSVCPermissions(), libsumo::Lane::setDisallowed(), and setPermissions().
All direct internal and direct (disregarding internal predecessors) non-internal predecessor lanes of this lane.
Definition at line 1304 of file MSLane.h.
Referenced by addApproachingLane(), and isApproachedFrom().
|
protected |
The current length of all vehicles on this lane, including their minGaps.
Definition at line 1294 of file MSLane.h.
Referenced by enteredByLaneChange(), executeMovements(), getBruttoOccupancy(), getBruttoVehLenSum(), incorporateVehicle(), integrateNewVehicle(), leftByLaneChange(), and removeVehicle().
|
mutableprotected |
Similar to LogicalPredecessorLane,.
Definition at line 1288 of file MSLane.h.
Referenced by getCanonicalPredecessorLane().
|
mutableprotected |
Main successor lane,.
Definition at line 1291 of file MSLane.h.
Referenced by getCanonicalSuccessorLane().
|
staticprivate |
Definition at line 1350 of file MSLane.h.
Referenced by detectCollisions(), and initCollisionOptions().
|
staticprivate |
the action to take on collisions
Definition at line 1349 of file MSLane.h.
Referenced by detectCollisionBetween(), detectCollisions(), getCollisionAction(), handleCollisionBetween(), initCollisionOptions(), and teleportOnCollision().
|
staticprivate |
Definition at line 1352 of file MSLane.h.
Referenced by detectCollisionBetween(), and initCollisionOptions().
|
staticprivate |
Definition at line 1351 of file MSLane.h.
Referenced by handleCollisionBetween(), and initCollisionOptions().
|
staticprotected |
Static dictionary to associate string-ids with objects.
Definition at line 1342 of file MSLane.h.
Referenced by clear(), dictionary(), dictSize(), fill(), and insertIDs().
|
protected |
The lane's edge, for routing only.
Definition at line 1267 of file MSLane.h.
Referenced by appropriate(), detectCollisions(), GUILane::drawGL(), GUILane::drawLane2LaneConnections(), GUILane::drawMarkings(), GUILane::getColorValue(), getEdge(), GUILane::getEdgeLaneNumber(), GUILane::getLoadedEdgeWeight(), getLogicalPredecessorLane(), getNextNormal(), getParallelLane(), GUILane::getParameterWindow(), GUILane::getScaleValue(), GUILane::getStoredEdgeTravelTime(), incorporateVehicle(), initRestrictions(), insertVehicle(), integrateNewVehicle(), isInternal(), GUILane::isLaneOrEdgeSelected(), GUILane::setColor(), GUILane::setFunctionalColor(), setLength(), and setMaxSpeed().
|
mutableprotected |
followers on all sublanes as seen by vehicles on consecutive lanes (cached)
Definition at line 1309 of file MSLane.h.
Referenced by getFirstVehicleInformation().
|
mutableprotected |
time step for which myFollowerInfo was last updated
Definition at line 1316 of file MSLane.h.
Referenced by getFirstVehicleInformation().
|
protectedinherited |
The name of the object.
Definition at line 130 of file Named.h.
Referenced by MSE2Collector::addDetectorToLanes(), RODFDetector::buildDestinationDistribution(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), MSSOTLTrafficLightLogic::checkPhases(), NBNode::computeNodeShape(), MSE2Collector::detectorUpdate(), METriggeredCalibrator::execute(), MSCalibrator::execute(), GNEPoly::getAttribute(), GNEPOI::getAttribute(), getCanonicalPredecessorLane(), getCanonicalSuccessorLane(), NBEdge::getLaneID(), NBEdge::getLaneIDInsecure(), ROEdge::getStoredEffort(), getSurroundingVehicles(), ROEdge::getTravelTime(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSCalibrator::init(), NBEdge::init(), isInsertionSuccess(), MSCalibrator::myStartElement(), NBNode::NBNode(), MSE2Collector::notifyEnter(), MSE2Collector::notifyLeave(), MSE2Collector::notifyMove(), MSMeanData::openInterval(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), MSSOTLTrafficLightLogic::setToATargetPhase(), NBEdge::splitGeometry(), Distribution_Parameterized::toStr(), MSChargingStation::writeChargingStationOutput(), RODFDetector::writeEmitterDefinition(), MSXMLRawOut::writeLane(), RODFDetector::writeSingleSpeedTrigger(), MEInductLoop::writeXMLOutput(), MSCalibrator::writeXMLOutput(), and MSE3Collector::writeXMLOutput().
|
protected |
All direct predecessor lanes.
Definition at line 1282 of file MSLane.h.
Referenced by addIncomingLane(), getCanonicalPredecessorLane(), getFollowersOnConsecutive(), getIncomingLanes(), and getLogicalPredecessorLane().
|
protected |
The lane index.
Definition at line 1207 of file MSLane.h.
Referenced by GUILane::drawMarkings(), and getIndex().
|
protected |
whether this lane is an acceleration lane
Definition at line 1322 of file MSLane.h.
Referenced by isAccelLane().
|
mutableprotected |
leaders on all sublanes as seen by approaching vehicles (cached)
Definition at line 1307 of file MSLane.h.
Referenced by getLastVehicleInformation().
|
mutableprotected |
time step for which myLeaderInfo was last updated
Definition at line 1314 of file MSLane.h.
Referenced by getLastVehicleInformation().
|
mutableprotected |
Definition at line 1311 of file MSLane.h.
Referenced by getFirstVehicleInformation(), and getLastVehicleInformation().
|
protected |
Lane length [m].
Definition at line 1256 of file MSLane.h.
Referenced by freeInsertion(), getBruttoOccupancy(), GUILane::getColorValue(), getFirstVehicleInformation(), getLength(), getNettoOccupancy(), GUILane::getParameterWindow(), GUILane::getScaleValue(), getSurroundingVehicles(), getVehiclesInRange(), incorporateVehicle(), insertVehicle(), isInsertionSuccess(), setLength(), setPartialOccupation(), and GUILane::splitAtSegments().
|
protected |
precomputed myShape.length / myLength
Definition at line 1319 of file MSLane.h.
Referenced by GUILane::getColorValue(), getLengthGeometryFactor(), GUILane::getScaleValue(), interpolateGeometryPosToLanePos(), and interpolateLanePosToGeometryPos().
|
protected |
The lane's Links to it's succeeding lanes and the default right-of-way rule, i.e. blocked or not blocked.
Definition at line 1301 of file MSLane.h.
Referenced by addLink(), appropriate(), detectCollisions(), GUILane::drawArrows(), GUILane::drawLane2LaneConnections(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), executeMovements(), getCanonicalSuccessorLane(), getCrossingIndex(), getLinkCont(), getLinkTo(), getOutgoingViaLanes(), isLinkEnd(), succLinkSec(), and ~MSLane().
|
mutableprotected |
Definition at line 1285 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 1248 of file MSLane.h.
Referenced by isInsertionSuccess(), planMovements(), resetManeuverReservation(), setManeuverReservation(), sortManeuverReservations(), and updateLeaderInfo().
|
protected |
Lane-wide speedlimit [m/s].
Definition at line 1270 of file MSLane.h.
Referenced by GUILane::getColorValue(), getMeanSpeed(), GUILane::getScaleValue(), getSpeedLimit(), getVehicleMaxSpeed(), and setMaxSpeed().
|
private |
This lane's move reminder.
Definition at line 1346 of file MSLane.h.
Referenced by addMoveReminder(), and getMoveReminders().
|
protected |
whether a collision check is currently needed
Definition at line 1330 of file MSLane.h.
Referenced by detectCollisions(), executeMovements(), incorporateVehicle(), integrateNewVehicle(), needsCollisionCheck(), requireCollisionCheck(), and setPartialOccupation().
|
protected |
Definition at line 1333 of file MSLane.h.
Referenced by addNeigh(), getOpposite(), and integrateNewVehicle().
|
protected |
The current length of all vehicles on this lane, excluding their minGaps.
Definition at line 1297 of file MSLane.h.
Referenced by enteredByLaneChange(), executeMovements(), getNettoOccupancy(), incorporateVehicle(), integrateNewVehicle(), leftByLaneChange(), and removeVehicle().
|
protected |
Unique numerical ID (set on reading by netload)
Definition at line 1201 of file MSLane.h.
Referenced by getNumericalID().
|
protected |
The original vClass permissions for this lane (before temporary modifications)
Definition at line 1276 of file MSLane.h.
Referenced by resetPermissions(), and setPermissions().
|
protected |
Definition at line 1253 of file MSLane.h.
Referenced by addParking(), 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 1232 of file MSLane.h.
Referenced by anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), detectCollisions(), freeInsertion(), getBruttoOccupancy(), getFirstAnyVehicle(), getLastAnyVehicle(), getLeaderOnConsecutive(), getLeadersOnConsecutive(), getNettoOccupancy(), getPartialBehind(), getPartialBeyond(), getPartialVehicleNumber(), MSLaneChanger::getRealLeader(), getVehicleNumberWithPartials(), integrateNewVehicle(), isEmpty(), isInsertionSuccess(), MSLane::AnyVehicleIterator::nextIsMyVehicles(), MSLane::AnyVehicleIterator::operator*(), planMovements(), resetPartialOccupation(), setPartialOccupation(), sortPartialVehicles(), and updateLeaderInfo().
|
protected |
Definition at line 1336 of file MSLane.h.
Referenced by GUILane::closeTraffic(), GUILane::getPopUpMenu(), resetPermissions(), and setPermissions().
|
protected |
The vClass permissions for this lane.
Definition at line 1273 of file MSLane.h.
Referenced by allowsVehicleClass(), GUILane::drawAsRailway(), GUILane::drawAsWaterway(), GUILane::drawGL(), GUILane::drawMarkings(), GUILane::getColorValue(), GUILane::getParameterWindow(), getPermissions(), resetPermissions(), and setPermissions().
|
protected |
The vClass speed restrictions for this lane.
Definition at line 1279 of file MSLane.h.
Referenced by getVehicleMaxSpeed(), and initRestrictions().
|
protected |
the index of the rightmost sublane of this lane on myEdge
Definition at line 1327 of file MSLane.h.
Referenced by getRightmostSublane(), and setRightSideOnEdge().
|
protected |
the combined width of all lanes with lower index on myEdge
Definition at line 1325 of file MSLane.h.
Referenced by getCenterOnEdge(), getRightSideOnEdge(), and setRightSideOnEdge().
|
protected |
The shape of the lane.
Definition at line 1204 of file MSLane.h.
Referenced by GUILane::drawGL(), GUILane::drawLinkRules(), geometryPositionAtOffset(), GUILane::getCenteringBoundary(), GUILane::getPopUpMenu(), GUILane::getShape(), getShape(), GUILane::GUILane(), GUILane::setFunctionalColor(), and GUILane::setMultiColor().
|
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 1264 of file MSLane.h.
Referenced by GUILane::drawLinkRules(), getStopOffset(), getStopOffsets(), and setStopOffsets().
|
protected |
Container for lane-changing vehicles. After completion of lane-change- process, the containers will be swapped with myVehicles.
Definition at line 1236 of file MSLane.h.
Referenced by anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), getLeader(), MSLane::AnyVehicleIterator::nextIsMyVehicles(), MSLane::AnyVehicleIterator::operator*(), MSLaneChanger::ChangeElem::registerHop(), 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 1240 of file MSLane.h.
Referenced by empty(), executeMovements(), integrateNewVehicle(), and MSXMLRawOut::writeLane().
|
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 1220 of file MSLane.h.
Referenced by addMoveReminder(), anyVehiclesBegin(), anyVehiclesEnd(), anyVehiclesUpstreamBegin(), detectCollisions(), empty(), executeMovements(), GUILane::firstWaitingTime(), forceVehicleInsertion(), freeInsertion(), getBruttoOccupancy(), getFirstAnyVehicle(), getFirstFullVehicle(), getLastAnyVehicle(), getLastFullVehicle(), getLeader(), getMeanSpeed(), getNettoOccupancy(), getVehicleNumber(), getVehicleNumberWithPartials(), GUILane::getVehiclesSecure(), getVehiclesSecure(), getWaitingSeconds(), incorporateVehicle(), integrateNewVehicle(), isEmpty(), isInsertionSuccess(), loadState(), MSLane::AnyVehicleIterator::nextIsMyVehicles(), MSLane::AnyVehicleIterator::operator*(), planMovements(), removeVehicle(), saveState(), setJunctionApproaches(), swapAfterLaneChange(), MSQueueExport::writeLane(), and MSXMLRawOut::writeLane().
|
protected |
Lane width [m].
Definition at line 1259 of file MSLane.h.
Referenced by GUILane::drawArrows(), GUILane::drawDirectionIndicators(), GUILane::drawGL(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), getCenterOnEdge(), GUILane::getParameterWindow(), getWidth(), and GUILane::GUILane().