Eclipse SUMO - Simulation of Urban MObility
MSCriticalFollowerDistanceInfo Class Reference

#include <MSLeaderInfo.h>

Inheritance diagram for MSCriticalFollowerDistanceInfo:
[legend]
Collaboration diagram for MSCriticalFollowerDistanceInfo:
[legend]

Public Member Functions

int addFollower (const MSVehicle *veh, const MSVehicle *ego, double gap, double latOffset=0, int sublane=-1)
 
virtual int addLeader (const MSVehicle *veh, bool beyond, double latOffset=0)
 
virtual int addLeader (const MSVehicle *veh, double gap, double latOffset=0, int sublane=-1)
 
virtual void addLeaders (MSLeaderDistanceInfo &other)
 updatd empty sublanes with vehicles and gaps from other More...
 
void clear ()
 discard all information More...
 
void fixOppositeGaps (bool isFollower)
 subtract vehicle length from all gaps if the leader vehicle is driving in the opposite direction More...
 
CLeaderDist getClosest () const
 return vehicle with the smalles gap More...
 
const std::vector< double > & getDistances () const
 
void getSublaneBorders (int sublane, double latOffset, double &rightSide, double &leftSide) const
 
int getSublaneOffset () const
 
void getSubLanes (const MSVehicle *veh, double latOffset, int &rightmost, int &leftmost) const
 
const std::vector< const MSVehicle * > & getVehicles () const
 
bool hasStoppedVehicle () const
 whether a stopped vehicle is leader More...
 
bool hasVehicles () const
 
void moveSamePosTo (const MSVehicle *ego, MSLeaderDistanceInfo &other)
 
 MSCriticalFollowerDistanceInfo (const double laneWidth, const MSVehicle *ego, const double latOffset, const bool haveOppositeLeaders=false)
 Constructor. More...
 
int numFreeSublanes () const
 
int numSublanes () const
 
CLeaderDist operator[] (int sublane) const
 return the vehicle and its distance for the given sublane More...
 
void patchGaps (double amount)
 add given value to all gaps More...
 
void removeOpposite (const MSLane *lane)
 remove vehicles that are driving in the opposite direction (fully or partially) on the given lane More...
 
void setSublaneOffset (int offset)
 set number of sublanes by which to shift positions More...
 
std::string toString () const
 print a debugging representation More...
 
virtual ~MSCriticalFollowerDistanceInfo ()
 Destructor. More...
 

Protected Attributes

int egoLeftMost
 
int egoRightMost
 borders of the ego vehicle for filtering of free sublanes More...
 
std::vector< double > myDistances
 
int myFreeSublanes
 the number of free sublanes More...
 
bool myHasVehicles
 
bool myHaveOppositeLeaders
 
std::vector< double > myMissingGaps
 
int myOffset
 an extra offset for shifting the interpretation of sublane borders (default [0,myWidth]) More...
 
std::vector< const MSVehicle * > myVehicles
 
double myWidth
 the width of the lane to which this instance applies More...
 

Detailed Description

Definition at line 209 of file MSLeaderInfo.h.

Constructor & Destructor Documentation

◆ MSCriticalFollowerDistanceInfo()

MSCriticalFollowerDistanceInfo::MSCriticalFollowerDistanceInfo ( const double  laneWidth,
const MSVehicle ego,
const double  latOffset,
const bool  haveOppositeLeaders = false 
)

Constructor.

Definition at line 393 of file MSLeaderInfo.cpp.

◆ ~MSCriticalFollowerDistanceInfo()

MSCriticalFollowerDistanceInfo::~MSCriticalFollowerDistanceInfo ( )
virtual

Destructor.

Definition at line 400 of file MSLeaderInfo.cpp.

Member Function Documentation

◆ addFollower()

int MSCriticalFollowerDistanceInfo::addFollower ( const MSVehicle veh,
const MSVehicle ego,
double  gap,
double  latOffset = 0,
int  sublane = -1 
)

◆ addLeader() [1/2]

virtual int MSCriticalFollowerDistanceInfo::addLeader ( const MSVehicle veh,
bool  beyond,
double  latOffset = 0 
)
inlinevirtual

Reimplemented from MSLeaderDistanceInfo.

Definition at line 235 of file MSLeaderInfo.h.

References TL, and UNUSED_PARAMETER.

◆ addLeader() [2/2]

virtual int MSCriticalFollowerDistanceInfo::addLeader ( const MSVehicle veh,
double  gap,
double  latOffset = 0,
int  sublane = -1 
)
inlinevirtual

