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

#include <MSLink.h>

Collaboration diagram for MSLink:
[legend]

Data Structures

struct  ApproachingPersonInformation
 A structure holding the information about persons approaching a pedestrian crossing link. More...
 
struct  ApproachingVehicleInformation
 A structure holding the information about vehicles approaching a link. More...
 
struct  ConflictInfo
 pre-computed information for conflict points More...
 
struct  CustomConflict
 holds user defined conflict positions (must be interpreted for the correct exitLink) More...
 
struct  LinkLeader
 

Public Types

typedef std::map< const SUMOVehicle *, const ApproachingVehicleInformation, ComparatorNumericalIdLessApproachInfos
 
typedef std::vector< const SUMOTrafficObject * > BlockingFoes
 
enum  ConflictFlag { CONFLICT_DEFAULT , CONFLICT_DUMMY_MERGE , CONFLICT_NO_INTERSECTION , CONFLICT_STOP_AT_INTERNAL_JUNCTION }
 
enum  LinkLeaderFlag { LL_IN_THE_WAY = 1 << 0 , LL_FROM_LEFT = 1 << 1 , LL_SAME_SOURCE = 1 << 2 , LL_SAME_TARGET = 1 << 3 }
 additional information for link leaders More...
 
typedef std::vector< LinkLeaderLinkLeaders
 
typedef std::map< const MSPerson *, ApproachingPersonInformationPersonApproachInfos
 

Public Member Functions

void addCustomConflict (const MSLane *from, const MSLane *to, double startPos, double endPos)
 
void addWalkingAreaFoe (const MSLane *lane)
 add walkingarea as foe (when entering the junction)
 
void addWalkingAreaFoeExit (const MSLane *lane)
 add walkingarea as foe (when leaving the junction)
 
bool blockedAtTime (SUMOTime arrivalTime, SUMOTime leaveTime, double arrivalSpeed, double leaveSpeed, bool sameTargetLane, double impatience, double decel, SUMOTime waitingTime, BlockingFoes *collectFoes=nullptr, const SUMOTrafficObject *ego=nullptr, bool lastWasContRed=false, double dist=-1) const
 Returns the information whether this link is blocked Valid after the vehicles have set their requests.
 
void clearState ()
 Remove all approaching vehicles before quick-loading state.
 
bool fromInternalLane () const
 return whether the fromLane of this link is an internal lane
 
const ApproachInfosgetApproaching () const
 return all approaching vehicles
 
ApproachingVehicleInformation getApproaching (const SUMOVehicle *veh) const
 
std::pair< const SUMOVehicle *const, const ApproachingVehicleInformationgetClosest () const
 get the closest vehicle approaching this link
 
const std::vector< ConflictInfo > & getConflicts () const
 
const MSLinkgetCorrespondingEntryLink () const
 returns the corresponding entry link for exitLinks to a junction.
 
const MSLinkgetCorrespondingExitLink () const
 returns the corresponding exit link for entryLinks to a junction.
 
std::string getDescription () const
 get string description for this link
 
LinkDirection getDirection () const
 Returns the direction the vehicle passing this link take.
 
double getDistToFoePedCrossing () const
 
std::pair< const SUMOVehicle *, const MSLink * > getFirstApproachingFoe (const MSLink *wrapAround) const
 get the foe vehicle that is closest to the intersection or nullptr along with the foe link This function is used for finding circular deadlock at right_before_left junctions
 
const std::vector< const MSLane * > & getFoeLanes () const
 
const std::vector< MSLink * > & getFoeLinks () const
 
double getFoeVisibilityDistance () const
 Returns the distance on the approaching lane from which an approaching vehicle is able to see all relevant foes and may accelerate if the link is minor and no foe is approaching.
 
double getGreenFraction () const
 Returns the average proportion of green time to cycle time.
 
int getIndex () const
 Returns the respond index (for visualization)
 
const MSLanegetInternalLaneBefore () const
 return myInternalLaneBefore (always 0 when compiled without internal lanes)
 
double getInternalLengthsAfter () const
 Returns the cumulative length of all internal lanes after this link.
 
double getInternalLengthsBefore () const
 Returns the cumulative length of all internal lanes before this link.
 
MSJunctiongetJunction () const
 
MSLanegetLane () const
 Returns the connected lane.
 
const MSLanegetLaneBefore () const
 return the internalLaneBefore if it exists and the laneBefore otherwise
 
LinkState getLastGreenState () const
 Returns the last green state of the link.
 
SUMOTime getLastStateChange () const
 
double getLateralShift () const
 return lateral shift that must be applied when passing this link
 
const LinkLeaders getLeaderInfo (const MSVehicle *ego, double dist, std::vector< const MSPerson * > *collectBlockers=0, bool isShadowLink=false) const
 Returns all potential link leaders (vehicles on foeLanes) Valid during the planMove() phase.
 
SUMOTime getLeaveTime (const SUMOTime arrivalTime, const double arrivalSpeed, const double leaveSpeed, const double vehicleLength) const
 return the expected time at which the given vehicle will clear the link
 
double getLength () const
 Returns the length of this link.
 
double getLengthBeforeCrossing (const MSLane *foeLane) const
 Returns the internal length from the beginning of the link's internal lane before to the crossing with the given foe lane if applicable, if the lane is no foe lane to the link, INVALID_DOUBLE is returned.
 
double getLengthsBeforeCrossing (const MSLane *foeLane) const
 Returns the sum of the lengths along internal lanes following this link to the crossing with the given foe lane, if the lane is no foe lane to any of the internal lanes, INVALID_DOUBLE is returned.
 
SUMOTime getMesoTLSPenalty () const
 Returns the time penalty for passing a tls-controlled link (meso)
 
LinkState getOffState () const
 Returns the off-state for the link.
 
MSLinkgetOppositeDirectionLink () const
 return the link that is the opposite entry link to this one
 
MSLinkgetParallelLink (int direction) const
 return the link that is parallel to this lane or 0
 
SVCPermissions getPermissions () const
 who may use this link
 
LinkState getState () const
 Returns the current state of the link.
 
int getTLIndex () const
 Returns the TLS index.
 
const MSTrafficLightLogicgetTLLogic () const
 Returns the TLS index.
 
MSLanegetViaLane () const
 Returns the following inner lane.
 
MSLanegetViaLaneOrLane () const
 return the via lane if it exists and the lane otherwise
 
const MSLanegetWalkingAreaFoe ()
 get walkingarea as foes
 
const MSLanegetWalkingAreaFoeExit ()
 
double getZipperSpeed (const MSVehicle *ego, const double dist, double vSafe, SUMOTime arrivalTime, const BlockingFoes *foes) const
 return the speed at which ego vehicle must approach the zipper link
 
bool hasApproachingFoe (SUMOTime arrivalTime, SUMOTime leaveTime, double speed, double decel) const
 Returns the information whether a vehicle is approaching on one of the link's foe streams.
 
bool hasFoes () const
 Returns whether this link belongs to a junction where more than one edge is incoming.
 
bool haveGreen () const
 
bool haveOffPriority () const
 
bool havePriority () const
 Returns whether this link is a major link.
 
bool haveRed () const
 Returns whether this link is blocked by a red (or redyellow) traffic light.
 
bool haveYellow () const
 
void initParallelLinks ()
 initialize parallel links (to be called after all links are loaded)
 
bool isConflictEntryLink () const
 return whether this link enters the conflict area (not a continuation link)
 
bool isCont () const
 
bool isEntryLink () const
 return whether the toLane of this link is an internal lane and fromLane is a normal lane
 
bool isExitLink () const
 return whether the fromLane of this link is an internal lane and toLane is a normal lane
 
bool isExitLinkAfterInternalJunction () const
 return whether the fromLane of this link is an internal lane and its incoming lane is also an internal lane
 
bool isIndirect () const
 whether this link is the start of an indirect turn
 
bool isInternalJunctionLink () const
 return whether the fromLane and the toLane of this link are internal lanes
 
bool isTLSControlled () const
 
bool isTurnaround () const
 
bool keepClear () const
 whether the junction after this link must be kept clear
 
bool lastWasContMajor () const
 whether this is a link past an internal junction which currently has priority
 
bool lastWasContState (LinkState linkState) const
 whether this is a link past an internal junction where the entry to the junction currently has the given state
 
 MSLink (MSLane *predLane, MSLane *succLane, MSLane *via, LinkDirection dir, LinkState state, double length, double foeVisibilityDistance, bool keepClear, MSTrafficLightLogic *logic, int tlLinkIdx, bool indirect)
 Constructor for simulation which uses internal lanes.
 
bool opened (SUMOTime arrivalTime, double arrivalSpeed, double leaveSpeed, double vehicleLength, double impatience, double decel, SUMOTime waitingTime, double posLat=0, BlockingFoes *collectFoes=nullptr, bool ignoreRed=false, const SUMOTrafficObject *ego=nullptr, double dist=-1) const
 Returns the information whether the link may be passed.
 
void removeApproaching (const SUMOVehicle *veh)
 removes the vehicle from myApproachingVehicles
 
void removeApproachingPerson (const MSPerson *person)
 removes the person from myApproachingPersons
 
void setApproaching (const SUMOVehicle *approaching, ApproachingVehicleInformation ai)
 Sets the information about an approaching vehicle.
 
