![]() |
Eclipse SUMO - Simulation of Urban MObility
|
#include <MSLink.h>
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, ComparatorNumericalIdLess > | ApproachInfos |
typedef std::vector< const SUMOTrafficObject * > | BlockingFoes |
enum | ConflictFlag { CONFLICT_DEFAULT , CONFLICT_DUMMY_MERGE , CONFLICT_NO_INTERSECTION , CONFLICT_STOP_AT_INTERNAL_JUNCTION , CONFLICT_SIBLING_CONTINUATION } |
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< LinkLeader > | LinkLeaders |
typedef std::map< const MSPerson *, ApproachingPersonInformation > | PersonApproachInfos |
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 ApproachInfos & | getApproaching () const |
return all approaching vehicles | |
ApproachingVehicleInformation | getApproaching (const SUMOVehicle *veh) const |
const PersonApproachInfos * | getApproachingPersons () const |
return all approaching vehicles | |
const ApproachingVehicleInformation * | getApproachingPtr (const SUMOVehicle *veh) const |
std::pair< const SUMOVehicle *const, const ApproachingVehicleInformation > | getClosest () const |
get the closest vehicle approaching this link | |
const std::vector< ConflictInfo > & | getConflicts () const |
const MSLink * | getCorrespondingEntryLink () const |
returns the corresponding entry link for exitLinks to a junction. | |
const MSLink * | getCorrespondingExitLink () 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 MSLane * | getInternalLaneBefore () 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. | |
MSJunction * | getJunction () const |
MSLane * | getLane () const |
Returns the connected lane. | |
const MSLane * | getLaneBefore () 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. | |
MSLink * | getOppositeDirectionLink () const |
return the link that is the opposite entry link to this one | |
MSLink * | getParallelLink (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 MSTrafficLightLogic * | getTLLogic () const |
Returns the TLS index. | |
MSLane * | getViaLane () const |
Returns the following inner lane. | |
MSLane * | getViaLaneOrLane () const |
return the via lane if it exists and the lane otherwise | |
const MSLane * | getWalkingAreaFoe () |
get walkingarea as foes | |
const MSLane * | getWalkingAreaFoeExit () |
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 | hasFoeCrossing () const |
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 | mustStop () const |
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, double siblingPredLength=0) const |
compute point of divergence for geomatries with a common start or end | |
MSLink * | computeParallelLink (int direction) |
bool | contIntersect (const MSLane *lane, const MSLane *foe) |
check if the lane intersects with a foe cont-lane | |
const CustomConflict * | getCustomConflict (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 | |
MSLink & | operator= (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 | |
PersonApproachInfos * | myApproachingPersons |
ApproachInfos | myApproachingVehicles |
std::vector< ConflictInfo > | myConflicts |
std::vector< CustomConflict > | myCustomConflicts |
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 MSLane * | myInternalLaneBefore |
MSJunction * | myJunction |
the junction to which this link belongs | |
bool | myKeepClear |
MSLane * | myLane |
The lane behind the junction approached by this link. | |
MSLane * | myLaneBefore |
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 MSTrafficLightLogic * | myLogic |
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. | |
MSLink * | myParallelLeft |
MSLink * | myParallelRight |
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 MSLane * | myWalkingAreaFoe |
walkingArea that must be checked when entering the intersection | |
const MSLane * | myWalkingAreaFoeExit |
walkingArea that must be checked when leaving the intersection | |
Static Private Attributes | |
static const SUMOTime | myLookaheadTime = TIME2STEPS(1) |
static const SUMOTime | myLookaheadTimeZipper = TIME2STEPS(16) |
static std::set< std::pair< MSLink *, MSLink * > > | myRecheck |
links that need post processing after initialization (to deal with legacy networks) | |
typedef std::map<const SUMOVehicle*, const ApproachingVehicleInformation, ComparatorNumericalIdLess> MSLink::ApproachInfos |
typedef std::vector<const SUMOTrafficObject*> MSLink::BlockingFoes |
typedef std::vector<LinkLeader> MSLink::LinkLeaders |
typedef std::map<const MSPerson*, ApproachingPersonInformation> MSLink::PersonApproachInfos |
enum MSLink::ConflictFlag |
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.
[in] | succLane | The lane approached by this link |
[in] | via | The lane to use within the junction |
[in] | dir | The direction of this link |
[in] | state | The state of this link |
[in] | length | The length of this link |
Definition at line 114 of file MSLink.cpp.
References MSLane::getShape(), getViaLaneOrLane(), MSGlobals::gLateralResolution, MSGlobals::gLefthand, MSLane::isInternal(), PositionVector::move2side(), myInternalLane, myLaneBefore, and myLateralShift.
MSLink::~MSLink | ( | ) |
Destructor.
Definition at line 175 of file MSLink.cpp.
References myApproachingPersons, and myOffFoeLinks.
|
private |
invalidated copy constructor
void MSLink::addCustomConflict | ( | const MSLane * | from, |
const MSLane * | to, | ||
double | startPos, | ||
double | endPos | ||
) |
Definition at line 182 of file MSLink.cpp.
References myCustomConflicts.
Referenced by NLHandler::addConflict().
|
inline |
add walkingarea as foe (when entering the junction)
Definition at line 265 of file MSLink.h.
References myWalkingAreaFoe.
Referenced by MSRightOfWayJunction::postloadInit().
|
inline |
add walkingarea as foe (when leaving the junction)
Definition at line 270 of file MSLink.h.
References myWalkingAreaFoeExit.
Referenced by MSInternalJunction::postloadInit(), and MSRightOfWayJunction::postloadInit().
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.
[in] | arrivalTime | The arrivalTime of the vehicle who checks for an approaching foe |
[in] | leaveTime | The leaveTime of the vehicle who checks for an approaching foe |
[in] | arrivalSpeed | The speed with which the checking vehicle plans to arrive at the link |
[in] | leaveSpeed | The speed with which the checking vehicle plans to leave the link |
[in] | sameTargetLane | Whether the link that calls this method has the same target lane as this link |
[in] | impatience | The impatience of the checking vehicle |
[in] | decel | The maximum deceleration of the checking vehicle |
[in] | waitingTime | The waiting time of the checking vehicle |
[in] | collectFoes | If a vector is passed the return value is always False, instead all blocking foes are collected and inserted into this vector |
[in] | lastWasContRed | Whether the link which is checked, is an internal junction link where the entry has red |
Definition at line 956 of file MSLink.cpp.
References blockedByFoe(), gDebugFlag1, MSVehicleType::getCarFollowModel(), Named::getID(), SUMOVTypeParameter::getJMParam(), MSVehicleType::getParameter(), SUMOTrafficObject::getRNG(), SUMOTrafficObject::getSpeed(), MSJunction::getType(), SUMOTrafficObject::getVehicleType(), getViaLaneOrLane(), haveRed(), ignoreFoe(), myApproachingPersons, myApproachingVehicles, myJunction, RAIL_CROSSING, RandHelper::rand(), SIMTIME, SUMO_ATTR_JM_IGNORE_FOE_PROB, SUMO_ATTR_JM_IGNORE_FOE_SPEED, and SUMO_const_haltingSpeed.
|
private |
Definition at line 1040 of file MSLink.cpp.
References MSLink::ApproachingVehicleInformation::arrivalSpeedBraking, MSLink::ApproachingVehicleInformation::arrivalTime, computeFoeArrivalTimeBraking(), MSLink::ApproachingVehicleInformation::dist, gDebugFlag1, gDebugFlag6, SUMOVehicle::getBrakeGap(), MSVehicleType::getCarFollowModel(), getDescription(), Named::getID(), SUMOVTypeParameter::getJMParam(), SUMOVehicle::getLastActionTime(), MSCFModel::getMaxDecel(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), SUMOTrafficObject::isSelected(), MSLink::ApproachingVehicleInformation::leaveSpeed, MSLink::ApproachingVehicleInformation::leavingTime, LINKSTATE_ALLWAY_STOP, LINKSTATE_ZIPPER, myLookaheadTime, myLookaheadTimeZipper, myState, SIMSTEP, SIMTIME, STEPS2TIME, SUMO_ATTR_JM_TIMEGAP_MINOR, TIME2STEPS, unsafeMergeSpeeds(), MSLink::ApproachingVehicleInformation::waitingTime, and MSLink::ApproachingVehicleInformation::willPass.
Referenced by blockedAtTime(), and opened().
|
private |
figure out whether the cont status remains in effect when switching off the tls
Definition at line 2228 of file MSLink.cpp.
References MSLane::getEdge(), MSEdge::getLanes(), LINKSTATE_TL_OFF_NOSIGNAL, and myLaneBefore.
Referenced by setRequestInformation().
|
private |
check for persons on walkingarea in the path of ego vehicle
Definition at line 1918 of file MSLink.cpp.
References Position::distanceTo2D(), MSLane::getEdge(), getFuturePosition(), Named::getID(), MSVehicle::getLateralPositionOnLane(), MSVehicleType::getLength(), MSTransportable::getMaxSpeed(), MSVehicleType::getMinGap(), MSEdge::getPersons(), MSVehicle::getPosition(), MSTransportable::getPosition(), MSLane::getShape(), MSBaseVehicle::getVehicleType(), MSTransportable::getVehicleType(), MSGlobals::gLefthand, ignoreFoe(), isInFront(), isOnComingPed(), MSBaseVehicle::isSelected(), MAX2(), MIN2(), PositionVector::move2side(), myInternalLaneBefore, MSPModel::SAFETY_GAP, SIMTIME, and TS.
Referenced by getLeaderInfo().
void MSLink::clearState | ( | ) |
Remove all approaching vehicles before quick-loading state.
Definition at line 805 of file MSLink.cpp.
References myApproachingVehicles.
|
private |
compute point of divergence for geomatries with a common start or end
Definition at line 604 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().
|
staticprivate |
compute arrival time if foe vehicle is braking for ego
Definition at line 1152 of file MSLink.cpp.
References DELTA_T, gDebugFlag6, MSVehicleType::getCarFollowModel(), MSCFModel::getMaxDecel(), SUMOTrafficObject::getVehicleType(), SIMSTEP, SIMTIME, STEPS2TIME, and TIME2STEPS.
Referenced by blockedByFoe().
|
private |
Definition at line 2048 of file MSLink.cpp.
References getLane(), getLaneBefore(), MSLane::getLinkCont(), and MSLane::getParallelLane().
Referenced by initParallelLinks().
check if the lane intersects with a foe cont-lane
Definition at line 689 of file MSLink.cpp.
References MSLane::getLinkCont(), MSLane::getShape(), and PositionVector::intersectsAtLengths2D().
Referenced by setRequestInformation().
|
staticprivate |
whether follower could stay behind leader (possibly by braking)
Definition at line 2213 of file MSLink.cpp.
References MSVehicle::getCarFollowModel(), MSCFModel::getMaxDecel(), and MSVehicle::getSpeed().
Referenced by getZipperSpeed().
|
inline |
return whether the fromLane of this link is an internal lane
Definition at line 628 of file MSLink.h.
References myInternalLaneBefore.
Referenced by getLeaderInfo(), MSTrafficLightLogic::init(), MSVehicle::isLeader(), and setRequestInformation().
|
inline |
return all approaching vehicles
Definition at line 310 of file MSLink.h.
References myApproachingVehicles.
Referenced by getClosest().
MSLink::ApproachingVehicleInformation MSLink::getApproaching | ( | const SUMOVehicle * | veh | ) | const |
Definition at line 783 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().
|
inline |
return all approaching vehicles
Definition at line 315 of file MSLink.h.
References myApproachingPersons.
const MSLink::ApproachingVehicleInformation * MSLink::getApproachingPtr | ( | const SUMOVehicle * | veh | ) | const |
Definition at line 794 of file MSLink.cpp.
References myApproachingVehicles.
Referenced by getZipperSpeed().
std::pair< const SUMOVehicle *const, const MSLink::ApproachingVehicleInformation > MSLink::getClosest | ( | ) | const |
get the closest vehicle approaching this link
Definition at line 2280 of file MSLink.cpp.
References getApproaching().
Referenced by MSDriveWay::canUseSiding(), MSDriveWay::hasLinkConflict(), and MSRailSignal::storeTraCIVehicles().
|
inline |
Definition at line 677 of file MSLink.h.
References myConflicts.
Referenced by GUILane::debugDrawFoeIntersections(), and LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes().
const MSLink * MSLink::getCorrespondingEntryLink | ( | ) | const |
returns the corresponding entry link for exitLinks to a junction.
Definition at line 1475 of file MSLink.cpp.
References MSLane::getIncomingLanes(), MSLane::isInternal(), and myLaneBefore.
Referenced by MSDriveWay::findFlankProtection(), MSDriveWay::getDepartureDriveway(), MSVehicle::isLeader(), opened(), MSVehicle::planMoveInternal(), setRequestInformation(), and MSVehicle::unsafeLinkAhead().
const MSLink * MSLink::getCorrespondingExitLink | ( | ) | const |
returns the corresponding exit link for entryLinks to a junction.
Definition at line 1463 of file MSLink.cpp.
References MSLane::getLinkCont(), getViaLane(), and myInternalLane.
Referenced by MSDriveWay::checkFlanks(), and MSDevice_SSM::classifyEncounter().
|
private |
return CustomConflict with foeLane if it is defined
Definition at line 187 of file MSLink.cpp.
References MSLane::getNormalPredecessorLane(), MSLane::getNormalSuccessorLane(), and myCustomConflicts.
Referenced by setRequestInformation().
std::string MSLink::getDescription | ( | ) | const |
get string description for this link
Definition at line 2248 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(), recheckSetRequestInformation(), removeApproaching(), setApproaching(), and setApproaching().
|
inline |
Returns the direction the vehicle passing this link take.
Definition at line 415 of file MSLink.h.
References myDirection.
Referenced by MSLaneChanger::changeOpposite(), MSDriveWay::checkFlanks(), getLeaderInfo(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSInternalJunction::indirectBicycleTurn(), and MSVehicle::processLaneAdvances().
|
inline |
Definition at line 517 of file MSLink.h.
References myDistToFoePedCrossing.
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
[in] | wrapAround | The link on which the ego vehicle wants to enter the junction |
Definition at line 1217 of file MSLink.cpp.
References getLaneBefore(), and myFoeLinks.
|
inline |
Definition at line 673 of file MSLink.h.
References myFoeLanes.
Referenced by MSLane::checkForPedestrians(), GUILane::debugDrawFoeIntersections(), LIBSUMO_NAMESPACE::Lane::getInternalFoes(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), and MSDevice_SSM::getVehiclesOnJunction().
|
inline |
Definition at line 681 of file MSLink.h.
References myFoeLinks.
Referenced by MSDevice_SSM::classifyEncounter(), LIBSUMO_NAMESPACE::Lane::getFoes(), and MSLane::incoming_lane_priority_sorter::operator()().
|
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.
Definition at line 513 of file MSLink.h.
References myFoeVisibilityDistance.
Referenced by MSVehicle::passingMinor(), and MSVehicle::processLinkApproaches().
return extrapolated position of the given person after the given time
Definition at line 2013 of file MSLink.cpp.
References MSTransportable::getAngle(), MSTransportable::getMaxSpeed(), and MSTransportable::getPosition().
Referenced by checkWalkingAreaFoe().
|
inline |
Returns the average proportion of green time to cycle time.
Definition at line 659 of file MSLink.h.
References myGreenFraction.
Referenced by MESegment::send().
|
inline |
Returns the respond index (for visualization)
Definition at line 446 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().
|
inline |
return myInternalLaneBefore (always 0 when compiled without internal lanes)
Definition at line 611 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().
double MSLink::getInternalLengthsAfter | ( | ) | const |
Returns the cumulative length of all internal lanes after this link.
Definition at line 1341 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().
double MSLink::getInternalLengthsBefore | ( | ) | const |
Returns the cumulative length of all internal lanes before this link.
Definition at line 1353 of file MSLink.cpp.
References MSLane::getIncomingLanes(), MSLane::getLength(), MSLane::isInternal(), and myInternalLane.
|
inline |
Definition at line 374 of file MSLink.h.
References myJunction.
Referenced by MSDriveWay::addConflictLink(), MSDriveWay::checkCrossingFlanks(), MSDevice_SSM::classifyEncounter(), MSDriveWay::findFlankProtection(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), MSDriveWay::getJunctionLinkID(), MSRailSignal::hasInsertionConstraint(), MSTrafficLightLogic::init(), MSLane::isInsertionSuccess(), MSVehicle::isLeader(), and MSVehicle::processLinkApproaches().
|
inline |
Returns the connected lane.
Definition at line 437 of file MSLink.h.
References myLane.
Referenced by MSVehicle::brakeForOverlap(), MSDriveWay::checkFlanks(), MSVehicle::checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), computeParallelLink(), GUILane::drawLinkRule(), Command_SaveTLSSwitches::execute(), LIBSUMO_NAMESPACE::TrafficLight::getControlledLinks(), getLeaderInfo(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSPModel_Striping::getNextWalkingArea(), MSLane::getUpcomingLinks(), MSTrafficLightLogic::initMesoTLSPenalties(), MSDriveWay::isSwitch(), MESegment::limitedControlOverride(), MSLane::outgoing_lane_priority_sorter::operator()(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::processLaneAdvances(), and writeApproaching().
|
inline |
return the internalLaneBefore if it exists and the laneBefore otherwise
Definition at line 605 of file MSLink.h.
References myInternalLaneBefore, and myLaneBefore.
Referenced by MSDriveWay::addConflictLink(), MSDriveWay::buildDriveWay(), MSDriveWay::checkFlanks(), MSDevice_SSM::classifyEncounter(), computeParallelLink(), MSDriveWay::findFlankProtection(), getFirstApproachingFoe(), getLeaderInfo(), getLengthBeforeCrossing(), MSTrafficLightLogic::initMesoTLSPenalties(), MSDriveWay::isSwitch(), MSDevice_GLOSA::notifyMove(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), setRequestInformation(), MSVehicle::updateDriveItems(), and MSRailSignal::writeBlocks().
|
inline |
Returns the last green state of the link.
Definition at line 400 of file MSLink.h.
References myLastGreenState.
Referenced by lastWasContMajor().
|
inline |
Definition at line 406 of file MSLink.h.
References myLastStateChange.
Referenced by MSPModel_Striping::PState::ignoreRed(), MSVehicle::ignoreRed(), MSVehicle::planMoveInternal(), and MSPModel_Striping::PState::stopForYellow().
|
inline |
return lateral shift that must be applied when passing this link
Definition at line 694 of file MSLink.h.
References myLateralShift.
Referenced by MSVehicle::brakeForOverlap(), MSVehicle::enterLaneAtMove(), and MSVehicle::setAngle().
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.
[in] | ego | The ego vehicle that is looking for leaders |
[in] | dist | The distance of the vehicle who is asking about the leader to this link |
[out] | blocking | Return blocking pedestrians if a vector is given |
[in] | isShadowLink | whether this link is a shadowLink for ego |
Definition at line 1492 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(), 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, SUMO_const_haltingSpeed, SVC_BICYCLE, toString(), MSLink::ApproachingVehicleInformation::willPass, and MSVehicle::willStop().
Referenced by MSPModel_Striping::addCrossingVehs(), and MSVehicle::checkLinkLeader().
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 811 of file MSLink.cpp.
References getLength(), MAX2(), SUMOTime_MAX, and TIME2STEPS.
Referenced by opened(), and setApproaching().
|
inline |
Returns the length of this link.
Definition at line 502 of file MSLink.h.
References myLength.
Referenced by MEVehicle::estimateLeaveSpeed(), getLeaveTime(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSE2Collector::initAuxiliaries(), MSE2Collector::recalculateDetectorLength(), MSE2Collector::selectLanes(), and setRequestInformation().
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.
Definition at line 1396 of file MSLink.cpp.
References MSLane::getEntryLink(), Named::getID(), getLaneBefore(), MSLane::getLength(), INVALID_DOUBLE, myConflicts, myFoeLanes, and myInternalLaneBefore.
Referenced by 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.
Definition at line 1370 of file MSLink.cpp.
References MSLane::getLength(), getLengthBeforeCrossing(), MSLane::getLinkCont(), getViaLane(), INVALID_DOUBLE, and myInternalLane.
Referenced by MSDevice_SSM::classifyEncounter().
|
inline |
Returns the time penalty for passing a tls-controlled link (meso)
Definition at line 654 of file MSLink.h.
References myMesoTLSPenalty.
Referenced by MESegment::getLinkPenalty().
|
inline |
Returns the off-state for the link.
Definition at line 392 of file MSLink.h.
References myOffState.
Referenced by setRequestInformation().
MSLink * MSLink::getOppositeDirectionLink | ( | ) | const |
return the link that is the opposite entry link to this one
Definition at line 2035 of file MSLink.cpp.
References MSLane::getLinkCont(), MSLane::getOpposite(), myLane, and myLaneBefore.
Referenced by MSVehicle::setApproachingForAllLinks().
MSLink * MSLink::getParallelLink | ( | int | direction | ) | const |
return the link that is parallel to this lane or 0
Definition at line 2023 of file MSLink.cpp.
References MSLane::getOpposite(), myLane, myParallelLeft, and myParallelRight.
Referenced by MSVehicle::checkLinkLeaderCurrentAndParallel(), MSVehicle::processLinkApproaches(), GUIVehicle::selectBlockingFoes(), MSVehicle::setApproachingForAllLinks(), and MSVehicle::updateDriveItems().
|
inline |
|
inline |
Returns the current state of the link.
Definition at line 383 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().
|
inline |
Returns the TLS index.
Definition at line 451 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().
|
inline |
Returns the TLS index.
Definition at line 456 of file MSLink.h.
References myLogic.
Referenced by MSDriveWay::addConflictLink(), MSDriveWay::addFoes(), MSDriveWay::buildDriveWay(), GUILane::drawLinkRules(), MSPModel_JuPedSim::execute(), MSDriveWay::findFlankProtection(), MSDriveWay::foeDriveWayOccupied(), MSDriveWay::getClickableTLLinkID(), MSDriveWay::getDepartureDriveway(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), MSDevice_GLOSA::getTimeToNextSwitch(), MSDevice_GLOSA::getTimeToSwitch(), MSDriveWay::getTLLinkID(), MSRailSignal::hasInsertionConstraint(), MSDriveWay::hasLinkConflict(), MSVehicle::ignoreRed(), MSLane::isInsertionSuccess(), MSRailSignalControl::notifyApproach(), MSDevice_GLOSA::notifyEnter(), MSDevice_GLOSA::notifyMove(), MSVehicle::processLinkApproaches(), GUILane::setFunctionalColor(), setRequestInformation(), MSDevice_GLOSA::timeGreen(), and LIBSUMO_NAMESPACE::TrafficLight::updateConstraints().
|
inline |
Returns the following inner lane.
Definition at line 579 of file MSLink.h.
References myInternalLane.
Referenced by MSVehicle::brakeForOverlap(), MSVehicle::checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), LIBSUMO_NAMESPACE::TrafficLight::getControlledLinks(), getCorrespondingExitLink(), getLengthsBeforeCrossing(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSInternalJunction::indirectBicycleTurn(), MSTrafficLightLogic::init(), MSE2Collector::initAuxiliaries(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::processLaneAdvances(), setRequestInformation(), and writeApproaching().
|
inline |
return the via lane if it exists and the lane otherwise
Definition at line 599 of file MSLink.h.
References myInternalLane, and myLane.
Referenced by MSVehicle::adaptToLeader(), blockedAtTime(), MSDriveWay::buildRoute(), MSLaneChanger::changeOpposite(), MSVehicle::checkLinkLeader(), MSVehicle::checkRewindLinkLanes(), GUIVehicle::drawAction_drawLinkItems(), MEVehicle::estimateLeaveSpeed(), getDescription(), getLeaderInfo(), MSPModel_Striping::getNextLane(), MSVehicle::getPositionAlongBestLanes(), MSVehicle::ignoreRed(), MSVehicle::isLeader(), MSPModel_Striping::moveInDirectionOnLane(), MSLink(), opened(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), GUIVehicle::selectBlockingFoes(), setRequestInformation(), MSVehicle::updateDriveItems(), and MSRailSignal::writeBlocks().
|
inline |
|
inline |
Definition at line 278 of file MSLink.h.
References myWalkingAreaFoeExit.
double MSLink::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
Definition at line 2063 of file MSLink.cpp.
References ACCEL2SPEED, MSLink::ApproachingVehicleInformation::arrivalSpeed, MSLink::ApproachingVehicleInformation::arrivalTime, MSCFModel::avoidArrivalAccel(), MSCFModel::brakeGap(), couldBrakeForLeader(), DEBUG_COND_ZIPPER, DEBUGOUT, MSLink::ApproachingVehicleInformation::dist, MSCFModel::estimateSpeedAfterDistance(), MSCFModel::followSpeed(), getApproachingPtr(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), MSCFModel::getEmergencyDecel(), MSCFModel::getHeadwayTime(), Named::getID(), MSLane::getIndex(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLastActionTime(), MSVehicleType::getLength(), MSCFModel::getMaxAccel(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::getSpeed(), MSLane::getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSVehicle::isActive(), MAX2(), MAX3(), MIN2(), MIN3(), myFoeLinks, myFoeVisibilityDistance, SIMTIME, MSLink::ApproachingVehicleInformation::speed, STEPS2TIME, and TS.
Referenced by MSVehicle::processLinkApproaches().
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
[in] | arrivalTime | The arrivalTime of the vehicle who checks for an approaching foe |
[in] | leaveTime | The leaveTime of the vehicle who checks for an approaching foe |
[in] | speed | The speed with which the checking vehicle plans to leave the link |
[in] | decel | The maximum deceleration of the checking vehicle |
Definition at line 1201 of file MSLink.cpp.
References myFoeLanes, myFoeLinks, and myLane.
Referenced by LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), and MSVehicle::unsafeLinkAhead().
|
inline |
Definition at line 704 of file MSLink.h.
References myHavePedestrianCrossingFoe.
Referenced by MSLane::checkForPedestrians().
|
inline |
Returns whether this link belongs to a junction where more than one edge is incoming.
Definition at line 525 of file MSLink.h.
References myHasFoes.
Referenced by MSVehicle::keepClear(), and setRequestInformation().
|
inline |
Definition at line 482 of file MSLink.h.
References LINKSTATE_TL_GREEN_MAJOR, LINKSTATE_TL_GREEN_MINOR, and myState.
Referenced by GUILane::drawLinkRule(), getLeaderInfo(), MSDevice_GLOSA::getTimeToSwitch(), MSDevice_GLOSA::notifyMove(), and setTLState().
|
inline |
Definition at line 467 of file MSLink.h.
References myOffState.
|
inline |
Returns whether this link is a major link.
Definition at line 463 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().
|
inline |
Returns whether this link is blocked by a red (or redyellow) traffic light.
Definition at line 474 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().
|
inline |
Definition at line 478 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(), MSVehicle::processLinkApproaches(), and MSPModel_Striping::PState::stopForYellow().
|
static |
Definition at line 2254 of file MSLink.cpp.
References MSVehicleType::getID(), Named::getID(), SUMOTrafficObject::getParameter(), Parameterised::getParameter(), StringTokenizer::getVector(), SUMOTrafficObject::getVehicleType(), SUMO_ATTR_JM_IGNORE_IDS, SUMO_ATTR_JM_IGNORE_TYPES, toString(), VEHPARS_JUNCTIONMODEL_PARAMS_SET, and SUMOVehicleParameter::wasSet().
Referenced by MSPModel_Interacting::blockedAtDist(), blockedAtTime(), checkWalkingAreaFoe(), and getLeaderInfo().
void MSLink::initParallelLinks | ( | ) |
initialize parallel links (to be called after all links are loaded)
Definition at line 2222 of file MSLink.cpp.
References computeParallelLink(), myParallelLeft, and myParallelRight.
bool MSLink::isConflictEntryLink | ( | ) | const |
return whether this link enters the conflict area (not a continuation link)
Definition at line 1436 of file MSLink.cpp.
References isEntryLink(), myAmCont, myInternalLane, and myInternalLaneBefore.
Referenced by MSVehicle::processLaneAdvances().
bool MSLink::isCont | ( | ) | const |
Definition at line 1258 of file MSLink.cpp.
References LINKSTATE_ALLWAY_STOP, LINKSTATE_STOP, LINKSTATE_TL_OFF_BLINKING, myAmCont, myAmContOff, and myState.
Referenced by MSVehicle::checkRewindLinkLanes(), MSTrafficLightLogic::init(), opened(), MSVehicle::processLinkApproaches(), and setRequestInformation().
bool MSLink::isEntryLink | ( | ) | const |
return whether the toLane of this link is an internal lane and fromLane is a normal lane
Definition at line 1427 of file MSLink.cpp.
References MSGlobals::gUsingInternalLanes, myInternalLane, and myInternalLaneBefore.
Referenced by isConflictEntryLink(), MSVehicle::processLaneAdvances(), and setRequestInformation().
bool MSLink::isExitLink | ( | ) | const |
return whether the fromLane of this link is an internal lane and toLane is a normal lane
Definition at line 1442 of file MSLink.cpp.
References MSGlobals::gUsingInternalLanes, myInternalLane, and myInternalLaneBefore.
Referenced by MSVehicle::checkRewindLinkLanes(), and MSVehicle::processLaneAdvances().
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 1451 of file MSLink.cpp.
References MSLane::getIncomingLanes(), getInternalLaneBefore(), MSGlobals::gUsingInternalLanes, and myInternalLaneBefore.
Referenced by getLeaderInfo(), MSVehicle::isLeader(), and setRequestInformation().
|
inline |
whether this link is the start of an indirect turn
Definition at line 539 of file MSLink.h.
References myAmIndirect.
Referenced by MSVehicle::isLeader().
|
private |
whether the given person is in front of the car
Definition at line 1979 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().
bool MSLink::isInternalJunctionLink | ( | ) | const |
return whether the fromLane and the toLane of this link are internal lanes
Definition at line 1486 of file MSLink.cpp.
References getInternalLaneBefore(), and myInternalLane.
Referenced by MSVehicle::checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), and getLeaderInfo().
whether the given person is walking towards the car returned as a factor in [0, 1]
Definition at line 1995 of file MSLink.cpp.
References GeomHelper::angleDiff(), Position::angleTo2D(), DEG2RAD, MSTransportable::getAngle(), MSVehicle::getPosition(), MSTransportable::getPosition(), MSBaseVehicle::isSelected(), and RAD2DEG.
Referenced by checkWalkingAreaFoe().
|
inline |
Definition at line 490 of file MSLink.h.
References myLogic.
Referenced by MESegment::getLinkPenalty(), MSEdge::recalcCache(), and MESegment::send().
|
inline |
Definition at line 494 of file MSLink.h.
References myDirection, TURN, and TURN_LEFTHAND.
Referenced by MSDriveWay::isSwitch(), and MSEdge::recalcCache().
|
inline |
whether the junction after this link must be kept clear
Definition at line 534 of file MSLink.h.
References myKeepClear.
Referenced by MSVehicle::keepClear().
bool MSLink::lastWasContMajor | ( | ) | const |
whether this is a link past an internal junction which currently has priority
Definition at line 1265 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().
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 1291 of file MSLink.cpp.
References MSLane::getEdge(), MSLane::getLinkTo(), MSLane::getLogicalPredecessorLane(), getState(), MSEdge::isInternal(), myAmCont, myHavePedestrianCrossingFoe, and myInternalLane.
Referenced by opened().
|
staticprivate |
check whether the given vehicle positions overlap laterally
Definition at line 2243 of file MSLink.cpp.
Referenced by opened().
|
inline |
Definition at line 486 of file MSLink.h.
References LINKSTATE_ALLWAY_STOP, LINKSTATE_STOP, and myState.
Referenced by MSVehicle::processLinkApproaches().
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
[in] | collectFoes | If a vector is passed, all blocking foes are collected and inserted into this vector |
Definition at line 818 of file MSLink.cpp.
References blockedByFoe(), gDebugFlag1, getCorrespondingEntryLink(), getDescription(), MSLane::getEdge(), 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(), MSEdge::isRoundabout(), 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().
|
static |
post-processing for legacy networks
Definition at line 543 of file MSLink.cpp.
References CONFLICT_SIBLING_CONTINUATION, MSLink::ConflictInfo::conflictSize, MSLink::ConflictInfo::flag, MSLink::ConflictInfo::foeConflictIndex, getDescription(), getInternalLaneBefore(), MSLane::getLength(), MSLane::getLogicalPredecessorLane(), MSLane::getShape(), MSLane::getWidth(), PositionVector::intersectsAtLengths2D(), MSLink::ConflictInfo::lengthBehindCrossing, MAX2(), MIN2(), myConflicts, myFoeLanes, myRecheck, and WRITE_WARNING.
Referenced by MSJunctionControl::postloadInitContainer().
void MSLink::removeApproaching | ( | const SUMOVehicle * | veh | ) |
removes the vehicle from myApproachingVehicles
Definition at line 746 of file MSLink.cpp.
References DEBUG_COND2, getDescription(), Named::getID(), myApproachingVehicles, and SIMTIME.
Referenced by MEVehicle::replaceRoute(), MESegment::send(), and MSVehicle::updateDriveItems().
void MSLink::removeApproachingPerson | ( | const MSPerson * | person | ) |
removes the person from myApproachingPersons
Definition at line 764 of file MSLink.cpp.
References DEBUG_COND2, Named::getID(), myApproachingPersons, myLane, myLaneBefore, SIMSTEP, SIMTIME, time2string(), and WRITE_WARNINGF.
void MSLink::setApproaching | ( | const SUMOVehicle * | approaching, |
ApproachingVehicleInformation | ai | ||
) |
Sets the information about an approaching vehicle.
Definition at line 721 of file MSLink.cpp.
References DEBUG_COND2, getDescription(), Named::getID(), myApproachingVehicles, and SIMTIME.
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 699 of file MSLink.cpp.
References DEBUG_COND2, getDescription(), Named::getID(), getLeaveTime(), MSVehicleType::getLength(), SUMOTrafficObject::getSpeed(), SUMOTrafficObject::getVehicleType(), myApproachingVehicles, and SIMTIME.
Referenced by MSStateHandler::myStartElement(), MSVehicle::registerInsertionApproach(), MEVehicle::setApproaching(), MSVehicle::setApproachingForAllLinks(), and MSVehicle::updateDriveItems().
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 738 of file MSLink.cpp.
References myApproachingPersons.
|
inline |
Sets the green fraction for passing a tls-controlled link (meso)
Definition at line 669 of file MSLink.h.
References myGreenFraction.
Referenced by MSTrafficLightLogic::initMesoTLSPenalties().
|
inline |
Sets the time penalty for passing a tls-controlled link (meso)
Definition at line 664 of file MSLink.h.
References myMesoTLSPenalty.
Referenced by MSTrafficLightLogic::initMesoTLSPenalties().
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.
Definition at line 202 of file MSLink.cpp.
References PositionVector::angleAt2D(), GeomHelper::angleDiff(), checkContOff(), computeDistToDivergence(), CONFLICT_DEFAULT, CONFLICT_DUMMY_MERGE, CONFLICT_NO_INTERSECTION, CONFLICT_SIBLING_CONTINUATION, CONFLICT_STOP_AT_INTERNAL_JUNCTION, contIntersect(), DEG2RAD, PositionVector::distance2D(), DIVERGENCE_MIN_WIDTH, MSLink::CustomConflict::endPos, fromInternalLane(), MSLane::getCanonicalPredecessorLane(), getCorrespondingEntryLink(), getCustomConflict(), MSLane::getEdge(), MSLane::getEntryLink(), MSEdge::getFromJunction(), Named::getID(), MSLane::getIncomingLanes(), getLaneBefore(), MSLane::getLength(), getLength(), MSLane::getLinkCont(), MSLane::getLinkTo(), 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::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().
void MSLink::setTLLogic | ( | const MSTrafficLightLogic * | logic | ) |
Sets the currently active tlLogic.
[in] | logic | The currently active logic |
Definition at line 1252 of file MSLink.cpp.
References myLogic.
Sets the current tl-state.
[in] | state | The current state of the link |
[in] | t | The time of the state change |
Definition at line 1240 of file MSLink.cpp.
References haveGreen(), myLastGreenState, myLastStateChange, and myState.
Referenced by MSTrafficLightLogic::addLink().
|
inlinestaticprivate |
return whether the given vehicles may NOT merge safely
Definition at line 717 of file MSLink.h.
Referenced by blockedByFoe().
|
private |
add information about another pedestrian crossing
Definition at line 2274 of file MSLink.cpp.
References MIN2(), and myDistToFoePedCrossing.
Referenced by setRequestInformation().
void MSLink::writeApproaching | ( | OutputDevice & | od, |
const std::string | fromLaneID | ||
) | const |
write information about all approaching vehicles to the given output device
Definition at line 1310 of file MSLink.cpp.
References MSLink::ApproachingVehicleInformation::arrivalSpeed, MSLink::ApproachingVehicleInformation::arrivalSpeedBraking, MSLink::ApproachingVehicleInformation::arrivalTime, OutputDevice::closeTag(), Named::getID(), getLane(), getViaLane(), MSLink::ApproachingVehicleInformation::leaveSpeed, MSLink::ApproachingVehicleInformation::leavingTime, myApproachingVehicles, OutputDevice::openTag(), SUMO_ATTR_FROM, SUMO_ATTR_ID, SUMO_ATTR_IMPATIENCE, SUMO_ATTR_TO, SUMO_ATTR_VIA, time2string(), toString(), MSLink::ApproachingVehicleInformation::willPass, and OutputDevice::writeAttr().
|
private |
Definition at line 814 of file MSLink.h.
Referenced by isConflictEntryLink(), isCont(), lastWasContMajor(), lastWasContState(), and setRequestInformation().
|
private |
Definition at line 816 of file MSLink.h.
Referenced by isCont(), and setRequestInformation().
|
private |
whether this connection is an indirect turning movement
Definition at line 884 of file MSLink.h.
Referenced by computeDistToDivergence(), getLeaderInfo(), and isIndirect().
|
private |
Definition at line 773 of file MSLink.h.
Referenced by blockedAtTime(), getApproachingPersons(), getLeaderInfo(), removeApproachingPerson(), setApproachingPerson(), and ~MSLink().
|
private |
Definition at line 772 of file MSLink.h.
Referenced by blockedAtTime(), clearState(), getApproaching(), getApproaching(), getApproachingPtr(), removeApproaching(), setApproaching(), setApproaching(), and writeApproaching().
|
private |
Definition at line 842 of file MSLink.h.
Referenced by getConflicts(), MSLink::ConflictInfo::getFoeConflictSize(), MSLink::ConflictInfo::getFoeLengthBehindCrossing(), getLeaderInfo(), getLengthBeforeCrossing(), recheckSetRequestInformation(), and setRequestInformation().
|
private |
Definition at line 844 of file MSLink.h.
Referenced by addCustomConflict(), and getCustomConflict().
|
private |
An abstract (hopefully human readable) definition of the link's direction.
Definition at line 795 of file MSLink.h.
Referenced by getDirection(), getLeaderInfo(), isTurnaround(), opened(), and setRequestInformation().
|
private |
distance from the stop line to the first pedestrian crossing or maxdouble
Definition at line 808 of file MSLink.h.
Referenced by getDistToFoePedCrossing(), and updateDistToFoePedCrossing().
|
private |
Definition at line 848 of file MSLink.h.
Referenced by getFoeLanes(), getLeaderInfo(), getLengthBeforeCrossing(), hasApproachingFoe(), recheckSetRequestInformation(), and setRequestInformation().
|
private |
Definition at line 847 of file MSLink.h.
Referenced by getFirstApproachingFoe(), getFoeLinks(), getZipperSpeed(), hasApproachingFoe(), opened(), and setRequestInformation().
|
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 805 of file MSLink.h.
Referenced by getFoeVisibilityDistance(), and getZipperSpeed().
|
private |
green fraction at tls for mesoscopic simulation
Definition at line 833 of file MSLink.h.
Referenced by getGreenFraction(), and setGreenFraction().
|
private |
Whether any foe links exist.
Definition at line 811 of file MSLink.h.
Referenced by hasFoes(), and setRequestInformation().
|
private |
whether on of myFoeLanes is a crossing
Definition at line 861 of file MSLink.h.
Referenced by hasFoeCrossing(), lastWasContMajor(), lastWasContState(), and setRequestInformation().
|
private |
The position within this respond.
Definition at line 776 of file MSLink.h.
Referenced by getIndex(), getLeaderInfo(), and setRequestInformation().
|
private |
The following junction-internal lane if used.
Definition at line 822 of file MSLink.h.
Referenced by getCorrespondingExitLink(), getInternalLengthsAfter(), getInternalLengthsBefore(), getLengthsBeforeCrossing(), getViaLane(), getViaLaneOrLane(), isConflictEntryLink(), isEntryLink(), isExitLink(), isInternalJunctionLink(), lastWasContMajor(), lastWasContState(), MSLink(), and setRequestInformation().
|
private |
Definition at line 828 of file MSLink.h.
Referenced by checkWalkingAreaFoe(), fromInternalLane(), getInternalLaneBefore(), getLaneBefore(), getLeaderInfo(), getLengthBeforeCrossing(), isConflictEntryLink(), isEntryLink(), isExitLink(), isExitLinkAfterInternalJunction(), and setRequestInformation().
|
private |
the junction to which this link belongs
Definition at line 893 of file MSLink.h.
Referenced by blockedAtTime(), getJunction(), getLeaderInfo(), and setRequestInformation().
|
private |
Definition at line 819 of file MSLink.h.
Referenced by keepClear().
|
private |
The lane behind the junction approached by this link.
Definition at line 767 of file MSLink.h.
Referenced by getLane(), getLeaderInfo(), getOppositeDirectionLink(), getParallelLink(), getViaLaneOrLane(), hasApproachingFoe(), opened(), removeApproachingPerson(), and setRequestInformation().
|
private |
The lane approaching this link.
Definition at line 770 of file MSLink.h.
Referenced by checkContOff(), getCorrespondingEntryLink(), getDescription(), getLaneBefore(), getLeaderInfo(), getOppositeDirectionLink(), MSLink(), removeApproachingPerson(), and setRequestInformation().
|
private |
The last green state of the link (minor or major)
Definition at line 787 of file MSLink.h.
Referenced by getLastGreenState(), and setTLState().
|
private |
The time of the last state change.
Definition at line 792 of file MSLink.h.
Referenced by getLastStateChange(), and setTLState().
|
private |
lateral shift to be applied when passing this link
Definition at line 836 of file MSLink.h.
Referenced by getLateralShift(), and MSLink().
|
private |
The length of the link.
Definition at line 799 of file MSLink.h.
Referenced by getLength().
|
private |
the controlling logic or 0
Definition at line 782 of file MSLink.h.
Referenced by getTLLogic(), isTLSControlled(), setRequestInformation(), and setTLLogic().
|
staticprivate |
Definition at line 874 of file MSLink.h.
Referenced by blockedByFoe().
|
staticprivate |
Definition at line 875 of file MSLink.h.
Referenced by blockedByFoe().
|
private |
penalty time at tls for mesoscopic simulation
Definition at line 831 of file MSLink.h.
Referenced by getMesoTLSPenalty(), and setMesoTLSPenalty().
|
private |
Definition at line 853 of file MSLink.h.
Referenced by opened(), setRequestInformation(), and ~MSLink().
|
private |
The state of the link when switching of traffic light control.
Definition at line 789 of file MSLink.h.
Referenced by getOffState(), and haveOffPriority().
|
private |
Definition at line 881 of file MSLink.h.
Referenced by getParallelLink(), and initParallelLinks().
|
private |
Definition at line 880 of file MSLink.h.
Referenced by getParallelLink(), and initParallelLinks().
|
private |
|
private |
the turning radius for this link or doublemax for straight links
Definition at line 887 of file MSLink.h.
Referenced by getLeaderInfo(), and setRequestInformation().
links that need post processing after initialization (to deal with legacy networks)
Definition at line 878 of file MSLink.h.
Referenced by recheckSetRequestInformation(), and setRequestInformation().
|
private |
The state of the link.
Definition at line 785 of file MSLink.h.
Referenced by blockedByFoe(), getLeaderInfo(), getState(), haveGreen(), havePriority(), haveRed(), haveYellow(), isCont(), mustStop(), opened(), and setTLState().
|
private |
Definition at line 872 of file MSLink.h.
Referenced by getLeaderInfo(), and setRequestInformation().
|
private |
Definition at line 865 of file MSLink.h.
Referenced by opened(), and setRequestInformation().
|
private |
Definition at line 868 of file MSLink.h.
Referenced by opened(), and setRequestInformation().
|
private |
|
private |
walkingArea that must be checked when entering the intersection
Definition at line 856 of file MSLink.h.
Referenced by addWalkingAreaFoe(), getLeaderInfo(), and getWalkingAreaFoe().
|
private |
walkingArea that must be checked when leaving the intersection
Definition at line 858 of file MSLink.h.
Referenced by addWalkingAreaFoeExit(), getLeaderInfo(), and getWalkingAreaFoeExit().
|
static |
Definition at line 713 of file MSLink.h.
Referenced by MSLink::ConflictInfo::getFoeLengthBehindCrossing(), getLeaderInfo(), and setRequestInformation().