Reimplemented from MSLeaderDistanceInfo.

Definition at line 227 of file MSLeaderInfo.h.

References TL, and UNUSED_PARAMETER.

◆ addLeaders()

void MSLeaderDistanceInfo::addLeaders ( MSLeaderDistanceInfo other)
virtualinherited

updatd empty sublanes with vehicles and gaps from other

Definition at line 285 of file MSLeaderInfo.cpp.

References MSLeaderDistanceInfo::addLeader(), MIN2(), and MSLeaderInfo::numSublanes().

Referenced by MSLaneChangerSublane::checkChangeSublane().

Here is the caller graph for this function:

◆ clear()

void MSCriticalFollowerDistanceInfo::clear ( )
virtual

discard all information

Reimplemented from MSLeaderDistanceInfo.

Definition at line 481 of file MSLeaderInfo.cpp.

References MSLeaderDistanceInfo::clear(), myMissingGaps, and MSLeaderInfo::myVehicles.

◆ fixOppositeGaps()

void MSLeaderDistanceInfo::fixOppositeGaps ( bool  isFollower)
inherited

subtract vehicle length from all gaps if the leader vehicle is driving in the opposite direction

Definition at line 333 of file MSLeaderInfo.cpp.

References MSLeaderDistanceInfo::myDistances, and MSLeaderInfo::myVehicles.

Referenced by MSLaneChangerSublane::checkChangeOpposite(), LIBSUMO_NAMESPACE::Vehicle::getNeighbors(), and MSVehicle::planMoveInternal().

Here is the caller graph for this function:

◆ getClosest()

CLeaderDist MSLeaderDistanceInfo::getClosest ( ) const
inherited

return vehicle with the smalles gap

Definition at line 358 of file MSLeaderInfo.cpp.

References MSLeaderInfo::hasVehicles(), MSLeaderDistanceInfo::myDistances, and MSLeaderInfo::myVehicles.

Referenced by MSLane::getFollower().

Here is the caller graph for this function:

◆ getDistances()

const std::vector<double>& MSLeaderDistanceInfo::getDistances ( ) const
inlineinherited

Definition at line 184 of file MSLeaderInfo.h.

References MSLeaderDistanceInfo::myDistances.

◆ getSublaneBorders()

void MSLeaderInfo::getSublaneBorders ( int  sublane,
double  latOffset,
double &  rightSide,
double &  leftSide 
) const
inherited

Definition at line 153 of file MSLeaderInfo.cpp.

References MSGlobals::gLateralResolution, MIN2(), MSLeaderInfo::myOffset, MSLeaderInfo::myVehicles, and MSLeaderInfo::myWidth.

Referenced by MSLCM_SL2015::checkBlockingVehicles(), MSLCM_SL2015::commitFollowSpeed(), MSLCM_SL2015::updateCFRelated(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), and MSLCM_SL2015::updateGaps().

Here is the caller graph for this function:

◆ getSublaneOffset()

int MSLeaderInfo::getSublaneOffset ( ) const
inlineinherited

Definition at line 102 of file MSLeaderInfo.h.

References MSLeaderInfo::myOffset.

Referenced by MSVehicle::adaptToLeaders(), and MSLane::getFollowersOnConsecutive().

Here is the caller graph for this function:

◆ getSubLanes()

◆ getVehicles()

const std::vector<const MSVehicle*>& MSLeaderInfo::getVehicles ( ) const
inlineinherited

Definition at line 98 of file MSLeaderInfo.h.

References MSLeaderInfo::myVehicles.

◆ hasStoppedVehicle()

bool MSLeaderInfo::hasStoppedVehicle ( ) const
inherited

whether a stopped vehicle is leader

Definition at line 194 of file MSLeaderInfo.cpp.

References MSLeaderInfo::myHasVehicles, and MSLeaderInfo::myVehicles.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSLCM_SL2015::checkStrategicChange(), and MSLCM_SL2015::mustOvertakeStopped().

Here is the caller graph for this function:

◆ hasVehicles()

bool MSLeaderInfo::hasVehicles ( ) const
inlineinherited

◆ moveSamePosTo()

void MSLeaderDistanceInfo::moveSamePosTo ( const MSVehicle ego,
MSLeaderDistanceInfo other 
)
inherited

Definition at line 375 of file MSLeaderInfo.cpp.

References MSLane::getEdge(), MSVehicle::getLane(), MSVehicle::getPositionOnLane(), MSLeaderDistanceInfo::myDistances, and MSLeaderInfo::myVehicles.