void setApproaching (const SUMOVehicle *approaching, const SUMOTime arrivalTime, const double arrivalSpeed, const double leaveSpeed, const bool setRequest, const double arrivalSpeedBraking, const SUMOTime waitingTime, double dist, double latOffset)
 Sets the information about an approaching vehicle.
 
void setApproachingPerson (const MSPerson *approaching, const SUMOTime arrivalTime, const SUMOTime leaveTime)
 Sets the information about an approaching person (only for a pedestrian crossing)
 
void setGreenFraction (const double fraction)
 Sets the green fraction for passing a tls-controlled link (meso)
 
void setMesoTLSPenalty (const SUMOTime penalty)
 Sets the time penalty for passing a tls-controlled link (meso)
 
void setRequestInformation (int index, bool hasFoes, bool isCont, const std::vector< MSLink * > &foeLinks, const std::vector< MSLane * > &foeLanes, MSLane *internalLaneBefore=0)
 Sets the request information.
 
void setTLLogic (const MSTrafficLightLogic *logic)
 Sets the currently active tlLogic.
 
void setTLState (LinkState state, SUMOTime t)
 Sets the current tl-state.
 
void writeApproaching (OutputDevice &od, const std::string fromLaneID) const
 write information about all approaching vehicles to the given output device
 
 ~MSLink ()
 Destructor.
 

Static Public Member Functions

static bool ignoreFoe (const SUMOTrafficObject *ego, const SUMOTrafficObject *foe)
 
static void recheckSetRequestInformation ()
 post-processing for legacy networks
 

Static Public Attributes

static const double NO_INTERSECTION
 

Private Member Functions

bool blockedByFoe (const SUMOVehicle *veh, const ApproachingVehicleInformation &avi, SUMOTime arrivalTime, SUMOTime leaveTime, double arrivalSpeed, double leaveSpeed, bool sameTargetLane, double impatience, double decel, SUMOTime waitingTime, const SUMOTrafficObject *ego) const
 
bool checkContOff () const
 figure out whether the cont status remains in effect when switching off the tls
 
void checkWalkingAreaFoe (const MSVehicle *ego, const MSLane *foeLane, std::vector< const MSPerson * > *collectBlockers, LinkLeaders &result) const
 check for persons on walkingarea in the path of ego vehicle
 
double computeDistToDivergence (const MSLane *lane, const MSLane *sibling, double minDist, bool sameSource) const
 compute point of divergence for geomatries with a common start or end
 
MSLinkcomputeParallelLink (int direction)
 
bool contIntersect (const MSLane *lane, const MSLane *foe)
 check if the lane intersects with a foe cont-lane
 
const CustomConflictgetCustomConflict (const MSLane *foeLane) const
 return CustomConflict with foeLane if it is defined
 
Position getFuturePosition (const MSPerson *p, double timeHorizon=1) const
 return extrapolated position of the given person after the given time
 
bool isInFront (const MSVehicle *ego, const PositionVector &egoPath, const Position &pPos) const
 whether the given person is in front of the car
 
double isOnComingPed (const MSVehicle *ego, const MSPerson *p) const
 whether the given person is walking towards the car returned as a factor in [0, 1]
 
 MSLink (const MSLink &s)
 invalidated copy constructor
 
MSLinkoperator= (const MSLink &s)
 invalidated assignment operator
 
void updateDistToFoePedCrossing (double dist)
 add information about another pedestrian crossing
 

Static Private Member Functions

static SUMOTime computeFoeArrivalTimeBraking (SUMOTime arrivalTime, const SUMOVehicle *foe, SUMOTime foeArrivalTime, double impatience, double dist, double &fasb)
 compute arrival time if foe vehicle is braking for ego
 
static bool couldBrakeForLeader (double followDist, double leaderDist, const MSVehicle *follow, const MSVehicle *leader)
 whether follower could stay behind leader (possibly by braking)
 
static bool lateralOverlap (double posLat, double width, double posLat2, double width2)
 check whether the given vehicle positions overlap laterally
 
static bool unsafeMergeSpeeds (double leaderSpeed, double followerSpeed, double leaderDecel, double followerDecel)
 return whether the given vehicles may NOT merge safely
 

Private Attributes

bool myAmCont
 
bool myAmContOff
 
const bool myAmIndirect
 whether this connection is an indirect turning movement
 
PersonApproachInfosmyApproachingPersons
 
ApproachInfos myApproachingVehicles
 
std::vector< ConflictInfomyConflicts
 
std::vector< CustomConflictmyCustomConflicts
 
LinkDirection myDirection
 An abstract (hopefully human readable) definition of the link's direction.
 
double myDistToFoePedCrossing
 distance from the stop line to the first pedestrian crossing or maxdouble
 
std::vector< const MSLane * > myFoeLanes
 
std::vector< MSLink * > myFoeLinks
 
double myFoeVisibilityDistance
 distance from which an approaching vehicle is able to see all relevant foes and may accelerate if the link is minor and no foe is approaching. Defaults to 4.5m. For zipper links (major) this is the distance at which zipper merging starts (and foes become "visible")
 
double myGreenFraction
 green fraction at tls for mesoscopic simulation
 
bool myHasFoes
 Whether any foe links exist.
 
bool myHavePedestrianCrossingFoe
 whether on of myFoeLanes is a crossing
 
int myIndex
 The position within this respond.
 
MSLane *const myInternalLane
 The following junction-internal lane if used.
 
const MSLanemyInternalLaneBefore
 
MSJunctionmyJunction
 the junction to which this link belongs
 
bool myKeepClear
 
MSLanemyLane
 The lane behind the junction approached by this link.
 
MSLanemyLaneBefore
 The lane approaching this link.
 
LinkState myLastGreenState
 The last green state of the link (minor or major)
 
SUMOTime myLastStateChange
 The time of the last state change.
 
double myLateralShift
 lateral shift to be applied when passing this link
 
double myLength
 The length of the link.
 
const MSTrafficLightLogicmyLogic
 the controlling logic or 0
 
SUMOTime myMesoTLSPenalty
 penalty time at tls for mesoscopic simulation
 
std::vector< MSLink * > * myOffFoeLinks
 
const LinkState myOffState
 The state of the link when switching of traffic light control.
 
MSLinkmyParallelLeft
 
MSLinkmyParallelRight
 
SVCPermissions myPermissions
 who may drive on this link
 
double myRadius
 the turning radius for this link or doublemax for straight links
 
LinkState myState
 The state of the link.
 
std::vector< MSLane * > mySublaneFoeLanes
 
std::vector< MSLink * > mySublaneFoeLinks
 
std::vector< MSLink * > mySublaneFoeLinks2
 
const int myTLIndex
 the traffic light index
 
const MSLanemyWalkingAreaFoe
 walkingArea that must be checked when entering the intersection
 
const MSLanemyWalkingAreaFoeExit
 walkingArea that must be checked when leaving the intersection
 

Static Private Attributes

static const SUMOTime myLookaheadTime = TIME2STEPS(1)
 
static const SUMOTime myLookaheadTimeZipper = TIME2STEPS(4)
 
static std::set< std::pair< MSLink *, MSLink * > > myRecheck
 links that need post processing after initialization (to deal with legacy networks)
 

Detailed Description

Definition at line 67 of file MSLink.h.

Member Typedef Documentation

◆ ApproachInfos

Definition at line 182 of file MSLink.h.

◆ BlockingFoes

typedef std::vector<const SUMOTrafficObject*> MSLink::BlockingFoes

Definition at line 183 of file MSLink.h.

◆ LinkLeaders

typedef std::vector<LinkLeader> MSLink::LinkLeaders

Definition at line 112 of file MSLink.h.

◆ PersonApproachInfos

Definition at line 184 of file MSLink.h.

Member Enumeration Documentation

◆ ConflictFlag

Enumerator
CONFLICT_DEFAULT 
CONFLICT_DUMMY_MERGE 
CONFLICT_NO_INTERSECTION 
CONFLICT_STOP_AT_INTERNAL_JUNCTION 

Definition at line 186 of file MSLink.h.

◆ LinkLeaderFlag

additional information for link leaders

Enumerator
LL_IN_THE_WAY 

vehicle is in the way

LL_FROM_LEFT 

link leader is passing from left to right

LL_SAME_SOURCE 

link leader is coming from the same (normal) lane

LL_SAME_TARGET 

link leader is targeting the same outgoing lane

Definition at line 73 of file MSLink.h.

Constructor & Destructor Documentation

◆ MSLink() [1/2]

MSLink::MSLink ( MSLane predLane,
MSLane succLane,
MSLane via,
LinkDirection  dir,
LinkState  state,
double  length,
double  foeVisibilityDistance,
bool  keepClear,
MSTrafficLightLogic logic,
int  tlLinkIdx,
bool  indirect 
)

Constructor for simulation which uses internal lanes.

Parameters
[in]succLaneThe lane approached by this link
[in]viaThe lane to use within the junction
[in]dirThe direction of this link
[in]stateThe state of this link
[in]lengthThe length of this link

Definition at line 113 of file MSLink.cpp.

References MSLane::getShape(), getViaLaneOrLane(), MSGlobals::gLateralResolution, MSGlobals::gLefthand, MSLane::isInternal(), PositionVector::move2side(), myInternalLane, myLaneBefore, and myLateralShift.

◆ ~MSLink()

MSLink::~MSLink ( )

