![]() |
Eclipse SUMO - Simulation of Urban MObility
|
#include <MSLink.h>
Data Structures | |
struct | ApproachingVehicleInformation |
A structure holding the information about vehicles approaching a link. More... | |
struct | LinkLeader |
Public Types | |
typedef std::vector< LinkLeader > | LinkLeaders |
Public Member Functions | |
void | addBlockedLink (MSLink *link) |
void | addWalkingAreaFoe (const MSLane *lane) |
add walkingarea as foe (when entering the junction) More... | |
void | addWalkingAreaFoeExit (const MSLane *lane) |
add walkingarea as foe (when leaving the junction) More... | |
bool | blockedAtTime (SUMOTime arrivalTime, SUMOTime leaveTime, double arrivalSpeed, double leaveSpeed, bool sameTargetLane, double impatience, double decel, SUMOTime waitingTime, std::vector< const SUMOVehicle *> *collectFoes=0, const SUMOVehicle *ego=0) const |
Returns the information whether this link is blocked Valid after the vehicles have set their requests. More... | |
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 More... | |
bool | fromInternalLane () const |
return whether the fromLane of this link is an internal lane More... | |
ApproachingVehicleInformation | getApproaching (const SUMOVehicle *veh) const |
const std::map< const SUMOVehicle *, const ApproachingVehicleInformation, ComparatorNumericalIdLess > & | getApproaching () const |
return all approaching vehicles More... | |
MSLink * | getCorrespondingExitLink () const |
returns the corresponding exit link for entryLinks to a junction. More... | |
std::string | getDescription () const |
get string description for this link More... | |
LinkDirection | getDirection () const |
Returns the direction the vehicle passing this link take. More... | |
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. More... | |
double | getGreenFraction () const |
Returns the average proportion of green time to cycle time. More... | |
int | getIndex () const |
Returns the respond index (for visualization) More... | |
const MSLane * | getInternalLaneBefore () const |
return myInternalLaneBefore (always 0 when compiled without internal lanes) More... | |
double | getInternalLengthsAfter () const |
Returns the cumulative length of all internal lanes after this link. More... | |
double | getInternalLengthsBefore () const |
Returns the cumulative length of all internal lanes before this link. More... | |
MSJunction * | getJunction () const |
MSLane * | getLane () const |
Returns the connected lane. More... | |
const MSLane * | getLaneBefore () const |
return the internalLaneBefore if it exists and the laneBefore otherwise More... | |
SUMOTime | getLastStateChange () const |
double | getLateralShift () |
return lateral shift that must be applied when passing this link More... | |
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. More... | |
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 More... | |
double | getLength () const |
Returns the length of this link. More... | |
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. More... | |
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. More... | |
const std::vector< std::pair< double, double > > & | getLengthsBehindCrossing () const |
SUMOTime | getMesoTLSPenalty () const |
Returns the time penalty for passing a tls-controlled link (meso) More... | |
LinkState | getOffState () const |
Returns the off-state for the link. More... | |
MSLink * | getParallelLink (int direction) const |
return the link that is parallel to this lane or 0 More... | |
LinkState | getState () const |
Returns the current state of the link. More... | |
int | getTLIndex () const |
Returns the TLS index. More... | |
const MSTrafficLightLogic * | getTLLogic () const |
Returns the TLS index. More... | |
MSLane * | getViaLane () const |
Returns the following inner lane. More... | |
MSLane * | getViaLaneOrLane () const |
return the via lane if it exists and the lane otherwise More... | |
const MSLane * | getWalkingAreaFoe () |
get walkingarea as foes More... | |
const MSLane * | getWalkingAreaFoeExit () |
double | getZipperSpeed (const MSVehicle *ego, const double dist, double vSafe, SUMOTime arrivalTime, std::vector< const SUMOVehicle *> *collectFoes) const |
return the speed at which ego vehicle must approach the zipper link More... | |
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. More... | |
bool | hasFoes () const |
Returns whether this link belongs to a junction where more than one edge is incoming. More... | |
bool | havePriority () const |
Returns whether this link is a major link. More... | |
bool | haveRed () const |
Returns whether this link is blocked by a red (or redyellow) traffic light. More... | |
bool | haveYellow () const |
void | initParallelLinks () |
initialize parallel links (to be called after all links are loaded) More... | |
bool | isBlockingAnyone () const |
bool | isConflictEntryLink () const |
return whether this link enters the conflict area (not a continuation link) More... | |
bool | isCont () const |
bool | isEntryLink () const |
return whether the toLane of this link is an internal lane and fromLane is a normal lane More... | |
bool | isExitLink () const |
return whether the fromLane of this link is an internal lane and toLane is a normal lane More... | |
bool | isExitLinkAfterInternalJunction () const |
return whether the fromLane of this link is an internal lane and its incoming lane is also an internal lane More... | |
bool | isInternalJunctionLink () const |
return whether the fromLane and the toLane of this link are internal lanes More... | |
bool | isTLSControlled () const |
bool | keepClear () const |
whether the junction after this link must be kept clear More... | |
bool | lastWasContMajor () const |
whether this is a link past an internal junction which currently has priority More... | |
MSLink (MSLane *predLane, MSLane *succLane, MSLane *via, LinkDirection dir, LinkState state, double length, double foeVisibilityDistance, bool keepClear, MSTrafficLightLogic *logic, int tlLinkIdx) | |
Constructor for simulation which uses internal lanes. More... | |
bool | opened (SUMOTime arrivalTime, double arrivalSpeed, double leaveSpeed, double vehicleLength, double impatience, double decel, SUMOTime waitingTime, double posLat=0, std::vector< const SUMOVehicle *> *collectFoes=0, bool ignoreRed=false, const SUMOVehicle *ego=0) const |
Returns the information whether the link may be passed. More... | |
void | removeApproaching (const SUMOVehicle *veh) |
removes the vehicle from myApproachingVehicles More... | |
void | setApproaching (const SUMOVehicle *approaching, const SUMOTime arrivalTime, const double arrivalSpeed, const double leaveSpeed, const bool setRequest, const SUMOTime arrivalTimeBraking, const double arrivalSpeedBraking, const SUMOTime waitingTime, double dist) |
Sets the information about an approaching vehicle. More... | |
void | setApproaching (const SUMOVehicle *approaching, ApproachingVehicleInformation ai) |
Sets the information about an approaching vehicle. More... | |
void | setGreenFraction (const double fraction) |
Sets the green fraction for passing a tls-controlled link (meso) More... | |
void | setMesoTLSPenalty (const SUMOTime penalty) |
Sets the time penalty for passing a tls-controlled link (meso) More... | |
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. More... | |
void | setTLState (LinkState state, SUMOTime t) |
Sets the current tl-state. More... | |
bool | willHaveBlockedFoe () const |
void | writeApproaching (OutputDevice &od, const std::string fromLaneID) const |
write information about all approaching vehicles to the given output device More... | |
~MSLink () | |
Destructor. More... | |
Static Public Attributes | |
static const double | ZIPPER_ADAPT_DIST |
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 SUMOVehicle *ego) const |
bool | checkContOff () const |
figure out whether the cont status remains in effect when switching off the tls More... | |
MSLink * | computeParallelLink (int direction) |
bool | contIntersect (const MSLane *lane, const MSLane *foe) |
check if the lane intersects with a foe cont-lane More... | |
MSLink (const MSLink &s) | |
invalidated copy constructor More... | |
MSLink & | operator= (const MSLink &s) |
invalidated assignment operator More... | |
Static Private Member Functions | |
static bool | couldBrakeForLeader (double followDist, double leaderDist, const MSVehicle *follow, const MSVehicle *leader) |
whether fllower could stay behind leader (possibly by braking) More... | |
static bool | maybeOccupied (MSLane *lane) |
returns whether the given lane may still be occupied by a vehicle currently on it More... | |
static bool | unsafeMergeSpeeds (double leaderSpeed, double followerSpeed, double leaderDecel, double followerDecel) |
return whether the given vehicles may NOT merge safely More... | |
Private Attributes | |
bool | myAmCont |
bool | myAmContOff |
std::map< const SUMOVehicle *, const ApproachingVehicleInformation, ComparatorNumericalIdLess > | myApproachingVehicles |
std::set< MSLink * > | myBlockedFoeLinks |
LinkDirection | myDirection |
An abstract (hopefully human readable) definition of the link's direction. More... | |
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. More... | |
double | myGreenFraction |
green fraction at tls for mesoscopic simulation More... | |
bool | myHasFoes |
Whether any foe links exist. More... | |
bool | myHavePedestrianCrossingFoe |
whether on of myFoeLanes is a crossing More... | |
int | myIndex |
The position within this respond. More... | |
MSLane *const | myInternalLane |
The following junction-internal lane if used. More... | |
const MSLane * | myInternalLaneBefore |
MSJunction * | myJunction |
the junction to which this link belongs More... | |
bool | myKeepClear |
MSLane * | myLane |
The lane behind the junction approached by this link. More... | |
MSLane * | myLaneBefore |
The lane approaching this link. More... | |
SUMOTime | myLastStateChange |
The time of the last state change. More... | |
double | myLateralShift |
lateral shift to be applied when passing this link More... | |
double | myLength |
The length of the link. More... | |
std::vector< std::pair< double, double > > | myLengthsBehindCrossing |
const MSTrafficLightLogic * | myLogic |
the controlling logic or 0 More... | |
SUMOTime | myMesoTLSPenalty |
penalty time at tls for mesoscopic simulation More... | |
const LinkState | myOffState |
The state of the link when switching of traffic light control. More... | |
MSLink * | myParallelLeft |
MSLink * | myParallelRight |
LinkState | myState |
The state of the link. More... | |
std::vector< MSLane * > | mySublaneFoeLanes |
std::vector< MSLink * > | mySublaneFoeLinks |
std::vector< MSLink * > | mySublaneFoeLinks2 |
const int | myTLIndex |
the traffic light index More... | |
const MSLane * | myWalkingAreaFoe |
walkingArea that must be checked when entering the intersection More... | |
const MSLane * | myWalkingAreaFoeExit |
walkingArea that must be checked when leaving the intersection More... | |
Static Private Attributes | |
static const SUMOTime | myLookaheadTime = TIME2STEPS(1) |
static const SUMOTime | myLookaheadTimeZipper = TIME2STEPS(4) |
typedef std::vector<LinkLeader> MSLink::LinkLeaders |
MSLink::MSLink | ( | MSLane * | predLane, |
MSLane * | succLane, | ||
MSLane * | via, | ||
LinkDirection | dir, | ||
LinkState | state, | ||
double | length, | ||
double | foeVisibilityDistance, | ||
bool | keepClear, | ||
MSTrafficLightLogic * | logic, | ||
int | tlLinkIdx | ||
) |
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 73 of file MSLink.cpp.
References MSLane::getShape(), getViaLaneOrLane(), MSGlobals::gLateralResolution, MSLane::isInternal(), PositionVector::move2side(), myInternalLane, myLaneBefore, and myLateralShift.
MSLink::~MSLink | ( | ) |
Destructor.
Definition at line 121 of file MSLink.cpp.
|
private |
invalidated copy constructor
void MSLink::addBlockedLink | ( | MSLink * | link | ) |
Definition at line 398 of file MSLink.cpp.
References myBlockedFoeLinks.
Referenced by getWalkingAreaFoeExit().
|
inline |
add walkingarea as foe (when entering the junction)
Definition at line 169 of file MSLink.h.
References myWalkingAreaFoe.
Referenced by MSRightOfWayJunction::postloadInit().
|
inline |
add walkingarea as foe (when leaving the junction)
Definition at line 174 of file MSLink.h.
References myWalkingAreaFoeExit.
bool MSLink::blockedAtTime | ( | SUMOTime | arrivalTime, |
SUMOTime | leaveTime, | ||
double | arrivalSpeed, | ||
double | leaveSpeed, | ||
bool | sameTargetLane, | ||
double | impatience, | ||
double | decel, | ||
SUMOTime | waitingTime, | ||
std::vector< const SUMOVehicle *> * | collectFoes = 0 , |
||
const SUMOVehicle * | ego = 0 |
||
) | 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 |
Definition at line 565 of file MSLink.cpp.
References blockedByFoe(), gDebugFlag1, Named::getID(), SUMOVTypeParameter::getJMParam(), MSVehicleType::getParameter(), SUMOVehicle::getRNG(), SUMOTrafficObject::getVehicleType(), getViaLaneOrLane(), myApproachingVehicles, RandHelper::rand(), SUMO_ATTR_JM_IGNORE_FOE_PROB, and SUMO_ATTR_JM_IGNORE_FOE_SPEED.
Referenced by getApproaching().
|
private |
Definition at line 600 of file MSLink.cpp.
References MSLink::ApproachingVehicleInformation::arrivalSpeedBraking, MSLink::ApproachingVehicleInformation::arrivalTime, MSLink::ApproachingVehicleInformation::arrivalTimeBraking, gDebugFlag1, MSVehicleType::getCarFollowModel(), SUMOTrafficObject::getID(), Named::getID(), SUMOVTypeParameter::getJMParam(), MSCFModel::getMaxDecel(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), getViaLaneOrLane(), MSLink::ApproachingVehicleInformation::leaveSpeed, MSLink::ApproachingVehicleInformation::leavingTime, LINKSTATE_ALLWAY_STOP, LINKSTATE_ZIPPER, myLookaheadTime, myLookaheadTimeZipper, myState, STEPS2TIME, SUMO_ATTR_JM_TIMEGAP_MINOR, TIME2STEPS, unsafeMergeSpeeds(), MSLink::ApproachingVehicleInformation::waitingTime, and MSLink::ApproachingVehicleInformation::willPass.
Referenced by blockedAtTime(), opened(), and unsafeMergeSpeeds().
|
private |
figure out whether the cont status remains in effect when switching off the tls
Definition at line 1375 of file MSLink.cpp.
References MSLane::getEdge(), MSEdge::getLanes(), LINKSTATE_TL_OFF_NOSIGNAL, and myLaneBefore.
Referenced by setRequestInformation(), and unsafeMergeSpeeds().
void MSLink::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
Definition at line 1148 of file MSLink.cpp.
References Position::distanceTo2D(), MSLane::getEdge(), MSVehicleType::getLength(), MSEdge::getPersons(), MSVehicle::getPosition(), MSTransportable::getPosition(), MSTransportable::getSpeed(), MSTransportable::getVehicleType(), MIN2(), and MSPModel::SAFETY_GAP.
Referenced by getLeaderInfo(), and keepClear().
|
private |
Definition at line 1206 of file MSLink.cpp.
References MSLinkContHelper::getConnectingLink(), getLane(), getLaneBefore(), and MSLane::getParallelLane().
Referenced by initParallelLinks(), and unsafeMergeSpeeds().
check if the lane intersects with a foe cont-lane
Definition at line 355 of file MSLink.cpp.
References MSLane::getLinkCont(), MSLane::getShape(), and PositionVector::intersectsAtLengths2D().
Referenced by setRequestInformation(), and unsafeMergeSpeeds().
|
staticprivate |
whether fllower could stay behind leader (possibly by braking)
Definition at line 1360 of file MSLink.cpp.
References MSVehicle::getCarFollowModel(), MSCFModel::getMaxDecel(), and MSVehicle::getSpeed().
Referenced by getZipperSpeed(), and unsafeMergeSpeeds().
bool MSLink::fromInternalLane | ( | ) | const |
return whether the fromLane of this link is an internal lane
Definition at line 931 of file MSLink.cpp.
References myInternalLaneBefore.
Referenced by getLeaderInfo(), MSVehicle::isLeader(), keepClear(), and setRequestInformation().
MSLink::ApproachingVehicleInformation MSLink::getApproaching | ( | const SUMOVehicle * | veh | ) | const |
Definition at line 432 of file MSLink.cpp.
References myApproachingVehicles.
Referenced by libsumo::Helper::applySubscriptionFilters(), MSRailSignal::DriveWay::findProtection(), MSRailSignal::getClosest(), getZipperSpeed(), MSRailSignal::DriveWay::hasLinkConflict(), and MSRailSignal::hasOncomingRailTraffic().
|
inline |
return all approaching vehicles
Definition at line 209 of file MSLink.h.
References blockedAtTime(), myApproachingVehicles, and opened().
Referenced by getWalkingAreaFoeExit().
MSLink * MSLink::getCorrespondingExitLink | ( | ) | const |
returns the corresponding exit link for entryLinks to a junction.
Definition at line 914 of file MSLink.cpp.
References MSLane::getLinkCont(), getViaLane(), and myInternalLane.
Referenced by MSDevice_SSM::classifyEncounter(), and keepClear().
std::string MSLink::getDescription | ( | ) | const |
get string description for this link
Definition at line 1390 of file MSLink.cpp.
References Named::getID(), getViaLaneOrLane(), and myLaneBefore.
Referenced by MSRailSignal::DriveWay::checkCrossingFlanks(), MSRailSignal::DriveWay::findFlankProtection(), MSRailSignal::DriveWay::findProtection(), and getLateralShift().
LinkDirection MSLink::getDirection | ( | ) | const |
Returns the direction the vehicle passing this link take.
Definition at line 707 of file MSLink.cpp.
References myDirection.
Referenced by MSLaneChanger::changeOpposite(), getLastStateChange(), MSInternalJunction::indirectBicycleTurn(), and MSVehicle::processLaneAdvances().
|
inline |
Definition at line 505 of file MSLink.h.
References myFoeLanes.
Referenced by GUILane::debugDrawFoeIntersections(), and libsumo::Lane::getInternalFoes().
|
inline |
Definition at line 513 of file MSLink.h.
References initParallelLinks(), and myFoeLinks.
Referenced by MSDevice_SSM::classifyEncounter(), libsumo::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 371 of file MSLink.h.
References myFoeVisibilityDistance.
Referenced by MSVehicle::passingMinor(), and MSVehicle::processLinkApproaches().
|
inline |
Returns the average proportion of green time to cycle time.
Definition at line 491 of file MSLink.h.
References myGreenFraction.
Referenced by MESegment::getTLSCapacity().
|
inline |
Returns the respond index (for visualization)
Definition at line 320 of file MSLink.h.
References myIndex.
Referenced by MSRailSignal::DriveWay::checkCrossingFlanks(), GUILane::drawLinkNo(), MSRailSignal::DriveWay::findFlankProtection(), getLeaderInfo(), and MSVehicle::isLeader().
const MSLane * MSLink::getInternalLaneBefore | ( | ) | const |
return myInternalLaneBefore (always 0 when compiled without internal lanes)
Definition at line 1218 of file MSLink.cpp.
References myInternalLaneBefore.
Referenced by MSVehicle::checkLinkLeader(), MSDevice_SSM::classifyEncounter(), isExitLinkAfterInternalJunction(), isInternalJunctionLink(), MSVehicle::isLeader(), keepClear(), and MSVehicle::processLinkApproaches().
double MSLink::getInternalLengthsAfter | ( | ) | const |
Returns the cumulative length of all internal lanes after this link.
Definition at line 786 of file MSLink.cpp.
References MSLane::getLength(), MSLane::getLinkCont(), MSLane::isInternal(), and myInternalLane.
Referenced by MSDevice_SSM::classifyEncounter(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSLane::getUpcomingLinks(), and keepClear().
double MSLink::getInternalLengthsBefore | ( | ) | const |
Returns the cumulative length of all internal lanes before this link.
Definition at line 798 of file MSLink.cpp.
References MSLane::getIncomingLanes(), MSLane::getLength(), MSLane::isInternal(), and myInternalLane.
Referenced by keepClear().
|
inline |
Definition at line 265 of file MSLink.h.
References myJunction.
Referenced by MSRailSignal::DriveWay::checkCrossingFlanks(), MSRailSignal::DriveWay::findFlankProtection(), MSRailSignal::hasOncomingRailTraffic(), MSVehicle::isLeader(), and MSVehicle::processLinkApproaches().
MSLane * MSLink::getLane | ( | ) | const |
Returns the connected lane.
Definition at line 722 of file MSLink.cpp.
References myLane.
Referenced by MSVehicle::checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), computeParallelLink(), Command_SaveTLSSwitches::execute(), MSRailSignal::DriveWay::findFlankProtection(), MSRailSignal::DriveWay::findProtection(), MSLinkContHelper::getConnectingLink(), libsumo::TrafficLight::getControlledLinks(), MSRailSignal::LinkInfo::getDriveWay(), MSLinkContHelper::getInternalFollowingEdge(), MSLinkContHelper::getInternalFollowingLane(), getLastStateChange(), MSPModel_Striping::getNextWalkingArea(), MSLane::getUpcomingLinks(), MESegment::limitedControlOverride(), MSRailSignal::LinkInfo::LinkInfo(), MSLane::outgoing_lane_priority_sorter::operator()(), MSRightOfWayJunction::postloadInit(), and writeApproaching().
const MSLane * MSLink::getLaneBefore | ( | ) | const |
return the internalLaneBefore if it exists and the laneBefore otherwise
Definition at line 1182 of file MSLink.cpp.
References myInternalLaneBefore, and myLaneBefore.
Referenced by MSRailSignal::LinkInfo::buildDriveWay(), computeParallelLink(), MSRailSignal::DriveWay::findFlankProtection(), MSRailSignal::DriveWay::findProtection(), getLengthBeforeCrossing(), MSRailSignal::hasOncomingRailTraffic(), keepClear(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), MSVehicle::updateDriveItems(), and MSRailSignal::writeBlocks().
|
inline |
Definition at line 289 of file MSLink.h.
References getDirection(), getLane(), myLastStateChange, and setTLState().
Referenced by MSPModel_Striping::PState::ignoreRed(), and MSVehicle::ignoreRed().
|
inline |
return lateral shift that must be applied when passing this link
Definition at line 521 of file MSLink.h.
References getDescription(), and myLateralShift.
Referenced by MSVehicle::enterLaneAtMove().
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 936 of file MSLink.cpp.
References MSLane::anyVehiclesBegin(), MSLane::anyVehiclesEnd(), MSPModel::blockedAtDist(), checkWalkingAreaFoe(), fromInternalLane(), MSGlobals::gComputeLC, gDebugFlag1, MSVehicle::getBackPositionOnLane(), Named::getID(), MSBaseVehicle::getID(), MSLane::getIncomingLanes(), getIndex(), MSLane::getIndex(), MSNet::getInstance(), SUMOVTypeParameter::getJMParam(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicle::getLateralPositionOnLane(), MSVehicle::getLatOffset(), MSVehicleType::getLength(), getLength(), MSBaseVehicle::getLength(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getLogicalPredecessorLane(), MSVehicleType::getMinGap(), MSPModel::getModel(), MSVehicleType::getParameter(), MSVehicleType::getVehicleClass(), MSBaseVehicle::getVehicleType(), getViaLaneOrLane(), MSVehicle::getWaitingTime(), MSVehicleType::getWidth(), MSLane::getWidth(), MSGlobals::gIgnoreJunctionBlocker, MSGlobals::gLateralResolution, isExitLinkAfterInternalJunction(), MSVehicle::isFrontOnLane(), isInternalJunctionLink(), MSAbstractLaneChangeModel::isOpposite(), MSVehicle::isStopped(), MSAbstractLaneChangeModel::isStrategicBlocked(), JM_CROSSING_GAP_DEFAULT, LINKDIR_LEFT, MAX2(), myFoeLanes, myInternalLaneBefore, myLane, myLaneBefore, myLengthsBehindCrossing, mySublaneFoeLanes, myWalkingAreaFoe, myWalkingAreaFoeExit, POSITION_EPS, MSPModel::SAFETY_GAP, SIMTIME, SUMO_ATTR_JM_CROSSING_GAP, SVC_BICYCLE, and MSVehicle::willStop().
Referenced by MSPModel_Striping::addCrossingVehs(), MSVehicle::checkLinkLeader(), and keepClear().
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 443 of file MSLink.cpp.
References getLength(), MAX2(), NUMERICAL_EPS, and TIME2STEPS.
Referenced by keepClear(), opened(), and setApproaching().
|
inline |
Returns the length of this link.
Definition at line 360 of file MSLink.h.
References myLength.
Referenced by MEVehicle::estimateLeaveSpeed(), MSVehicle::estimateLeaveSpeed(), MSDevice_SSM::findSurroundingVehicles(), getLeaderInfo(), getLeaveTime(), MSE2Collector::initAuxiliaries(), MSE2Collector::recalculateDetectorLength(), and MSE2Collector::selectLanes().
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 841 of file MSLink.cpp.
References MSLane::getEntryLink(), Named::getID(), getLaneBefore(), MSLane::getLength(), INVALID_DOUBLE, myFoeLanes, myInternalLaneBefore, and myLengthsBehindCrossing.
Referenced by getLengthsBeforeCrossing(), and keepClear().
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 815 of file MSLink.cpp.
References MSLane::getLength(), getLengthBeforeCrossing(), MSLane::getLinkCont(), getViaLane(), INVALID_DOUBLE, and myInternalLane.
Referenced by MSDevice_SSM::classifyEncounter(), and keepClear().
|
inline |
Definition at line 509 of file MSLink.h.
References myLengthsBehindCrossing.
Referenced by GUILane::debugDrawFoeIntersections().
|
inline |
Returns the time penalty for passing a tls-controlled link (meso)
Definition at line 486 of file MSLink.h.
References myMesoTLSPenalty.
Referenced by MESegment::getLinkPenalty(), MESegment::getMaxPenaltySeconds(), and MSEdge::recalcCache().
|
inline |
Returns the off-state for the link.
Definition at line 283 of file MSLink.h.
References myOffState.
MSLink * MSLink::getParallelLink | ( | int | direction | ) | const |
return the link that is parallel to this lane or 0
Definition at line 1193 of file MSLink.cpp.
References myParallelLeft, and myParallelRight.
Referenced by MSVehicle::checkLinkLeaderCurrentAndParallel(), keepClear(), MSVehicle::processLinkApproaches(), GUIVehicle::selectBlockingFoes(), MSVehicle::setApproachingForAllLinks(), and MSVehicle::updateDriveItems().
|
inline |
Returns the current state of the link.
Definition at line 274 of file MSLink.h.
References myState.
Referenced by MSEdge::allowsLaneChanging(), MSLaneChanger::changeOpposite(), GUILane::drawLinkRule(), Command_SaveTLCoupledLaneDet::execute(), MSLane::getIncomingLinkState(), MSRailSignal::hasOncomingRailTraffic(), MSVehicle::ignoreRed(), MSVehicle::processLinkApproaches(), and MELoop::setApproaching().
|
inline |
Returns the TLS index.
Definition at line 325 of file MSLink.h.
References myTLIndex.
Referenced by MSRailSignal::getClickableTLLinkID(), MSRailSignal::LinkInfo::getID(), MSRailSignal::getTLLinkID(), MSRailSignal::DriveWay::hasLinkConflict(), MSRailSignal::hasOncomingRailTraffic(), and MSRailSignal::writeBlocks().
|
inline |
Returns the TLS index.
Definition at line 330 of file MSLink.h.
References myLogic.
Referenced by MSRailSignal::DriveWay::buildRoute(), GUILane::drawLinkRules(), MSRailSignal::DriveWay::findFlankProtection(), MSRailSignal::getClickableTLLinkID(), MSRailSignal::LinkInfo::getID(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), MSRailSignal::getTLLinkID(), MSRailSignal::DriveWay::hasLinkConflict(), MSRailSignal::hasOncomingRailTraffic(), MSVehicle::ignoreRed(), and GUILane::setFunctionalColor().
MSLane * MSLink::getViaLane | ( | ) | const |
Returns the following inner lane.
Definition at line 872 of file MSLink.cpp.
References myInternalLane.
Referenced by MSVehicle::checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), libsumo::TrafficLight::getControlledLinks(), getCorrespondingExitLink(), MSLinkContHelper::getInternalFollowingEdge(), MSLinkContHelper::getInternalFollowingLane(), getLengthsBeforeCrossing(), MSInternalJunction::indirectBicycleTurn(), MSE2Collector::initAuxiliaries(), keepClear(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::processLaneAdvances(), and writeApproaching().
MSLane * MSLink::getViaLaneOrLane | ( | ) | const |
return the via lane if it exists and the lane otherwise
Definition at line 1173 of file MSLink.cpp.
References myInternalLane, and myLane.
Referenced by blockedAtTime(), blockedByFoe(), MSRailSignal::DriveWay::buildRoute(), MSLaneChanger::changeOpposite(), MSVehicle::checkLinkLeader(), MSVehicle::checkRewindLinkLanes(), GUIVehicle::drawAction_drawLinkItems(), MEVehicle::estimateLeaveSpeed(), MSVehicle::estimateLeaveSpeed(), MSLinkContHelper::getConnectingLink(), getDescription(), getLeaderInfo(), MSPModel_Striping::getNextLane(), MSVehicle::getPositionAlongBestLanes(), MSVehicle::ignoreRed(), MSVehicle::isLeader(), keepClear(), MSPModel_Striping::moveInDirectionOnLane(), MSLink(), opened(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), GUIVehicle::selectBlockingFoes(), setRequestInformation(), MSVehicle::updateDriveItems(), and MSRailSignal::writeBlocks().
|
inline |
|
inline |
Definition at line 182 of file MSLink.h.
References addBlockedLink(), getApproaching(), myWalkingAreaFoeExit, removeApproaching(), and setApproaching().
double MSLink::getZipperSpeed | ( | const MSVehicle * | ego, |
const double | dist, | ||
double | vSafe, | ||
SUMOTime | arrivalTime, | ||
std::vector< const SUMOVehicle *> * | collectFoes | ||
) | const |
return the speed at which ego vehicle must approach the zipper link
Definition at line 1224 of file MSLink.cpp.
References ACCEL2SPEED, MSLink::ApproachingVehicleInformation::arrivalSpeed, MSLink::ApproachingVehicleInformation::arrivalTime, couldBrakeForLeader(), DEBUG_COND_ZIPPER, MSLink::ApproachingVehicleInformation::dist, MSCFModel::estimateSpeedAfterDistance(), MSCFModel::followSpeed(), getApproaching(), MSVehicle::getCarFollowModel(), MSNet::getCurrentTimeStep(), MSCFModel::getEmergencyDecel(), Named::getID(), MSBaseVehicle::getID(), MSLane::getIndex(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLastActionTime(), MSVehicleType::getLength(), MSCFModel::getMaxAccel(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSCFModel::getSecureGap(), MSVehicle::getSpeed(), MSLane::getVehicleMaxSpeed(), MSBaseVehicle::getVehicleType(), MSVehicle::isActive(), MAX2(), MAX3(), MIN2(), MIN3(), myFoeLinks, myJunction, NUMERICAL_EPS, SIMTIME, STEPS2TIME, TS, ZIPPER_ADAPT_DIST, and ZIPPER_ADAPT_TIME.
Referenced by keepClear(), and 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 691 of file MSLink.cpp.
References myFoeLanes, myFoeLinks, and myLane.
Referenced by isBlockingAnyone().
|
inline |
Returns whether this link belongs to a junction where more than one edge is incoming.
Definition at line 380 of file MSLink.h.
References isCont(), and myHasFoes.
Referenced by MSVehicle::keepClear(), and setRequestInformation().
|
inline |
Returns whether this link is a major link.
Definition at line 337 of file MSLink.h.
References myState.
Referenced by MSLaneChanger::changeOpposite(), MSVehicle::checkRewindLinkLanes(), MESegment::getLinkPenalty(), MESegment::getMaxPenaltySeconds(), MSPModel_Striping::getNextLaneObstacles(), 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 344 of file MSLink.h.
References LINKSTATE_TL_RED, LINKSTATE_TL_REDYELLOW, and myState.
Referenced by MSLaneChanger::changeOpposite(), MSPModel_Striping::PState::ignoreRed(), MSVehicle::ignoreRed(), opened(), and MSVehicle::processLaneAdvances().
|
inline |
Definition at line 348 of file MSLink.h.
References LINKSTATE_TL_YELLOW_MAJOR, LINKSTATE_TL_YELLOW_MINOR, and myState.
Referenced by MSLaneChanger::changeOpposite(), MSVehicle::ignoreRed(), lastWasContMajor(), and MSVehicle::processLinkApproaches().
void MSLink::initParallelLinks | ( | ) |
initialize parallel links (to be called after all links are loaded)
Definition at line 1369 of file MSLink.cpp.
References computeParallelLink(), myParallelLeft, and myParallelRight.
Referenced by getFoeLinks().
|
inline |
Definition at line 246 of file MSLink.h.
References hasApproachingFoe(), myApproachingVehicles, and willHaveBlockedFoe().
bool MSLink::isConflictEntryLink | ( | ) | const |
return whether this link enters the conflict area (not a continuation link)
Definition at line 887 of file MSLink.cpp.
References isEntryLink(), myAmCont, myInternalLane, and myInternalLaneBefore.
Referenced by keepClear(), and MSVehicle::processLaneAdvances().
bool MSLink::isCont | ( | ) | const |
Definition at line 728 of file MSLink.cpp.
References LINKSTATE_TL_OFF_BLINKING, myAmCont, myAmContOff, and myState.
Referenced by MSVehicle::checkRewindLinkLanes(), hasFoes(), 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 878 of file MSLink.cpp.
References MSGlobals::gUsingInternalLanes, myInternalLane, and myInternalLaneBefore.
Referenced by isConflictEntryLink(), keepClear(), and MSVehicle::processLaneAdvances().
bool MSLink::isExitLink | ( | ) | const |
return whether the fromLane of this link is an internal lane and toLane is a normal lane
Definition at line 893 of file MSLink.cpp.
References MSGlobals::gUsingInternalLanes, myInternalLane, and myInternalLaneBefore.
Referenced by keepClear(), 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 902 of file MSLink.cpp.
References MSLane::getIncomingLanes(), getInternalLaneBefore(), MSGlobals::gUsingInternalLanes, and myInternalLaneBefore.
Referenced by getLeaderInfo(), and keepClear().
bool MSLink::isInternalJunctionLink | ( | ) | const |
return whether the fromLane and the toLane of this link are internal lanes
Definition at line 926 of file MSLink.cpp.
References getInternalLaneBefore(), and myInternalLane.
Referenced by MSDevice_SSM::classifyEncounter(), getLeaderInfo(), and keepClear().
|
inline |
Definition at line 352 of file MSLink.h.
References myLogic.
Referenced by MESegment::getLinkPenalty(), MESegment::getTLSCapacity(), and MSEdge::recalcCache().
|
inline |
whether the junction after this link must be kept clear
Definition at line 389 of file MSLink.h.
References checkWalkingAreaFoe(), fromInternalLane(), getCorrespondingExitLink(), getInternalLaneBefore(), getInternalLengthsAfter(), getInternalLengthsBefore(), getLaneBefore(), getLeaderInfo(), getLeaveTime(), getLengthBeforeCrossing(), getLengthsBeforeCrossing(), getParallelLink(), getViaLane(), getViaLaneOrLane(), getZipperSpeed(), isConflictEntryLink(), isEntryLink(), isExitLink(), isExitLinkAfterInternalJunction(), isInternalJunctionLink(), lastWasContMajor(), myKeepClear, and writeApproaching().
Referenced by MSVehicle::keepClear().
bool MSLink::lastWasContMajor | ( | ) | const |
whether this is a link past an internal junction which currently has priority
Definition at line 735 of file MSLink.cpp.
References MSLinkContHelper::getConnectingLink(), MSLane::getEdge(), MSLane::getLogicalPredecessorLane(), havePriority(), haveYellow(), MSEdge::isInternal(), myAmCont, myHavePedestrianCrossingFoe, and myInternalLane.
Referenced by keepClear(), and MSVehicle::processLinkApproaches().
|
staticprivate |
returns whether the given lane may still be occupied by a vehicle currently on it
Definition at line 675 of file MSLink.cpp.
References MSVehicle::getBackPositionOnLane(), MSVehicle::getCarFollowModel(), MSLane::getLastAnyVehicle(), MSLane::getLength(), MSCFModel::getMaxDecel(), and MSVehicle::getSpeed().
Referenced by unsafeMergeSpeeds().
bool MSLink::opened | ( | SUMOTime | arrivalTime, |
double | arrivalSpeed, | ||
double | leaveSpeed, | ||
double | vehicleLength, | ||
double | impatience, | ||
double | decel, | ||
SUMOTime | waitingTime, | ||
double | posLat = 0 , |
||
std::vector< const SUMOVehicle *> * | collectFoes = 0 , |
||
bool | ignoreRed = false , |
||
const SUMOVehicle * | ego = 0 |
||
) | 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 450 of file MSLink.cpp.
References blockedByFoe(), gDebugFlag1, SUMOTrafficObject::getID(), Named::getID(), MSLane::getIndex(), MSNet::getInstance(), SUMOVehicle::getLateralPositionOnLane(), getLeaveTime(), getViaLaneOrLane(), MSGlobals::gLateralResolution, MSGlobals::gUseMesoSim, MSGlobals::gUsingInternalLanes, havePriority(), haveRed(), isCont(), MSNet::lefthand(), LINKDIR_LEFT, LINKDIR_PARTLEFT, LINKDIR_PARTRIGHT, LINKDIR_RIGHT, LINKDIR_STRAIGHT, LINKSTATE_ALLWAY_STOP, LINKSTATE_STOP, LINKSTATE_ZIPPER, myDirection, myFoeLinks, myLane, myState, mySublaneFoeLinks, mySublaneFoeLinks2, and SIMTIME.
Referenced by MSVehicle::checkRewindLinkLanes(), getApproaching(), MESegment::isOpen(), MSPModel_Striping::moveInDirectionOnLane(), MSVehicle::processLinkApproaches(), and GUIVehicle::selectBlockingFoes().
void MSLink::removeApproaching | ( | const SUMOVehicle * | veh | ) |
removes the vehicle from myApproachingVehicles
Definition at line 416 of file MSLink.cpp.
References DEBUG_COND, SUMOTrafficObject::getID(), Named::getID(), myApproachingVehicles, myLane, myLaneBefore, and SIMTIME.
Referenced by getWalkingAreaFoeExit(), MSVehicle::processLinkApproaches(), MEVehicle::replaceRoute(), and MSVehicle::updateDriveItems().
void MSLink::setApproaching | ( | const SUMOVehicle * | approaching, |
const SUMOTime | arrivalTime, | ||
const double | arrivalSpeed, | ||
const double | leaveSpeed, | ||
const bool | setRequest, | ||
const SUMOTime | arrivalTimeBraking, | ||
const double | arrivalSpeedBraking, | ||
const SUMOTime | waitingTime, | ||
double | dist | ||
) |
Sets the information about an approaching vehicle.
The information is stored in myApproachingVehicles.
Definition at line 365 of file MSLink.cpp.
References DEBUG_COND, SUMOTrafficObject::getID(), Named::getID(), getLeaveTime(), MSVehicleType::getLength(), SUMOTrafficObject::getVehicleType(), myApproachingVehicles, myLane, myLaneBefore, and SIMTIME.
Referenced by getWalkingAreaFoeExit(), MELoop::setApproaching(), MSVehicle::setApproachingForAllLinks(), and MSVehicle::updateDriveItems().
void MSLink::setApproaching | ( | const SUMOVehicle * | approaching, |
ApproachingVehicleInformation | ai | ||
) |
Sets the information about an approaching vehicle.
Definition at line 383 of file MSLink.cpp.
References DEBUG_COND, SUMOTrafficObject::getID(), Named::getID(), myApproachingVehicles, myLane, myLaneBefore, and SIMTIME.
|
inline |
Sets the green fraction for passing a tls-controlled link (meso)
Definition at line 501 of file MSLink.h.
References myGreenFraction.
|
inline |
Sets the time penalty for passing a tls-controlled link (meso)
Definition at line 496 of file MSLink.h.
References myMesoTLSPenalty.
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 125 of file MSLink.cpp.
References checkContOff(), contIntersect(), PositionVector::distances(), DIVERGENCE_MIN_WIDTH, fromInternalLane(), MSLane::getEdge(), MSEdge::getFromJunction(), Named::getID(), MSLane::getIncomingLanes(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getLogicalPredecessorLane(), MSLane::getShape(), getViaLaneOrLane(), MSLane::getWidth(), MSGlobals::gLateralResolution, hasFoes(), MSLane::interpolateGeometryPosToLanePos(), PositionVector::intersectsAtLengths2D(), isCont(), MSEdge::isInternal(), LINKDIR_STRAIGHT, MAX2(), MIN2(), MIN3(), myAmCont, myAmContOff, myDirection, myFoeLanes, myFoeLinks, myHasFoes, myHavePedestrianCrossingFoe, myIndex, myInternalLaneBefore, myJunction, myLane, myLaneBefore, myLengthsBehindCrossing, myLogic, mySublaneFoeLanes, mySublaneFoeLinks, mySublaneFoeLinks2, NUMERICAL_EPS, and toString().
Referenced by MSRightOfWayJunction::postloadInit().
Sets the current tl-state.
[in] | state | The current state of the link |
[in] | t | The time of the state change |
Definition at line 713 of file MSLink.cpp.
References myLastStateChange, and myState.
Referenced by MSTrafficLightLogic::addLink(), and getLastStateChange().
|
inlinestaticprivate |
return whether the given vehicles may NOT merge safely
Definition at line 530 of file MSLink.h.
References blockedByFoe(), checkContOff(), computeParallelLink(), contIntersect(), couldBrakeForLeader(), and maybeOccupied().
Referenced by blockedByFoe().
bool MSLink::willHaveBlockedFoe | ( | ) | const |
Definition at line 405 of file MSLink.cpp.
References myBlockedFoeLinks.
Referenced by isBlockingAnyone().
void MSLink::writeApproaching | ( | OutputDevice & | od, |
const std::string | fromLaneID | ||
) | const |
write information about all approaching vehicles to the given output device
Definition at line 754 of file MSLink.cpp.
References MSLink::ApproachingVehicleInformation::arrivalSpeed, MSLink::ApproachingVehicleInformation::arrivalSpeedBraking, MSLink::ApproachingVehicleInformation::arrivalTime, MSLink::ApproachingVehicleInformation::arrivalTimeBraking, 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().
Referenced by keepClear().
|
private |
Definition at line 597 of file MSLink.h.
Referenced by isConflictEntryLink(), isCont(), lastWasContMajor(), and setRequestInformation().
|
private |
Definition at line 599 of file MSLink.h.
Referenced by isCont(), and setRequestInformation().
|
private |
Definition at line 561 of file MSLink.h.
Referenced by blockedAtTime(), getApproaching(), isBlockingAnyone(), removeApproaching(), setApproaching(), and writeApproaching().
|
private |
Definition at line 562 of file MSLink.h.
Referenced by addBlockedLink(), and willHaveBlockedFoe().
|
private |
An abstract (hopefully human readable) definition of the link's direction.
Definition at line 582 of file MSLink.h.
Referenced by getDirection(), opened(), and setRequestInformation().
|
private |
Definition at line 630 of file MSLink.h.
Referenced by getFoeLanes(), getLeaderInfo(), getLengthBeforeCrossing(), hasApproachingFoe(), and setRequestInformation().
|
private |
Definition at line 629 of file MSLink.h.
Referenced by 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.
Definition at line 591 of file MSLink.h.
Referenced by getFoeVisibilityDistance().
|
private |
green fraction at tls for mesoscopic simulation
Definition at line 616 of file MSLink.h.
Referenced by getGreenFraction(), and setGreenFraction().
|
private |
Whether any foe links exist.
Definition at line 594 of file MSLink.h.
Referenced by hasFoes(), and setRequestInformation().
|
private |
whether on of myFoeLanes is a crossing
Definition at line 638 of file MSLink.h.
Referenced by lastWasContMajor(), and setRequestInformation().
|
private |
The position within this respond.
Definition at line 565 of file MSLink.h.
Referenced by getIndex(), and setRequestInformation().
|
private |
The following junction-internal lane if used.
Definition at line 605 of file MSLink.h.
Referenced by getCorrespondingExitLink(), getInternalLengthsAfter(), getInternalLengthsBefore(), getLengthsBeforeCrossing(), getViaLane(), getViaLaneOrLane(), isConflictEntryLink(), isEntryLink(), isExitLink(), isInternalJunctionLink(), lastWasContMajor(), and MSLink().
|
private |
Definition at line 611 of file MSLink.h.
Referenced by fromInternalLane(), getInternalLaneBefore(), getLaneBefore(), getLeaderInfo(), getLengthBeforeCrossing(), isConflictEntryLink(), isEntryLink(), isExitLink(), isExitLinkAfterInternalJunction(), and setRequestInformation().
|
private |
the junction to which this link belongs
Definition at line 658 of file MSLink.h.
Referenced by getJunction(), getZipperSpeed(), and setRequestInformation().
|
private |
Definition at line 602 of file MSLink.h.
Referenced by keepClear().
|
private |
The lane behind the junction approached by this link.
Definition at line 556 of file MSLink.h.
Referenced by getLane(), getLeaderInfo(), getViaLaneOrLane(), hasApproachingFoe(), opened(), removeApproaching(), setApproaching(), and setRequestInformation().
|
private |
The lane approaching this link.
Definition at line 559 of file MSLink.h.
Referenced by checkContOff(), getDescription(), getLaneBefore(), getLeaderInfo(), MSLink(), removeApproaching(), setApproaching(), and setRequestInformation().
|
private |
The time of the last state change.
Definition at line 579 of file MSLink.h.
Referenced by getLastStateChange(), and setTLState().
|
private |
lateral shift to be applied when passing this link
Definition at line 619 of file MSLink.h.
Referenced by getLateralShift(), and MSLink().
|
private |
The length of the link.
Definition at line 586 of file MSLink.h.
Referenced by getLength().
|
private |
Definition at line 626 of file MSLink.h.
Referenced by getLeaderInfo(), getLengthBeforeCrossing(), getLengthsBehindCrossing(), and setRequestInformation().
|
private |
the controlling logic or 0
Definition at line 571 of file MSLink.h.
Referenced by getTLLogic(), isTLSControlled(), and setRequestInformation().
|
staticprivate |
Definition at line 651 of file MSLink.h.
Referenced by blockedByFoe().
|
staticprivate |
Definition at line 652 of file MSLink.h.
Referenced by blockedByFoe().
|
private |
penalty time at tls for mesoscopic simulation
Definition at line 614 of file MSLink.h.
Referenced by getMesoTLSPenalty(), and setMesoTLSPenalty().
|
private |
The state of the link when switching of traffic light control.
Definition at line 576 of file MSLink.h.
Referenced by getOffState().
|
private |
Definition at line 655 of file MSLink.h.
Referenced by getParallelLink(), and initParallelLinks().
|
private |
Definition at line 654 of file MSLink.h.
Referenced by getParallelLink(), and initParallelLinks().
|
private |
The state of the link.
Definition at line 574 of file MSLink.h.
Referenced by blockedByFoe(), getState(), havePriority(), haveRed(), haveYellow(), isCont(), opened(), and setTLState().
|
private |
Definition at line 649 of file MSLink.h.
Referenced by getLeaderInfo(), and setRequestInformation().
|
private |
Definition at line 642 of file MSLink.h.
Referenced by opened(), and setRequestInformation().
|
private |
Definition at line 645 of file MSLink.h.
Referenced by opened(), and setRequestInformation().
|
private |
|
private |
walkingArea that must be checked when entering the intersection
Definition at line 633 of file MSLink.h.
Referenced by addWalkingAreaFoe(), getLeaderInfo(), and getWalkingAreaFoe().
|
private |
walkingArea that must be checked when leaving the intersection
Definition at line 635 of file MSLink.h.
Referenced by addWalkingAreaFoeExit(), getLeaderInfo(), and getWalkingAreaFoeExit().
|
static |
Definition at line 74 of file MSLink.h.
Referenced by getZipperSpeed(), and MSVehicle::unsafeLinkAhead().