Referenced by MSLaneChangerSublane::checkChangeSublane().

Here is the caller graph for this function:

◆ numFreeSublanes()

int MSLeaderInfo::numFreeSublanes ( ) const
inlineinherited

Definition at line 90 of file MSLeaderInfo.h.

References MSLeaderInfo::myFreeSublanes.

Referenced by MSLane::addLeaders(), MSLane::getFollowersOnConsecutive(), MSLane::getLeadersOnConsecutive(), and MSLane::isInsertionSuccess().

Here is the caller graph for this function:

◆ numSublanes()

◆ operator[]()

CLeaderDist MSLeaderDistanceInfo::operator[] ( int  sublane) const
inherited

return the vehicle and its distance for the given sublane

Definition at line 305 of file MSLeaderInfo.cpp.

References MSLeaderDistanceInfo::myDistances, and MSLeaderInfo::myVehicles.

◆ patchGaps()

void MSLeaderDistanceInfo::patchGaps ( double  amount)
inherited

add given value to all gaps

Definition at line 349 of file MSLeaderInfo.cpp.

References MSLeaderDistanceInfo::myDistances, and MSLeaderInfo::myVehicles.

Referenced by MSLaneChangerSublane::checkChangeOpposite().

Here is the caller graph for this function:

◆ removeOpposite()

void MSLeaderInfo::removeOpposite ( const MSLane lane)
inherited

remove vehicles that are driving in the opposite direction (fully or partially) on the given lane

Definition at line 207 of file MSLeaderInfo.cpp.

References MSLane::getEdge(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSAbstractLaneChangeModel::isOpposite(), and MSLeaderInfo::myVehicles.

Referenced by MSVehicle::planMoveInternal().

Here is the caller graph for this function:

◆ setSublaneOffset()

void MSLeaderInfo::setSublaneOffset ( int  offset)
inherited

set number of sublanes by which to shift positions

Definition at line 187 of file MSLeaderInfo.cpp.

References MSGlobals::gLateralResolution, and MSLeaderInfo::myOffset.

Referenced by MSLaneChangerSublane::addOutsideLeaders(), MSLane::getFollowersOnConsecutive(), MSLaneChangerSublane::getLeaders(), and MSVehicle::planMoveInternal().

Here is the caller graph for this function:

◆ toString()

std::string MSCriticalFollowerDistanceInfo::toString ( ) const
virtual

print a debugging representation

Reimplemented from MSLeaderDistanceInfo.

Definition at line 488 of file MSLeaderInfo.cpp.

References Named::getIDSecure(), MSLeaderDistanceInfo::myDistances, MSLeaderInfo::myFreeSublanes, myMissingGaps, and MSLeaderInfo::myVehicles.

Referenced by MSLane::getFollowersOnConsecutive().

Here is the caller graph for this function:

Field Documentation

◆ egoLeftMost

int MSLeaderInfo::egoLeftMost
protectedinherited

◆ egoRightMost

int MSLeaderInfo::egoRightMost
protectedinherited

borders of the ego vehicle for filtering of free sublanes

Definition at line 135 of file MSLeaderInfo.h.

Referenced by addFollower(), MSLeaderInfo::addLeader(), MSLeaderDistanceInfo::addLeader(), MSLeaderInfo::clear(), and MSLeaderInfo::MSLeaderInfo().

◆ myDistances

◆ myFreeSublanes

◆ myHasVehicles

◆ myHaveOppositeLeaders

bool MSCriticalFollowerDistanceInfo::myHaveOppositeLeaders
protected

Definition at line 254 of file MSLeaderInfo.h.

Referenced by addFollower().

◆ myMissingGaps

std::vector<double> MSCriticalFollowerDistanceInfo::myMissingGaps
protected

Definition at line 251 of file MSLeaderInfo.h.

Referenced by addFollower(), clear(), and toString().

◆ myOffset

int MSLeaderInfo::myOffset
protectedinherited

an extra offset for shifting the interpretation of sublane borders (default [0,myWidth])

Definition at line 125 of file MSLeaderInfo.h.

Referenced by MSLeaderInfo::getSublaneBorders(), MSLeaderInfo::getSublaneOffset(), MSLeaderInfo::getSubLanes(), and MSLeaderInfo::setSublaneOffset().

◆ myVehicles

◆ myWidth

double MSLeaderInfo::myWidth
protectedinherited

the width of the lane to which this instance applies

Definition at line 122 of file MSLeaderInfo.h.

Referenced by MSLeaderInfo::getSublaneBorders(), and MSLeaderInfo::getSubLanes().


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