Destructor.

Definition at line 174 of file MSLink.cpp.

References myApproachingPersons, and myOffFoeLinks.

◆ MSLink() [2/2]

MSLink::MSLink ( const MSLink s)
private

invalidated copy constructor

Member Function Documentation

◆ addCustomConflict()

void MSLink::addCustomConflict ( const MSLane from,
const MSLane to,
double  startPos,
double  endPos 
)

Definition at line 181 of file MSLink.cpp.

References myCustomConflicts.

Referenced by NLHandler::addConflict().

Here is the caller graph for this function:

◆ addWalkingAreaFoe()

void MSLink::addWalkingAreaFoe ( const MSLane lane)
inline

add walkingarea as foe (when entering the junction)

Definition at line 264 of file MSLink.h.

References myWalkingAreaFoe.

Referenced by MSRightOfWayJunction::postloadInit().

Here is the caller graph for this function:

◆ addWalkingAreaFoeExit()

void MSLink::addWalkingAreaFoeExit ( const MSLane lane)
inline

add walkingarea as foe (when leaving the junction)

Definition at line 269 of file MSLink.h.

References myWalkingAreaFoeExit.

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

Here is the caller graph for this function:

◆ blockedAtTime()

bool MSLink::blockedAtTime ( SUMOTime  arrivalTime,
SUMOTime  leaveTime,
double  arrivalSpeed,
double  leaveSpeed,
bool  sameTargetLane,
double  impatience,
double  decel,
SUMOTime  waitingTime,
BlockingFoes collectFoes = nullptr,
const SUMOTrafficObject ego = nullptr,
bool  lastWasContRed = false,
double  dist = -1 
) const

Returns the information whether this link is blocked Valid after the vehicles have set their requests.

Parameters
[in]arrivalTimeThe arrivalTime of the vehicle who checks for an approaching foe
[in]leaveTimeThe leaveTime of the vehicle who checks for an approaching foe
[in]arrivalSpeedThe speed with which the checking vehicle plans to arrive at the link
[in]leaveSpeedThe speed with which the checking vehicle plans to leave the link
[in]sameTargetLaneWhether the link that calls this method has the same target lane as this link
[in]impatienceThe impatience of the checking vehicle
[in]decelThe maximum deceleration of the checking vehicle
[in]waitingTimeThe waiting time of the checking vehicle
[in]collectFoesIf a vector is passed the return value is always False, instead all blocking foes are collected and inserted into this vector
[in]lastWasContRedWhether the link which is checked, is an internal junction link where the entry has red
Returns
Whether this link is blocked
Note
Since this needs to be called without a SUMOVehicle (TraCI), we cannot simply pass the checking vehicle itself

Definition at line 900 of file MSLink.cpp.

References blockedByFoe(), gDebugFlag1, MSVehicleType::getCarFollowModel(), Named::getID(), SUMOVTypeParameter::getJMParam(), MSVehicleType::getParameter(), SUMOTrafficObject::getRNG(), SUMOTrafficObject::getSpeed(), SUMOTrafficObject::getVehicleType(), getViaLaneOrLane(), haveRed(), ignoreFoe(), myApproachingPersons, myApproachingVehicles, RandHelper::rand(), SIMTIME, SUMO_ATTR_JM_IGNORE_FOE_PROB, SUMO_ATTR_JM_IGNORE_FOE_SPEED, and SUMO_const_haltingSpeed.

◆ blockedByFoe()

◆ checkContOff()

bool MSLink::checkContOff ( ) const
private

figure out whether the cont status remains in effect when switching off the tls

Definition at line 2148 of file MSLink.cpp.

References MSLane::getEdge(), MSEdge::getLanes(), LINKSTATE_TL_OFF_NOSIGNAL, and myLaneBefore.

Referenced by setRequestInformation().

Here is the caller graph for this function:

◆ checkWalkingAreaFoe()

void MSLink::checkWalkingAreaFoe ( const MSVehicle ego,
const MSLane foeLane,
std::vector< const MSPerson * > *  collectBlockers,
LinkLeaders result 
) const
private

◆ clearState()

void MSLink::clearState ( )

Remove all approaching vehicles before quick-loading state.

Definition at line 749 of file MSLink.cpp.

References myApproachingVehicles.

◆ computeDistToDivergence()

double MSLink::computeDistToDivergence ( const MSLane lane,
const MSLane sibling,
double  minDist,
bool  sameSource 
) const
private

compute point of divergence for geomatries with a common start or end

Definition at line 568 of file MSLink.cpp.

References PositionVector::distances(), MSLane::getEntryLink(), MSLane::getLength(), MSLane::getShape(), PositionVector::length2D(), MAX2(), MIN3(), myAmIndirect, PositionVector::reverse(), and toString().

Referenced by setRequestInformation().

Here is the caller graph for this function:

◆ computeFoeArrivalTimeBraking()

SUMOTime MSLink::computeFoeArrivalTimeBraking ( SUMOTime  arrivalTime,
const SUMOVehicle foe,
SUMOTime  foeArrivalTime,
double  impatience,
double  dist,
double &  fasb 
)
staticprivate

compute arrival time if foe vehicle is braking for ego

Definition at line 1081 of file MSLink.cpp.

References DELTA_T, gDebugFlag6, MSVehicleType::getCarFollowModel(), MSCFModel::getMaxDecel(), SUMOTrafficObject::getVehicleType(), SIMSTEP, SIMTIME, STEPS2TIME, and TIME2STEPS.

Referenced by blockedByFoe().

Here is the caller graph for this function:

◆ computeParallelLink()

MSLink * MSLink::computeParallelLink ( int  direction)
private

Definition at line 1976 of file MSLink.cpp.

References getLane(), getLaneBefore(), MSLane::getLinkCont(), and MSLane::getParallelLane().

Referenced by initParallelLinks().

Here is the caller graph for this function:

◆ contIntersect()

bool MSLink::contIntersect ( const MSLane lane,
const MSLane foe 
)
private

check if the lane intersects with a foe cont-lane

Definition at line 653 of file MSLink.cpp.

References MSLane::getLinkCont(), MSLane::getShape(), and PositionVector::intersectsAtLengths2D().

Referenced by setRequestInformation().

Here is the caller graph for this function:

◆ couldBrakeForLeader()

bool MSLink::couldBrakeForLeader ( double  followDist,
double  leaderDist,
const MSVehicle follow,
const MSVehicle leader 
)
staticprivate

whether follower could stay behind leader (possibly by braking)

Definition at line 2133 of file MSLink.cpp.

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

Referenced by getZipperSpeed().

Here is the caller graph for this function:

◆ fromInternalLane()

bool MSLink::fromInternalLane ( ) const
inline

return whether the fromLane of this link is an internal lane

Definition at line 617 of file MSLink.h.

References myInternalLaneBefore.

Referenced by getLeaderInfo(), MSVehicle::isLeader(), and setRequestInformation().

Here is the caller graph for this function:

◆ getApproaching() [1/2]

const ApproachInfos & MSLink::getApproaching ( ) const
inline

return all approaching vehicles

Definition at line 308 of file MSLink.h.

References myApproachingVehicles.

Referenced by getClosest().

Here is the caller graph for this function:

◆ getApproaching() [2/2]

MSLink::ApproachingVehicleInformation MSLink::getApproaching ( const SUMOVehicle veh) const

Definition at line 738 of file MSLink.cpp.

References INVALID_TIME, and myApproachingVehicles.

Referenced by libsumo::Helper::applySubscriptionFilterTurn(), MSDriveWay::canUseSiding(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), getLeaderInfo(), MSDriveWay::hasLinkConflict(), and MSRailSignal::storeTraCIVehicles().

Here is the caller graph for this function:

◆ getClosest()

std::pair< const SUMOVehicle *const, const MSLink::ApproachingVehicleInformation > MSLink::getClosest ( ) const

get the closest vehicle approaching this link

Definition at line 2200 of file MSLink.cpp.

References getApproaching().

Referenced by MSDriveWay::canUseSiding(), MSDriveWay::hasLinkConflict(), and MSRailSignal::storeTraCIVehicles().

Here is the caller graph for this function:

◆ getConflicts()

const std::vector< ConflictInfo > & MSLink::getConflicts ( ) const
inline

Definition at line 666 of file MSLink.h.

References myConflicts.

Referenced by GUILane::debugDrawFoeIntersections(), and LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes().

Here is the caller graph for this function:

◆ getCorrespondingEntryLink()

const MSLink * MSLink::getCorrespondingEntryLink ( ) const

returns the corresponding entry link for exitLinks to a junction.

Definition at line 1404 of file MSLink.cpp.

References MSLane::getIncomingLanes(), MSLane::isInternal(), and myLaneBefore.

Referenced by MSDriveWay::findFlankProtection(), MSDriveWay::getDepartureDriveway(), MSVehicle::isLeader(), opened(), MSVehicle::planMoveInternal(), and setRequestInformation().

Here is the caller graph for this function:

◆ getCorrespondingExitLink()

const MSLink * MSLink::getCorrespondingExitLink ( ) const

returns the corresponding exit link for entryLinks to a junction.

Definition at line 1392 of file MSLink.cpp.

References MSLane::getLinkCont(), getViaLane(), and myInternalLane.

Referenced by MSDriveWay::checkFlanks(), and MSDevice_SSM::classifyEncounter().

Here is the caller graph for this function:

◆ getCustomConflict()

const MSLink::CustomConflict * MSLink::getCustomConflict ( const MSLane foeLane) const
private

return CustomConflict with foeLane if it is defined

Definition at line 186 of file MSLink.cpp.

References MSLane::getNormalPredecessorLane(), MSLane::getNormalSuccessorLane(), and myCustomConflicts.

Referenced by setRequestInformation().

Here is the caller graph for this function:

◆ getDescription()

std::string MSLink::getDescription ( ) const

get string description for this link

Definition at line 2168 of file MSLink.cpp.

References Named::getID(), getViaLaneOrLane(), and myLaneBefore.

Referenced by MSVehicle::adaptToLeaders(), MSDriveWay::addFoes(), MSDriveWay::addSwitchFoes(), blockedByFoe(), MSVehicle::brakeForOverlap(), MSDriveWay::buildDriveWay(), MSDriveWay::checkCrossingFlanks(), MSDriveWay::findFlankProtection(), getLeaderInfo(), opened(), and recheckSetRequestInformation().

Here is the caller graph for this function:

◆ getDirection()

LinkDirection MSLink::getDirection ( ) const
inline

Returns the direction the vehicle passing this link take.

Returns
The direction of this link

Definition at line 408 of file MSLink.h.

References myDirection.

Referenced by MSLaneChanger::changeOpposite(), MSDriveWay::checkFlanks(), getLeaderInfo(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSInternalJunction::indirectBicycleTurn(), and MSVehicle::processLaneAdvances().

Here is the caller graph for this function:

◆ getDistToFoePedCrossing()

double MSLink::getDistToFoePedCrossing ( ) const
inline

Definition at line 506 of file MSLink.h.

References myDistToFoePedCrossing.

◆ getFirstApproachingFoe()

std::pair< const SUMOVehicle *, const MSLink * > MSLink::getFirstApproachingFoe ( const MSLink wrapAround) const

get the foe vehicle that is closest to the intersection or nullptr along with the foe link This function is used for finding circular deadlock at right_before_left junctions

Parameters
[in]wrapAroundThe link on which the ego vehicle wants to enter the junction

Definition at line 1146 of file MSLink.cpp.

References getLaneBefore(), and myFoeLinks.

◆ getFoeLanes()

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

Definition at line 662 of file MSLink.h.

References myFoeLanes.

Referenced by GUILane::debugDrawFoeIntersections(), LIBSUMO_NAMESPACE::Lane::getInternalFoes(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), and MSDevice_SSM::getVehiclesOnJunction().

Here is the caller graph for this function:

◆ getFoeLinks()

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

Definition at line 670 of file MSLink.h.

References myFoeLinks.

Referenced by MSDevice_SSM::classifyEncounter(), LIBSUMO_NAMESPACE::Lane::getFoes(), and MSLane::incoming_lane_priority_sorter::operator()().

Here is the caller graph for this function:

◆ getFoeVisibilityDistance()

double MSLink::getFoeVisibilityDistance ( ) const
inline

Returns the distance on the approaching lane from which an approaching vehicle is able to see all relevant foes and may accelerate if the link is minor and no foe is approaching.

Returns
The foe-visibility-distance

Definition at line 502 of file MSLink.h.

References myFoeVisibilityDistance.

Referenced by MSVehicle::passingMinor(), and MSVehicle::processLinkApproaches().

Here is the caller graph for this function:

◆ getFuturePosition()

Position MSLink::getFuturePosition ( const MSPerson p,
double  timeHorizon = 1 
) const
private

return extrapolated position of the given person after the given time

Definition at line 1941 of file MSLink.cpp.

References MSTransportable::getAngle(), MSTransportable::getMaxSpeed(), and MSTransportable::getPosition().

Referenced by checkWalkingAreaFoe().

Here is the caller graph for this function:

◆ getGreenFraction()

double MSLink::getGreenFraction ( ) const
inline

Returns the average proportion of green time to cycle time.

Definition at line 648 of file MSLink.h.

References myGreenFraction.

Referenced by MESegment::send().

Here is the caller graph for this function:

◆ getIndex()

int MSLink::getIndex ( ) const
inline

Returns the respond index (for visualization)

Returns
The respond index for this link

Definition at line 439 of file MSLink.h.

References myIndex.

Referenced by MSDriveWay::checkCrossingFlanks(), MSDevice_SSM::classifyEncounter(), GUILane::drawLinkNo(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), MSDriveWay::getJunctionLinkID(), getLeaderInfo(), MSTrafficLightLogic::init(), and MSVehicle::isLeader().

Here is the caller graph for this function:

◆ getInternalLaneBefore()

const MSLane * MSLink::getInternalLaneBefore ( ) const
inline

return myInternalLaneBefore (always 0 when compiled without internal lanes)

Definition at line 600 of file MSLink.h.

References myInternalLaneBefore.

Referenced by MSVehicle::adaptToLeader(), MSVehicle::checkLinkLeader(), MSDevice_SSM::classifyEncounter(), getLeaderInfo(), MSLink::ConflictInfo::getLengthBehindCrossing(), isExitLinkAfterInternalJunction(), isInternalJunctionLink(), MSVehicle::isLeader(), MSVehicle::processLinkApproaches(), and recheckSetRequestInformation().

Here is the caller graph for this function:

◆ getInternalLengthsAfter()

double MSLink::getInternalLengthsAfter ( ) const

Returns the cumulative length of all internal lanes after this link.

Returns
sum of the lengths of all internal lanes following this link

Definition at line 1270 of file MSLink.cpp.

References MSLane::getLength(), MSLane::getLinkCont(), MSLane::isInternal(), and myInternalLane.

Referenced by MSDevice_SSM::classifyEncounter(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), and MSLane::getUpcomingLinks().

Here is the caller graph for this function:

◆ getInternalLengthsBefore()

double MSLink::getInternalLengthsBefore ( ) const

Returns the cumulative length of all internal lanes before this link.

Returns
sum of the lengths of all internal lanes before this link

Definition at line 1282 of file MSLink.cpp.

References MSLane::getIncomingLanes(), MSLane::getLength(), MSLane::isInternal(), and myInternalLane.

◆ getJunction()

MSJunction * MSLink::getJunction ( ) const
inline

◆ getLane()

◆ getLaneBefore()

const MSLane * MSLink::getLaneBefore ( ) const
inline

◆ getLastGreenState()

LinkState MSLink::getLastGreenState ( ) const
inline

Returns the last green state of the link.

Returns
The last green state of this link

Definition at line 393 of file MSLink.h.

References myLastGreenState.

Referenced by lastWasContMajor().

Here is the caller graph for this function:

◆ getLastStateChange()

SUMOTime MSLink::getLastStateChange ( ) const
inline

Definition at line 399 of file MSLink.h.

References myLastStateChange.

Referenced by MSPModel_Striping::PState::ignoreRed(), MSVehicle::ignoreRed(), and MSVehicle::planMoveInternal().

Here is the caller graph for this function:

◆ getLateralShift()

double MSLink::getLateralShift ( ) const
inline

return lateral shift that must be applied when passing this link

Definition at line 683 of file MSLink.h.

References myLateralShift.

Referenced by MSVehicle::brakeForOverlap(), MSVehicle::enterLaneAtMove(), and MSVehicle::setAngle().

Here is the caller graph for this function:

◆ getLeaderInfo()

const MSLink::LinkLeaders MSLink::getLeaderInfo ( const MSVehicle ego,
double  dist,
std::vector< const MSPerson * > *  collectBlockers = 0,
bool  isShadowLink = false 
) const

Returns all potential link leaders (vehicles on foeLanes) Valid during the planMove() phase.

Parameters
[in]egoThe ego vehicle that is looking for leaders
[in]distThe distance of the vehicle who is asking about the leader to this link
[out]blockingReturn blocking pedestrians if a vector is given
[in]isShadowLinkwhether this link is a shadowLink for ego
Returns
The all vehicles on foeLanes and their (virtual) distances to the asking vehicle
Todo:
consider lateral position (depending on whether the crossing is encountered on the way in or out)

Definition at line 1421 of file MSLink.cpp.

References MSLane::anyVehiclesBegin(), MSLane::anyVehiclesEnd(), MSPModel::blockedAtDist(), MSCFModel::brakeGap(), checkWalkingAreaFoe(), fromInternalLane(), MSGlobals::gComputeLC, gDebugFlag1, getApproaching(), MSVehicle::getBackPositionOnLane(), MSLane::getBidiLane(), MSVehicle::getCarFollowModel(), getDescription(), getDirection(), MSLane::getEdge(), MSLane::getEntryLink(), Named::getID(), MSLane::getIncomingLanes(), MSLane::getIndex(), getIndex(), MSNet::getInstance(), getInternalLaneBefore(), SUMOVTypeParameter::getJMParam(), getLane(), MSVehicle::getLane(), getLaneBefore(), MSVehicle::getLaneChangeModel(), MSVehicle::getLateralPositionOnLane(), MSVehicle::getLatOffset(), MSBaseVehicle::getLength(), MSLane::getLength(), MSVehicleType::getLength(), MSLane::getLinkCont(), MSLane::getLogicalPredecessorLane(), MSAbstractLaneChangeModel::getManeuverDist(), MSVehicleType::getMinGap(), MSTransportableControl::getMovementModel(), MSLane::getNormalPredecessorLane(), MSVehicleType::getParameter(), MSNet::getPersonControl(), MSVehicle::getSpeed(), MSAbstractLaneChangeModel::getSpeedLat(), getState(), MSEdge::getToJunction(), MSVehicleType::getVehicleClass(), MSBaseVehicle::getVehicleType(), getViaLaneOrLane(), MSVehicle::getWaitingTime(), MSLane::getWidth(), MSVehicleType::getWidth(), MSGlobals::gIgnoreJunctionBlocker, MSGlobals::gLateralResolution, MSGlobals::gLefthand, MSGlobals::gSublane, MSNet::hasPersons(), haveGreen(), havePriority(), haveRed(), ignoreFoe(), MSVehicle::ignoreRed(), INVALID_TIME, MSVehicle::isBidiOn(), MSLane::isCrossing(), isExitLinkAfterInternalJunction(), MSVehicle::isFrontOnLane(), MSEdge::isInternal(), MSLane::isInternal(), isInternalJunctionLink(), MSLane::isNormal(), MSAbstractLaneChangeModel::isOpposite(), MSBaseVehicle::isStopped(), MSAbstractLaneChangeModel::isStrategicBlocked(), JM_CROSSING_GAP_DEFAULT, LEFT, LL_FROM_LEFT, LL_IN_THE_WAY, LL_SAME_SOURCE, LL_SAME_TARGET, MAX2(), myAmIndirect, myApproachingPersons, myConflicts, myDirection, myFoeLanes, myIndex, myInternalLaneBefore, myJunction, myLane, myLaneBefore, myRadius, myState, mySublaneFoeLanes, myWalkingAreaFoe, myWalkingAreaFoeExit, NO_INTERSECTION, MSPModel::SAFETY_GAP, SIMSTEP, SIMTIME, STEPS2TIME, SUMO_ATTR_JM_ADVANCE, SUMO_ATTR_JM_CROSSING_GAP, SUMO_ATTR_JM_EXTRA_GAP, SUMO_ATTR_JM_STOPLINE_CROSSING_GAP, SVC_BICYCLE, toString(), MSLink::ApproachingVehicleInformation::willPass, and MSVehicle::willStop().

Referenced by MSPModel_Striping::addCrossingVehs(), and MSVehicle::checkLinkLeader().

Here is the caller graph for this function:

◆ getLeaveTime()

SUMOTime MSLink::getLeaveTime ( const SUMOTime  arrivalTime,
const double  arrivalSpeed,
const double  leaveSpeed,
const double  vehicleLength 
) const

return the expected time at which the given vehicle will clear the link

Definition at line 755 of file MSLink.cpp.

References getLength(), MAX2(), SUMOTime_MAX, and TIME2STEPS.

Referenced by opened(), and setApproaching().

Here is the caller graph for this function:

◆ getLength()

double MSLink::getLength ( ) const
inline

Returns the length of this link.

Returns
The length of this link

Definition at line 491 of file MSLink.h.

References myLength.

Referenced by MEVehicle::estimateLeaveSpeed(), getLeaveTime(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSE2Collector::initAuxiliaries(), MSE2Collector::recalculateDetectorLength(), MSE2Collector::selectLanes(), and setRequestInformation().

Here is the caller graph for this function:

◆ getLengthBeforeCrossing()

double MSLink::getLengthBeforeCrossing ( const MSLane foeLane) const

Returns the internal length from the beginning of the link's internal lane before to the crossing with the given foe lane if applicable, if the lane is no foe lane to the link, INVALID_DOUBLE is returned.

See also
getLengthsBeforeCrossing()

Definition at line 1325 of file MSLink.cpp.

References MSLane::getEntryLink(), Named::getID(), getLaneBefore(), MSLane::getLength(), INVALID_DOUBLE, myConflicts, myFoeLanes, and myInternalLaneBefore.

Referenced by getLengthsBeforeCrossing().

Here is the caller graph for this function:

◆ getLengthsBeforeCrossing()

double MSLink::getLengthsBeforeCrossing ( const MSLane foeLane) const

Returns the sum of the lengths along internal lanes following this link to the crossing with the given foe lane, if the lane is no foe lane to any of the internal lanes, INVALID_DOUBLE is returned.

See also
getLengthBeforeCrossing()

Definition at line 1299 of file MSLink.cpp.

References MSLane::getLength(), getLengthBeforeCrossing(), MSLane::getLinkCont(), getViaLane(), INVALID_DOUBLE, and myInternalLane.

Referenced by MSDevice_SSM::classifyEncounter().

Here is the caller graph for this function:

◆ getMesoTLSPenalty()

SUMOTime MSLink::getMesoTLSPenalty ( ) const
inline

Returns the time penalty for passing a tls-controlled link (meso)

Definition at line 643 of file MSLink.h.

References myMesoTLSPenalty.

Referenced by MESegment::getLinkPenalty().

Here is the caller graph for this function:

◆ getOffState()

LinkState MSLink::getOffState ( ) const
inline

Returns the off-state for the link.

Returns
The current state of this link

Definition at line 385 of file MSLink.h.

References myOffState.

Referenced by setRequestInformation().

Here is the caller graph for this function:

◆ getOppositeDirectionLink()

MSLink * MSLink::getOppositeDirectionLink ( ) const

return the link that is the opposite entry link to this one

Definition at line 1963 of file MSLink.cpp.

References MSLane::getLinkCont(), MSLane::getOpposite(), myLane, and myLaneBefore.

Referenced by MSVehicle::setApproachingForAllLinks().

Here is the caller graph for this function:

◆ getParallelLink()

MSLink * MSLink::getParallelLink ( int  direction) const

return the link that is parallel to this lane or 0

Definition at line 1951 of file MSLink.cpp.

References MSLane::getOpposite(), myLane, myParallelLeft, and myParallelRight.

Referenced by MSVehicle::checkLinkLeaderCurrentAndParallel(), MSVehicle::processLinkApproaches(), GUIVehicle::selectBlockingFoes(), MSVehicle::setApproachingForAllLinks(), and MSVehicle::updateDriveItems().

Here is the caller graph for this function:

◆ getPermissions()

SVCPermissions MSLink::getPermissions ( ) const
inline

who may use this link

Definition at line 675 of file MSLink.h.

References myPermissions.

◆ getState()

LinkState MSLink::getState ( ) const
inline

Returns the current state of the link.

Returns
The current state of this link

Definition at line 376 of file MSLink.h.

References myState.

Referenced by MSEdge::allowsLaneChanging(), MSLaneChanger::changeOpposite(), GUILane::drawLinkRule(), Command_SaveTLCoupledLaneDet::execute(), MSLane::getIncomingLinkState(), getLeaderInfo(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSVehicle::ignoreRed(), MSLane::isInsertionSuccess(), MSVehicle::isLeader(), lastWasContState(), opened(), MSVehicle::processLinkApproaches(), and MEVehicle::setApproaching().

Here is the caller graph for this function:

◆ getTLIndex()

int MSLink::getTLIndex ( ) const
inline

Returns the TLS index.

Definition at line 444 of file MSLink.h.

References myTLIndex.

Referenced by MSDriveWay::addFoes(), MSDriveWay::getClickableTLLinkID(), MSDriveWay::getDepartureDriveway(), MSDevice_GLOSA::getTimeToNextSwitch(), MSDevice_GLOSA::getTimeToSwitch(), MSDriveWay::getTLLinkID(), MSDriveWay::hasLinkConflict(), MSTrafficLightLogic::init(), MSDevice_GLOSA::timeGreen(), and MSRailSignal::writeBlocks().

Here is the caller graph for this function:

◆ getTLLogic()

◆ getViaLane()

◆ getViaLaneOrLane()

◆ getWalkingAreaFoe()

const MSLane * MSLink::getWalkingAreaFoe ( )
inline

get walkingarea as foes

Definition at line 274 of file MSLink.h.

References myWalkingAreaFoe.

◆ getWalkingAreaFoeExit()

const MSLane * MSLink::getWalkingAreaFoeExit ( )
inline

Definition at line 277 of file MSLink.h.

References myWalkingAreaFoeExit.

◆ getZipperSpeed()

◆ hasApproachingFoe()

bool MSLink::hasApproachingFoe ( SUMOTime  arrivalTime,
SUMOTime  leaveTime,
double  speed,
double  decel 
) const

Returns the information whether a vehicle is approaching on one of the link's foe streams.

Valid after the vehicles have set their requests

Parameters
[in]arrivalTimeThe arrivalTime of the vehicle who checks for an approaching foe
[in]leaveTimeThe leaveTime of the vehicle who checks for an approaching foe
[in]speedThe speed with which the checking vehicle plans to leave the link
[in]decelThe maximum deceleration of the checking vehicle
Returns
Whether a foe of this link is approaching

Definition at line 1130 of file MSLink.cpp.

References myFoeLanes, myFoeLinks, and myLane.

Referenced by LIBSUMO_NAMESPACE::Vehicle::getNextLinks().

Here is the caller graph for this function:

◆ hasFoes()

bool MSLink::hasFoes ( ) const
inline

Returns whether this link belongs to a junction where more than one edge is incoming.

Returns
Whether any foe links exist

Definition at line 514 of file MSLink.h.

References myHasFoes.

Referenced by MSVehicle::keepClear(), and setRequestInformation().

Here is the caller graph for this function:

◆ haveGreen()

bool MSLink::haveGreen ( ) const
inline

Definition at line 475 of file MSLink.h.

References LINKSTATE_TL_GREEN_MAJOR, LINKSTATE_TL_GREEN_MINOR, and myState.

Referenced by getLeaderInfo(), MSDevice_GLOSA::getTimeToSwitch(), MSDevice_GLOSA::notifyMove(), and setTLState().

Here is the caller graph for this function:

◆ haveOffPriority()

bool MSLink::haveOffPriority ( ) const
inline

Definition at line 460 of file MSLink.h.

References myOffState.

◆ havePriority()

bool MSLink::havePriority ( ) const
inline

Returns whether this link is a major link.

Returns
Whether the link has a large priority

Definition at line 456 of file MSLink.h.

References myState.

Referenced by MSLaneChanger::changeOpposite(), MSVehicle::checkRewindLinkLanes(), MSLaneChanger::getLaneAfter(), getLeaderInfo(), MESegment::getLinkPenalty(), MSPModel_Striping::getNextLaneObstacles(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSVehicle::isLeader(), MESegment::isOpen(), lastWasContMajor(), MSVehicle::nextLinkPriority(), opened(), MSVehicle::passingMinor(), MSVehicle::processLinkApproaches(), MSEdge::recalcCache(), and GUILane::setFunctionalColor().

Here is the caller graph for this function:

◆ haveRed()

bool MSLink::haveRed ( ) const
inline

Returns whether this link is blocked by a red (or redyellow) traffic light.

Returns
Whether the link has a red light

Definition at line 467 of file MSLink.h.

References LINKSTATE_TL_RED, LINKSTATE_TL_REDYELLOW, and myState.

Referenced by blockedAtTime(), MSLaneChanger::changeOpposite(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), getLeaderInfo(), MSDevice_GLOSA::getTimeToSwitch(), MSPModel_Striping::PState::ignoreRed(), MSVehicle::ignoreRed(), MSVehicle::isLeader(), MSDevice_GLOSA::notifyMove(), opened(), MSVehicle::planMoveInternal(), and MSVehicle::processLaneAdvances().

Here is the caller graph for this function:

◆ haveYellow()

bool MSLink::haveYellow ( ) const
inline

Definition at line 471 of file MSLink.h.

References LINKSTATE_TL_YELLOW_MAJOR, LINKSTATE_TL_YELLOW_MINOR, and myState.

Referenced by MSLaneChanger::changeOpposite(), MSDevice_GLOSA::getTimeToSwitch(), MSVehicle::ignoreRed(), MSVehicle::isLeader(), lastWasContMajor(), MSDevice_GLOSA::notifyMove(), and MSVehicle::processLinkApproaches().

Here is the caller graph for this function:

◆ ignoreFoe()

bool MSLink::ignoreFoe ( const SUMOTrafficObject ego,
const SUMOTrafficObject foe 
)
static

◆ initParallelLinks()

void MSLink::initParallelLinks ( )

initialize parallel links (to be called after all links are loaded)

Definition at line 2142 of file MSLink.cpp.

References computeParallelLink(), myParallelLeft, and myParallelRight.

◆ isConflictEntryLink()

bool MSLink::isConflictEntryLink ( ) const

return whether this link enters the conflict area (not a continuation link)

Definition at line 1365 of file MSLink.cpp.

References isEntryLink(), myAmCont, myInternalLane, and myInternalLaneBefore.

Referenced by MSVehicle::processLaneAdvances().

Here is the caller graph for this function:

◆ isCont()

bool MSLink::isCont ( ) const

Definition at line 1187 of file MSLink.cpp.

References LINKSTATE_ALLWAY_STOP, LINKSTATE_TL_OFF_BLINKING, myAmCont, myAmContOff, and myState.

Referenced by MSVehicle::checkRewindLinkLanes(), opened(), MSVehicle::processLinkApproaches(), and setRequestInformation().

Here is the caller graph for this function:

◆ isEntryLink()

bool MSLink::isEntryLink ( ) const

return whether the toLane of this link is an internal lane and fromLane is a normal lane

Definition at line 1356 of file MSLink.cpp.

References MSGlobals::gUsingInternalLanes, myInternalLane, and myInternalLaneBefore.

Referenced by isConflictEntryLink(), MSVehicle::processLaneAdvances(), and setRequestInformation().

Here is the caller graph for this function:

◆ isExitLink()

bool MSLink::isExitLink ( ) const

return whether the fromLane of this link is an internal lane and toLane is a normal lane

Definition at line 1371 of file MSLink.cpp.

References MSGlobals::gUsingInternalLanes, myInternalLane, and myInternalLaneBefore.

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

Here is the caller graph for this function:

◆ isExitLinkAfterInternalJunction()

bool MSLink::isExitLinkAfterInternalJunction ( ) const

return whether the fromLane of this link is an internal lane and its incoming lane is also an internal lane

Definition at line 1380 of file MSLink.cpp.

References MSLane::getIncomingLanes(), getInternalLaneBefore(), MSGlobals::gUsingInternalLanes, and myInternalLaneBefore.

Referenced by getLeaderInfo(), MSVehicle::isLeader(), and setRequestInformation().

Here is the caller graph for this function:

◆ isIndirect()

bool MSLink::isIndirect ( ) const
inline

whether this link is the start of an indirect turn

Definition at line 528 of file MSLink.h.

References myAmIndirect.

Referenced by MSVehicle::isLeader().

Here is the caller graph for this function:

◆ isInFront()

bool MSLink::isInFront ( const MSVehicle ego,
const PositionVector egoPath,
const Position pPos 
) const
private

whether the given person is in front of the car

Definition at line 1907 of file MSLink.cpp.

References GeomHelper::angleDiff(), Position::angleTo2D(), DEG2RAD, PositionVector::distance2D(), MSVehicle::getAngle(), MSVehicle::getPosition(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), MSBaseVehicle::isSelected(), RAD2DEG, and MSPModel::SAFETY_GAP.

Referenced by checkWalkingAreaFoe().

Here is the caller graph for this function:

◆ isInternalJunctionLink()

bool MSLink::isInternalJunctionLink ( ) const

return whether the fromLane and the toLane of this link are internal lanes

Definition at line 1415 of file MSLink.cpp.

References getInternalLaneBefore(), and myInternalLane.

Referenced by MSVehicle::checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), and getLeaderInfo().

Here is the caller graph for this function:

◆ isOnComingPed()

double MSLink::isOnComingPed ( const MSVehicle ego,
const MSPerson p 
) const
private

whether the given person is walking towards the car returned as a factor in [0, 1]

Definition at line 1923 of file MSLink.cpp.

References GeomHelper::angleDiff(), Position::angleTo2D(), DEG2RAD, MSTransportable::getAngle(), MSVehicle::getPosition(), MSTransportable::getPosition(), MSBaseVehicle::isSelected(), and RAD2DEG.

Referenced by checkWalkingAreaFoe().

Here is the caller graph for this function:

◆ isTLSControlled()

bool MSLink::isTLSControlled ( ) const
inline

Definition at line 479 of file MSLink.h.

References myLogic.

Referenced by MESegment::getLinkPenalty(), MSEdge::recalcCache(), and MESegment::send().

Here is the caller graph for this function:

◆ isTurnaround()

bool MSLink::isTurnaround ( ) const
inline

Definition at line 483 of file MSLink.h.

References myDirection, TURN, and TURN_LEFTHAND.

Referenced by MSDriveWay::isSwitch(), and MSEdge::recalcCache().

Here is the caller graph for this function:

◆ keepClear()

bool MSLink::keepClear ( ) const
inline

whether the junction after this link must be kept clear

Definition at line 523 of file MSLink.h.

References myKeepClear.

Referenced by MSVehicle::keepClear().

Here is the caller graph for this function:

◆ lastWasContMajor()

bool MSLink::lastWasContMajor ( ) const

whether this is a link past an internal junction which currently has priority

Definition at line 1194 of file MSLink.cpp.

References MSLane::getEdge(), getLastGreenState(), MSLane::getLinkTo(), MSLane::getLogicalPredecessorLane(), havePriority(), haveYellow(), MSEdge::isInternal(), LINKSTATE_TL_GREEN_MAJOR, myAmCont, myHavePedestrianCrossingFoe, and myInternalLane.

Referenced by MSVehicle::processLinkApproaches().

Here is the caller graph for this function:

◆ lastWasContState()

bool MSLink::lastWasContState ( LinkState  linkState) const

whether this is a link past an internal junction where the entry to the junction currently has the given state

Definition at line 1220 of file MSLink.cpp.

References MSLane::getEdge(), MSLane::getLinkTo(), MSLane::getLogicalPredecessorLane(), getState(), MSEdge::isInternal(), myAmCont, myHavePedestrianCrossingFoe, and myInternalLane.

Referenced by opened().

Here is the caller graph for this function:

◆ lateralOverlap()

bool MSLink::lateralOverlap ( double  posLat,
double  width,
double  posLat2,
double  width2 
)
staticprivate

check whether the given vehicle positions overlap laterally

Definition at line 2163 of file MSLink.cpp.

Referenced by opened().

Here is the caller graph for this function:

◆ opened()

bool MSLink::opened ( SUMOTime  arrivalTime,
double  arrivalSpeed,
double  leaveSpeed,
double  vehicleLength,
double  impatience,
double  decel,
SUMOTime  waitingTime,
double  posLat = 0,
BlockingFoes collectFoes = nullptr,
bool  ignoreRed = false,
const SUMOTrafficObject ego = nullptr,
double  dist = -1 
) const

Returns the information whether the link may be passed.

Valid after the junctions have set their reponds

Parameters
[in]collectFoesIf a vector is passed, all blocking foes are collected and inserted into this vector
Returns
Whether this link may be passed.

Definition at line 762 of file MSLink.cpp.

References blockedByFoe(), gDebugFlag1, getCorrespondingEntryLink(), getDescription(), Named::getID(), MSLane::getIndex(), SUMOVTypeParameter::getJMParam(), SUMOVehicle::getLateralPositionOnLane(), getLeaveTime(), MSVehicleType::getParameter(), getState(), SUMOTrafficObject::getVehicleType(), getViaLaneOrLane(), MSVehicleType::getWidth(), MSGlobals::gLateralResolution, MSGlobals::gLefthand, MSGlobals::gUseMesoSim, MSGlobals::gUsingInternalLanes, havePriority(), haveRed(), isCont(), lastWasContState(), lateralOverlap(), LEFT, LINKSTATE_ALLWAY_STOP, LINKSTATE_STOP, LINKSTATE_TL_GREEN_MAJOR, LINKSTATE_TL_RED, LINKSTATE_ZIPPER, myDirection, myFoeLinks, myLane, myOffFoeLinks, myState, mySublaneFoeLinks, mySublaneFoeLinks2, PARTLEFT, PARTRIGHT, RIGHT, SIMTIME, STRAIGHT, SUMO_ATTR_JM_ALLWAYSTOP_WAIT, SUMO_ATTR_JM_STOPSIGN_WAIT, TIME2STEPS, toString(), and TS.

Referenced by MSVehicle::checkRewindLinkLanes(), MSPModel_JuPedSim::execute(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MESegment::isOpen(), MSPModel_Striping::moveInDirectionOnLane(), MSVehicle::processLinkApproaches(), and GUIVehicle::selectBlockingFoes().

Here is the caller graph for this function:

◆ operator=()

MSLink & MSLink::operator= ( const MSLink s)
private

invalidated assignment operator

◆ recheckSetRequestInformation()

void MSLink::recheckSetRequestInformation ( )
static

post-processing for legacy networks

Definition at line 525 of file MSLink.cpp.

References MSLink::ConflictInfo::conflictSize, MSLink::ConflictInfo::flag, MSLink::ConflictInfo::foeConflictIndex, getDescription(), getInternalLaneBefore(), MSLane::getLength(), MSLane::getShape(), MSLane::getWidth(), PositionVector::intersectsAtLengths2D(), MAX2(), myConflicts, myFoeLanes, myRecheck, and WRITE_WARNING.

Referenced by MSJunctionControl::postloadInitContainer().

Here is the caller graph for this function:

◆ removeApproaching()

void MSLink::removeApproaching ( const SUMOVehicle veh)

removes the vehicle from myApproachingVehicles

Definition at line 703 of file MSLink.cpp.

References DEBUG_COND2, Named::getID(), myApproachingVehicles, myLane, myLaneBefore, and SIMTIME.

Referenced by MEVehicle::replaceRoute(), MESegment::send(), and MSVehicle::updateDriveItems().

Here is the caller graph for this function:

◆ removeApproachingPerson()

void MSLink::removeApproachingPerson ( const MSPerson person)

removes the person from myApproachingPersons

Definition at line 719 of file MSLink.cpp.

References DEBUG_COND2, Named::getID(), myApproachingPersons, myLane, myLaneBefore, SIMSTEP, SIMTIME, time2string(), and WRITE_WARNINGF.

◆ setApproaching() [1/2]

void MSLink::setApproaching ( const SUMOVehicle approaching,
ApproachingVehicleInformation  ai 
)

Sets the information about an approaching vehicle.

Definition at line 681 of file MSLink.cpp.

References DEBUG_COND2, Named::getID(), myApproachingVehicles, myLane, myLaneBefore, and SIMTIME.

◆ setApproaching() [2/2]

void MSLink::setApproaching ( const SUMOVehicle approaching,
const SUMOTime  arrivalTime,
const double  arrivalSpeed,
const double  leaveSpeed,
const bool  setRequest,
const double  arrivalSpeedBraking,
const SUMOTime  waitingTime,
double  dist,
double  latOffset 
)

Sets the information about an approaching vehicle.

The information is stored in myApproachingVehicles.

Definition at line 663 of file MSLink.cpp.

References DEBUG_COND2, Named::getID(), getLeaveTime(), MSVehicleType::getLength(), SUMOTrafficObject::getSpeed(), SUMOTrafficObject::getVehicleType(), myApproachingVehicles, myLane, myLaneBefore, and SIMTIME.

Referenced by MSStateHandler::myStartElement(), MSVehicle::registerInsertionApproach(), MEVehicle::setApproaching(), MSVehicle::setApproachingForAllLinks(), and MSVehicle::updateDriveItems().

Here is the caller graph for this function:

◆ setApproachingPerson()

void MSLink::setApproachingPerson ( const MSPerson approaching,
const SUMOTime  arrivalTime,
const SUMOTime  leaveTime 
)

Sets the information about an approaching person (only for a pedestrian crossing)

Definition at line 695 of file MSLink.cpp.

References myApproachingPersons.

◆ setGreenFraction()

void MSLink::setGreenFraction ( const double  fraction)
inline

Sets the green fraction for passing a tls-controlled link (meso)

Definition at line 658 of file MSLink.h.

References myGreenFraction.

Referenced by MSTrafficLightLogic::initMesoTLSPenalties().

Here is the caller graph for this function:

◆ setMesoTLSPenalty()

void MSLink::setMesoTLSPenalty ( const SUMOTime  penalty)
inline

Sets the time penalty for passing a tls-controlled link (meso)

Definition at line 653 of file MSLink.h.

References myMesoTLSPenalty.

Referenced by MSTrafficLightLogic::initMesoTLSPenalties().

Here is the caller graph for this function:

◆ setRequestInformation()

void MSLink::setRequestInformation ( int  index,
bool  hasFoes,
bool  isCont,
const std::vector< MSLink * > &  foeLinks,
const std::vector< MSLane * > &  foeLanes,
MSLane internalLaneBefore = 0 
)

Sets the request information.

Because traffic lights and junction logics are loaded after links, we have to assign the information about the right-of-way requests and responses after the initialisation.

Todo:
Unsecure!

Definition at line 201 of file MSLink.cpp.

References PositionVector::angleAt2D(), GeomHelper::angleDiff(), checkContOff(), computeDistToDivergence(), CONFLICT_DEFAULT, CONFLICT_DUMMY_MERGE, CONFLICT_NO_INTERSECTION, CONFLICT_STOP_AT_INTERNAL_JUNCTION, contIntersect(), DEG2RAD, DIVERGENCE_MIN_WIDTH, MSLink::CustomConflict::endPos, fromInternalLane(), getCorrespondingEntryLink(), getCustomConflict(), MSLane::getEdge(), MSLane::getEntryLink(), MSEdge::getFromJunction(), Named::getID(), MSLane::getIncomingLanes(), getLaneBefore(), MSLane::getLength(), getLength(), MSLane::getLinkCont(), MSLane::getLogicalPredecessorLane(), GeomHelper::getMinAngleDiff(), MSLane::getNormalPredecessorLane(), getOffState(), MSLane::getShape(), getTLLogic(), getViaLane(), getViaLaneOrLane(), MSLane::getWidth(), MSGlobals::gLateralResolution, MSGlobals::gLefthand, hasFoes(), MSLane::interpolateGeometryPosToLanePos(), PositionVector::intersectsAtLengths2D(), isCont(), isEntryLink(), isExitLinkAfterInternalJunction(), MSEdge::isInternal(), MSLane::isNormal(), LEFT, PositionVector::length2D(), LINKSTATE_ALLWAY_STOP, MAX2(), MIN2(), myAmCont, myAmContOff, myConflicts, myDirection, myFoeLanes, myFoeLinks, myHasFoes, myHavePedestrianCrossingFoe, myIndex, myInternalLane, myInternalLaneBefore, myJunction, myLane, myLaneBefore, myLogic, myOffFoeLinks, myRadius, myRecheck, mySublaneFoeLanes, mySublaneFoeLinks, mySublaneFoeLinks2, GeomHelper::naviDegree(), NO_INTERSECTION, RIGHT, PositionVector::rotationAtOffset(), MSLink::CustomConflict::startPos, STRAIGHT, toString(), and updateDistToFoePedCrossing().

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

Here is the caller graph for this function:

◆ setTLLogic()

void MSLink::setTLLogic ( const MSTrafficLightLogic logic)

Sets the currently active tlLogic.

Parameters
[in]logicThe currently active logic

Definition at line 1181 of file MSLink.cpp.

References myLogic.

◆ setTLState()

void MSLink::setTLState ( LinkState  state,
SUMOTime  t 
)

Sets the current tl-state.

Parameters
[in]stateThe current state of the link
[in]tThe time of the state change

Definition at line 1169 of file MSLink.cpp.

References haveGreen(), myLastGreenState, myLastStateChange, and myState.

Referenced by MSTrafficLightLogic::addLink().

Here is the caller graph for this function:

◆ unsafeMergeSpeeds()

static bool MSLink::unsafeMergeSpeeds ( double  leaderSpeed,
double  followerSpeed,
double  leaderDecel,
double  followerDecel 
)
inlinestaticprivate

return whether the given vehicles may NOT merge safely

Definition at line 703 of file MSLink.h.

Referenced by blockedByFoe().

Here is the caller graph for this function:

◆ updateDistToFoePedCrossing()

void MSLink::updateDistToFoePedCrossing ( double  dist)
private

add information about another pedestrian crossing

Definition at line 2194 of file MSLink.cpp.

References MIN2(), and myDistToFoePedCrossing.

Referenced by setRequestInformation().

Here is the caller graph for this function:

◆ writeApproaching()

Field Documentation

◆ myAmCont

bool MSLink::myAmCont
private

◆ myAmContOff

bool MSLink::myAmContOff
private

Definition at line 802 of file MSLink.h.

Referenced by isCont(), and setRequestInformation().

◆ myAmIndirect

const bool MSLink::myAmIndirect
private

whether this connection is an indirect turning movement

Definition at line 870 of file MSLink.h.

Referenced by computeDistToDivergence(), getLeaderInfo(), and isIndirect().

◆ myApproachingPersons

PersonApproachInfos* MSLink::myApproachingPersons
private

◆ myApproachingVehicles

ApproachInfos MSLink::myApproachingVehicles
private

◆ myConflicts

◆ myCustomConflicts

std::vector<CustomConflict> MSLink::myCustomConflicts
private

Definition at line 830 of file MSLink.h.

Referenced by addCustomConflict(), and getCustomConflict().

◆ myDirection

LinkDirection MSLink::myDirection
private

An abstract (hopefully human readable) definition of the link's direction.

Definition at line 781 of file MSLink.h.

Referenced by getDirection(), getLeaderInfo(), isTurnaround(), opened(), and setRequestInformation().

◆ myDistToFoePedCrossing

double MSLink::myDistToFoePedCrossing
private

distance from the stop line to the first pedestrian crossing or maxdouble

Definition at line 794 of file MSLink.h.

Referenced by getDistToFoePedCrossing(), and updateDistToFoePedCrossing().

◆ myFoeLanes

std::vector<const MSLane*> MSLink::myFoeLanes
private

◆ myFoeLinks

std::vector<MSLink*> MSLink::myFoeLinks
private

◆ myFoeVisibilityDistance

double MSLink::myFoeVisibilityDistance
private

distance from which an approaching vehicle is able to see all relevant foes and may accelerate if the link is minor and no foe is approaching. Defaults to 4.5m. For zipper links (major) this is the distance at which zipper merging starts (and foes become "visible")

Definition at line 791 of file MSLink.h.

Referenced by getFoeVisibilityDistance(), and getZipperSpeed().

◆ myGreenFraction

double MSLink::myGreenFraction
private

green fraction at tls for mesoscopic simulation

Definition at line 819 of file MSLink.h.

Referenced by getGreenFraction(), and setGreenFraction().

◆ myHasFoes

bool MSLink::myHasFoes
private

Whether any foe links exist.

Definition at line 797 of file MSLink.h.

Referenced by hasFoes(), and setRequestInformation().

◆ myHavePedestrianCrossingFoe

bool MSLink::myHavePedestrianCrossingFoe
private

whether on of myFoeLanes is a crossing

Definition at line 847 of file MSLink.h.

Referenced by lastWasContMajor(), lastWasContState(), and setRequestInformation().

◆ myIndex

int MSLink::myIndex
private

The position within this respond.

Definition at line 762 of file MSLink.h.

Referenced by getIndex(), getLeaderInfo(), and setRequestInformation().

◆ myInternalLane

◆ myInternalLaneBefore

◆ myJunction

MSJunction* MSLink::myJunction
private

the junction to which this link belongs

Definition at line 879 of file MSLink.h.

Referenced by getJunction(), getLeaderInfo(), getZipperSpeed(), and setRequestInformation().

◆ myKeepClear

bool MSLink::myKeepClear
private

Definition at line 805 of file MSLink.h.

Referenced by keepClear().

◆ myLane

MSLane* MSLink::myLane
private

◆ myLaneBefore

◆ myLastGreenState

LinkState MSLink::myLastGreenState
private

The last green state of the link (minor or major)

Definition at line 773 of file MSLink.h.

Referenced by getLastGreenState(), and setTLState().

◆ myLastStateChange

SUMOTime MSLink::myLastStateChange
private

The time of the last state change.

Definition at line 778 of file MSLink.h.

Referenced by getLastStateChange(), and setTLState().

◆ myLateralShift

double MSLink::myLateralShift
private

lateral shift to be applied when passing this link

Definition at line 822 of file MSLink.h.

Referenced by getLateralShift(), and MSLink().

◆ myLength

double MSLink::myLength
private

The length of the link.

Note
This is not equal to the result of getInternalLengthsAfter for links with more than one internal lane.

Definition at line 785 of file MSLink.h.

Referenced by getLength().

◆ myLogic

const MSTrafficLightLogic* MSLink::myLogic
private

the controlling logic or 0

Definition at line 768 of file MSLink.h.

Referenced by getTLLogic(), isTLSControlled(), setRequestInformation(), and setTLLogic().

◆ myLookaheadTime

const SUMOTime MSLink::myLookaheadTime = TIME2STEPS(1)
staticprivate

Definition at line 860 of file MSLink.h.

Referenced by blockedByFoe().

◆ myLookaheadTimeZipper

const SUMOTime MSLink::myLookaheadTimeZipper = TIME2STEPS(4)
staticprivate

Definition at line 861 of file MSLink.h.

Referenced by blockedByFoe().

◆ myMesoTLSPenalty

SUMOTime MSLink::myMesoTLSPenalty
private

penalty time at tls for mesoscopic simulation

Definition at line 817 of file MSLink.h.

Referenced by getMesoTLSPenalty(), and setMesoTLSPenalty().

◆ myOffFoeLinks

std::vector<MSLink*>* MSLink::myOffFoeLinks
private

Definition at line 839 of file MSLink.h.

Referenced by opened(), setRequestInformation(), and ~MSLink().

◆ myOffState

const LinkState MSLink::myOffState
private

The state of the link when switching of traffic light control.

Definition at line 775 of file MSLink.h.

Referenced by getOffState(), and haveOffPriority().

◆ myParallelLeft

MSLink* MSLink::myParallelLeft
private

Definition at line 867 of file MSLink.h.

Referenced by getParallelLink(), and initParallelLinks().

◆ myParallelRight

MSLink* MSLink::myParallelRight
private

Definition at line 866 of file MSLink.h.

Referenced by getParallelLink(), and initParallelLinks().

◆ myPermissions

SVCPermissions MSLink::myPermissions
private

who may drive on this link

Definition at line 876 of file MSLink.h.

Referenced by getPermissions().

◆ myRadius

double MSLink::myRadius
private

the turning radius for this link or doublemax for straight links

Definition at line 873 of file MSLink.h.

Referenced by getLeaderInfo(), and setRequestInformation().

◆ myRecheck

std::set< std::pair< MSLink *, MSLink * > > MSLink::myRecheck
staticprivate

links that need post processing after initialization (to deal with legacy networks)

Definition at line 864 of file MSLink.h.

Referenced by recheckSetRequestInformation(), and setRequestInformation().

◆ myState

LinkState MSLink::myState
private

The state of the link.

Definition at line 771 of file MSLink.h.

Referenced by blockedByFoe(), getLeaderInfo(), getState(), haveGreen(), havePriority(), haveRed(), haveYellow(), isCont(), opened(), and setTLState().

◆ mySublaneFoeLanes

std::vector<MSLane*> MSLink::mySublaneFoeLanes
private

Definition at line 858 of file MSLink.h.

Referenced by getLeaderInfo(), and setRequestInformation().

◆ mySublaneFoeLinks

std::vector<MSLink*> MSLink::mySublaneFoeLinks
private

Definition at line 851 of file MSLink.h.

Referenced by opened(), and setRequestInformation().

◆ mySublaneFoeLinks2

std::vector<MSLink*> MSLink::mySublaneFoeLinks2
private

Definition at line 854 of file MSLink.h.

Referenced by opened(), and setRequestInformation().

◆ myTLIndex

const int MSLink::myTLIndex
private

the traffic light index

Definition at line 765 of file MSLink.h.

Referenced by getTLIndex().

◆ myWalkingAreaFoe

const MSLane* MSLink::myWalkingAreaFoe
private

walkingArea that must be checked when entering the intersection

Definition at line 842 of file MSLink.h.

Referenced by addWalkingAreaFoe(), getLeaderInfo(), and getWalkingAreaFoe().

◆ myWalkingAreaFoeExit

const MSLane* MSLink::myWalkingAreaFoeExit
private

walkingArea that must be checked when leaving the intersection

Definition at line 844 of file MSLink.h.

Referenced by addWalkingAreaFoeExit(), getLeaderInfo(), and getWalkingAreaFoeExit().

◆ NO_INTERSECTION

const double MSLink::NO_INTERSECTION
static

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