Eclipse SUMO - Simulation of Urban MObility
MSPModel_Striping Class Reference

The pedestrian following model. More...

#include <MSPModel_Striping.h>

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

Data Structures

class  by_xpos_sorter
 sorts the persons by position on the lane. If dir is forward, higher x positions come first. More...
 
class  lane_by_numid_sorter
 
class  MovePedestrians
 
struct  NextLaneInfo
 
struct  Obstacle
 information regarding surround Pedestrians (and potentially other things) More...
 
class  PState
 Container for pedestrian state and individual position update function. More...
 
class  PStateVehicle
 
class  walkingarea_path_sorter
 
struct  WalkingAreaPath
 

Public Types

typedef std::map< std::pair< const MSLane *, const MSLane * >, const WalkingAreaPathWalkingAreaPaths
 

Public Member Functions

MSTransportableStateAdapteradd (MSTransportable *transportable, MSStageMoving *stage, SUMOTime now)
 register the given person as a pedestrian More...
 
bool blockedAtDist (const SUMOTrafficObject *ego, const MSLane *lane, double vehSide, double vehWidth, double oncomingGap, std::vector< const MSPerson * > *collectBlockers)
 whether a pedestrian is blocking the crossing of lane for the given vehicle bondaries More...
 
void clearState ()
 Resets pedestrians when quick-loading state. More...
 
bool hasPedestrians (const MSLane *lane)
 whether the given lane has pedestrians on it More...
 
MSTransportableStateAdapterloadState (MSTransportable *transportable, MSStageMoving *stage, std::istringstream &in)
 load the state of the given transportable More...
 
 MSPModel_Striping (const OptionsCont &oc, MSNet *net)
 Constructor (it should not be necessary to construct more than one instance) More...
 
PersonDist nextBlocking (const MSLane *lane, double minPos, double minRight, double maxLeft, double stopTime=0, bool bidi=false)
 returns the next pedestrian beyond minPos that is laterally between minRight and maxLeft or 0 More...
 
void remove (MSTransportableStateAdapter *state)
 remove the specified person from the pedestrian simulation More...
 
bool usingInternalLanes ()
 whether movements on intersections are modelled / More...
 
virtual bool usingShortcuts ()
 whether travel times and distances can reliably be calculated from the network alone More...
 
 ~MSPModel_Striping ()
 

Static Public Member Functions

static int canTraverse (int dir, const ConstMSEdgeVector &route, int &passedEdges)
 

Static Public Attributes

static const int BACKWARD
 
static const int FORWARD
 
static const double RANDOM_POS_LAT
 magic value to encode randomized lateral offset for persons when starting a walk More...
 
static const double SAFETY_GAP
 
static const double SIDEWALK_OFFSET
 the offset for computing person positions when walking on edges without a sidewalk More...
 
static const int UNDEFINED_DIRECTION
 
static const double UNSPECIFIED_POS_LAT
 the default lateral offset for persons when starting a walk More...
 
static double stripeWidth
 model parameters More...
 
static double dawdling
 
static double minGapToVehicle
 
static int myWalkingAreaDetail
 
static SUMOTime jamTime
 
static SUMOTime jamTimeCrossing
 
static SUMOTime jamTimeNarrow
 
static bool myLegacyPosLat
 
static const double LOOKAHEAD_SAMEDIR
 
static const double LOOKAHEAD_ONCOMING
 
static const double LOOKAROUND_VEHICLES
 
static const double LATERAL_PENALTY
 
static const double OBSTRUCTED_PENALTY
 
static const double INAPPROPRIATE_PENALTY
 
static const double ONCOMING_CONFLICT_PENALTY
 
static const double OBSTRUCTION_THRESHOLD
 
static const double SQUEEZE
 
static double RESERVE_FOR_ONCOMING_FACTOR
 
static double RESERVE_FOR_ONCOMING_FACTOR_JUNCTIONS
 
static double RESERVE_FOR_ONCOMING_MAX
 
static const double MAX_WAIT_TOLERANCE
 
static const double LATERAL_SPEED_FACTOR
 
static const double MIN_STARTUP_DIST
 

Protected Types

typedef std::map< const MSLane *, Pedestrians, lane_by_numid_sorterActiveLanes
 
typedef std::map< const MSLane *, double > MinNextLengths
 
typedef std::map< const MSLane *, Obstacles, lane_by_numid_sorterNextLanesObstacles
 
typedef std::vector< ObstacleObstacles
 
enum  ObstacleType {
  OBSTACLE_NONE = 0 , OBSTACLE_PED = 1 , OBSTACLE_VEHICLE = 3 , OBSTACLE_END = 4 ,
  OBSTACLE_NEXTEND = 5 , OBSTACLE_LINKCLOSED = 6 , OBSTACLE_ARRIVALPOS = 7
}
 
typedef std::vector< PState * > Pedestrians
 

Protected Member Functions

void arriveAndAdvance (Pedestrians &pedestrians, SUMOTime currentTime, std::set< MSPerson * > &changedLane, int dir)
 handle arrivals and lane advancement More...
 
const ActiveLanesgetActiveLanes ()
 
int getActiveNumber ()
 return the number of active objects More...
 
void moveInDirection (SUMOTime currentTime, std::set< MSPerson * > &changedLane, int dir)
 move all pedestrians forward and advance to the next lane if applicable More...
 
void moveInDirectionOnLane (Pedestrians &pedestrians, const MSLane *lane, SUMOTime currentTime, std::set< MSPerson * > &changedLane, int dir, bool debug)
 move pedestrians forward on one lane More...
 
void registerActive ()
 

Static Protected Attributes

static const double DIST_BEHIND
 
static const double DIST_FAR_AWAY
 
static const double DIST_OVERLAP
 

Private Member Functions

const ObstaclesgetNextLaneObstacles (NextLanesObstacles &nextLanesObs, const MSLane *lane, const MSLane *nextLane, int stripes, int nextDir, double currentLength, int currentDir)
 
PedestriansgetPedestrians (const MSLane *lane)
 retrieves the pedestian vector for the given lane (may be empty) More...
 

Static Private Member Functions

static void addCloserObstacle (Obstacles &obs, double x, int stripe, int numStripes, const std::string &id, double width, int dir, ObstacleType type)
 
static bool addCrossingVehs (const MSLane *crossing, int stripes, double lateral_offset, int dir, Obstacles &crossingVehs, bool prio)
 add vehicles driving across More...
 
static bool addVehicleFoe (const MSVehicle *veh, const MSLane *walkingarea, const Position &relPos, double xWidth, double yWidth, double lateral_offset, double minY, double maxY, Pedestrians &toDelete, Pedestrians &transformedPeds)
 
static int connectedDirection (const MSLane *from, const MSLane *to)
 returns the direction in which these lanes are connectioned or 0 if they are not More...
 
static void DEBUG_PRINT (const Obstacles &obs)
 
static const WalkingAreaPathgetArbitraryPath (const MSEdge *walkingArea)
 return an arbitrary path across the given walkingArea More...
 
static Obstacles getNeighboringObstacles (const Pedestrians &pedestrians, int egoIndex, int stripes)
 
static NextLaneInfo getNextLane (const PState &ped, const MSLane *currentLane, const MSLane *prevLane)
 computes the successor lane for the given pedestrian and sets the link as well as the direction to use on the succesor lane More...
 
static const MSLanegetNextWalkingArea (const MSLane *currentLane, const int dir, const MSLink *&link)
 return the next walkingArea in the given direction More...
 
static int getReserved (int stripes, double factor)
 
static int getStripeOffset (int origStripes, int destStripes, bool addRemainder)
 
static Obstacles getVehicleObstacles (const MSLane *lane, int dir, PState *ped=0)
 retrieve vehicle obstacles on the given lane More...
 
static const WalkingAreaPathgetWalkingAreaPath (const MSEdge *walkingArea, const MSLane *before, const MSLane *after)
 
static const WalkingAreaPathguessPath (const MSEdge *walkingArea, const MSEdge *before, const MSEdge *after)
 
static void initWalkingAreaPaths (const MSNet *net)
 
static void insertWalkArePaths (const MSEdge *edge, WalkingAreaPaths &into)
 creates and inserts all paths into the given map More...
 
static int numStripes (const MSLane *lane)
 return the maximum number of pedestrians walking side by side More...
 
static void transformToCurrentLanePositions (Obstacles &o, int currentDir, int nextDir, double currentLength, double nextLength)
 
static bool usingInternalLanesStatic ()
 

Private Attributes

ActiveLanes myActiveLanes
 store of all lanes which have pedestrians on them More...
 
bool myAmActive
 whether an event for pedestrian processing was added More...
 
int myNumActivePedestrians
 the total number of active pedestrians More...
 

Static Private Attributes

static MinNextLengths myMinNextLengths
 
static std::map< const MSEdge *, std::vector< const MSLane * > > myWalkingAreaFoes
 
static WalkingAreaPaths myWalkingAreaPaths
 store for walkinArea elements More...
 
static Pedestrians noPedestrians
 empty pedestrian vector More...
 

Friends

class GUIPerson
 

Detailed Description

The pedestrian following model.

Definition at line 49 of file MSPModel_Striping.h.

Member Typedef Documentation

◆ ActiveLanes

Definition at line 198 of file MSPModel_Striping.h.

◆ MinNextLengths

typedef std::map<const MSLane*, double> MSPModel_Striping::MinNextLengths
protected

Definition at line 201 of file MSPModel_Striping.h.

◆ NextLanesObstacles

Definition at line 200 of file MSPModel_Striping.h.

◆ Obstacles

typedef std::vector<Obstacle> MSPModel_Striping::Obstacles
protected

Definition at line 199 of file MSPModel_Striping.h.

◆ Pedestrians

typedef std::vector<PState*> MSPModel_Striping::Pedestrians
protected

Definition at line 197 of file MSPModel_Striping.h.

◆ WalkingAreaPaths

typedef std::map<std::pair<const MSLane*, const MSLane*>, const WalkingAreaPath> MSPModel_Striping::WalkingAreaPaths

Definition at line 76 of file MSPModel_Striping.h.

Member Enumeration Documentation

◆ ObstacleType

Enumerator
OBSTACLE_NONE 
OBSTACLE_PED 
OBSTACLE_VEHICLE 
OBSTACLE_END 
OBSTACLE_NEXTEND 
OBSTACLE_LINKCLOSED 
OBSTACLE_ARRIVALPOS 

Definition at line 224 of file MSPModel_Striping.h.

Constructor & Destructor Documentation

◆ MSPModel_Striping()

◆ ~MSPModel_Striping()

MSPModel_Striping::~MSPModel_Striping ( )

Member Function Documentation

◆ add()

◆ addCloserObstacle()

void MSPModel_Striping::addCloserObstacle ( Obstacles obs,
double  x,
int  stripe,
int  numStripes,
const std::string &  id,
double  width,
int  dir,
ObstacleType  type 
)
staticprivate

Definition at line 951 of file MSPModel_Striping.cpp.

References MSPModel::BACKWARD, MSPModel::FORWARD, and numStripes().

Referenced by getNextLaneObstacles().

Here is the caller graph for this function:

◆ addCrossingVehs()

bool MSPModel_Striping::addCrossingVehs ( const MSLane crossing,
int  stripes,
double  lateral_offset,
int  dir,
Obstacles crossingVehs,
bool  prio 
)
staticprivate

◆ addVehicleFoe()

bool MSPModel_Striping::addVehicleFoe ( const MSVehicle veh,
const MSLane walkingarea,
const Position relPos,
double  xWidth,
double  yWidth,
double  lateral_offset,
double  minY,
double  maxY,
Pedestrians toDelete,
Pedestrians transformedPeds 
)
staticprivate

Definition at line 1114 of file MSPModel_Striping.cpp.

References Position::INVALID, Position::x(), and Position::y().

Referenced by moveInDirection().

Here is the caller graph for this function:

◆ arriveAndAdvance()

void MSPModel_Striping::arriveAndAdvance ( Pedestrians pedestrians,
SUMOTime  currentTime,
std::set< MSPerson * > &  changedLane,
int  dir 
)
protected

handle arrivals and lane advancement

Definition at line 1131 of file MSPModel_Striping.cpp.

References MSPModel_Striping::PState::distToLaneEnd(), MSPModel_Striping::PState::isRemoteControlled(), MSStageMoving::moveToNextEdge(), MSPModel_Striping::PState::moveToNextLane(), myActiveLanes, MSPModel_Striping::PState::myDir, MSPModel_Striping::PState::myLane, myNumActivePedestrians, MSPModel_Striping::PState::myPerson, and MSPModel_Striping::PState::myStage.

Referenced by moveInDirection().

Here is the caller graph for this function:

◆ blockedAtDist()

bool MSPModel_Striping::blockedAtDist ( const SUMOTrafficObject ego,
const MSLane lane,
double  vehSide,
double  vehWidth,
double  oncomingGap,
std::vector< const MSPerson * > *  collectBlockers 
)
virtual

whether a pedestrian is blocking the crossing of lane for the given vehicle bondaries

Parameters
[in]egoThe object that inquires about blockage (and may electively ignore foes)
[in]laneThe crossing to check
[in]vehsideThe offset to the vehicle side near the start of the crossing
[in]vehWidthThe width of the vehicle
[in]oncomingGapThe distance which the vehicle wants to keep from oncoming pedestrians
[in]collectBlockersThe list of persons blocking the crossing
Returns
Whether the vehicle must wait

Reimplemented from MSPModel.

Definition at line 224 of file MSPModel_Striping.cpp.

References DEBUGCOND, MSPModel::FORWARD, Named::getID(), MSPModel_Striping::PState::getLength(), getPedestrians(), MSLink::ignoreFoe(), MSPModel_Striping::PState::myDir, MSPModel_Striping::PState::myPerson, MSPModel_Striping::PState::myRelX, MSPModel_Striping::PState::myWaitingTime, SIMTIME, and TIME2STEPS.

◆ canTraverse()

int MSPModel::canTraverse ( int  dir,
const ConstMSEdgeVector route,
int &  passedEdges 
)
staticinherited

Definition at line 54 of file MSPModel.cpp.

References MSPModel::BACKWARD, MSPModel::FORWARD, MSEdge::getFromJunction(), MSEdge::getToJunction(), and MSPModel::UNDEFINED_DIRECTION.

Referenced by getNextLane(), MSPModel_Striping::PState::PState(), and MSStageWalking::walkDistance().

Here is the caller graph for this function:

◆ clearState()

void MSPModel_Striping::clearState ( )
virtual

Resets pedestrians when quick-loading state.

Implements MSPModel.

Definition at line 158 of file MSPModel_Striping.cpp.

References myActiveLanes, myAmActive, and myNumActivePedestrians.

Referenced by ~MSPModel_Striping().

Here is the caller graph for this function:

◆ connectedDirection()

int MSPModel_Striping::connectedDirection ( const MSLane from,
const MSLane to 
)
staticprivate

returns the direction in which these lanes are connectioned or 0 if they are not

Definition at line 335 of file MSPModel_Striping.cpp.

References MSPModel::BACKWARD, MSPModel::FORWARD, MSLane::getLinkTo(), and MSPModel::UNDEFINED_DIRECTION.

Referenced by getNextLane().

Here is the caller graph for this function:

◆ DEBUG_PRINT()

void MSPModel_Striping::DEBUG_PRINT ( const Obstacles obs)
staticprivate

Definition at line 56 of file MSPModel_Striping.cpp.

Referenced by addCrossingVehs(), getNeighboringObstacles(), and moveInDirectionOnLane().

Here is the caller graph for this function:

◆ getActiveLanes()

const ActiveLanes& MSPModel_Striping::getActiveLanes ( )
inlineprotected

Definition at line 473 of file MSPModel_Striping.h.

References myActiveLanes.

◆ getActiveNumber()

int MSPModel_Striping::getActiveNumber ( )
inlineprotectedvirtual

return the number of active objects

Implements MSPModel.

Definition at line 478 of file MSPModel_Striping.h.

References myNumActivePedestrians.

◆ getArbitraryPath()

const MSPModel_Striping::WalkingAreaPath * MSPModel_Striping::getArbitraryPath ( const MSEdge walkingArea)
staticprivate

return an arbitrary path across the given walkingArea

Definition at line 461 of file MSPModel_Striping.cpp.

References Named::getID(), MSEdge::getPredecessors(), MSEdge::getSuccessors(), MSEdge::isWalkingArea(), myWalkingAreaPaths, and TLF.

Referenced by getWalkingAreaPath(), guessPath(), and MSPModel_Striping::PState::PState().

Here is the caller graph for this function:

◆ getNeighboringObstacles()

MSPModel_Striping::Obstacles MSPModel_Striping::getNeighboringObstacles ( const Pedestrians pedestrians,
int  egoIndex,
int  stripes 
)
staticprivate

◆ getNextLane()

MSPModel_Striping::NextLaneInfo MSPModel_Striping::getNextLane ( const PState ped,
const MSLane currentLane,
const MSLane prevLane 
)
staticprivate

computes the successor lane for the given pedestrian and sets the link as well as the direction to use on the succesor lane

Parameters
[in]currentLaneThe lane the pedestrian is currently on
[in]pedThe pedestrian for which to compute the next lane

Definition at line 527 of file MSPModel_Striping.cpp.

References MSPModel::BACKWARD, MSPModel::canTraverse(), PedestrianRouter< E, L, N, V >::compute(), connectedDirection(), DEBUGCOND, MSPModel::FORWARD, MSStage::getArrivalPos(), MSLane::getCanonicalSuccessorLane(), MSLane::getEdge(), MSEdge::getFromJunction(), Named::getID(), MSNet::getInstance(), MSLane::getInternalFollowingLane(), MSEdge::getLanes(), MSEdge::getLength(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getLinkTo(), MSLane::getLogicalPredecessorLane(), MSStageMoving::getMaxSpeed(), MSStageMoving::getNextRouteEdge(), getNextWalkingArea(), OptionsCont::getOptions(), MSNet::getPedestrianRouter(), MSStageMoving::getRoute(), MSStage::getRoutePosition(), MSLink::getTLLogic(), MSEdge::getToJunction(), MSTransportable::getVClass(), MSLink::getViaLaneOrLane(), MSEdge::isCrossing(), MSEdge::isInternal(), MSEdge::isWalkingArea(), MSPModel_Striping::PState::myDir, MSPModel_Striping::PState::myPerson, MSPModel_Striping::PState::myStage, SIMTIME, time2string(), toString(), MSPModel::UNDEFINED_DIRECTION, usingInternalLanesStatic(), and WRITE_WARNING.

Referenced by moveInDirectionOnLane(), MSPModel_Striping::PState::moveToNextLane(), MSPModel_Striping::PState::moveToXY(), and MSPModel_Striping::PState::PState().

Here is the caller graph for this function:

◆ getNextLaneObstacles()

const MSPModel_Striping::Obstacles & MSPModel_Striping::getNextLaneObstacles ( NextLanesObstacles nextLanesObs,
const MSLane lane,
const MSLane nextLane,
int  stripes,
int  nextDir,
double  currentLength,
int  currentDir 
)
private

◆ getNextWalkingArea()

const MSLane * MSPModel_Striping::getNextWalkingArea ( const MSLane currentLane,
const int  dir,
const MSLink *&  link 
)
staticprivate

return the next walkingArea in the given direction

Definition at line 744 of file MSPModel_Striping.cpp.

References MSPModel::FORWARD, MSLane::getIncomingLanes(), MSLink::getLane(), and MSLane::getLinkCont().

Referenced by getNextLane().

Here is the caller graph for this function:

◆ getPedestrians()

MSPModel_Striping::Pedestrians & MSPModel_Striping::getPedestrians ( const MSLane lane)
private

retrieves the pedestian vector for the given lane (may be empty)

Definition at line 318 of file MSPModel_Striping.cpp.

References myActiveLanes, and noPedestrians.

Referenced by blockedAtDist(), getNextLaneObstacles(), hasPedestrians(), and nextBlocking().

Here is the caller graph for this function:

◆ getReserved()

int MSPModel_Striping::getReserved ( int  stripes,
double  factor 
)
staticprivate

Definition at line 2015 of file MSPModel_Striping.cpp.

References MIN2(), RESERVE_FOR_ONCOMING_MAX, and stripeWidth.

Referenced by addCrossingVehs(), and MSPModel_Striping::PState::walk().

Here is the caller graph for this function:

◆ getStripeOffset()

int MSPModel_Striping::getStripeOffset ( int  origStripes,
int  destStripes,
bool  addRemainder 
)
staticprivate

Definition at line 817 of file MSPModel_Striping.cpp.

Referenced by getNextLaneObstacles(), and MSPModel_Striping::PState::moveToNextLane().

Here is the caller graph for this function:

◆ getVehicleObstacles()

◆ getWalkingAreaPath()

const MSPModel_Striping::WalkingAreaPath * MSPModel_Striping::getWalkingAreaPath ( const MSEdge walkingArea,
const MSLane before,
const MSLane after 
)
staticprivate

Definition at line 505 of file MSPModel_Striping.cpp.

References getArbitraryPath(), MSEdge::getPredecessors(), MSEdge::isWalkingArea(), and myWalkingAreaPaths.

Referenced by guessPath(), and MSPModel_Striping::PState::moveToNextLane().

Here is the caller graph for this function:

◆ guessPath()

const MSPModel_Striping::WalkingAreaPath * MSPModel_Striping::guessPath ( const MSEdge walkingArea,
const MSEdge before,
const MSEdge after 
)
staticprivate

Definition at line 477 of file MSPModel_Striping.cpp.

References getArbitraryPath(), MSEdge::getPredecessors(), MSEdge::getSuccessors(), getWalkingAreaPath(), MSEdge::isWalkingArea(), and myWalkingAreaPaths.

Referenced by MSPModel_Striping::PState::moveTo(), and MSPModel_Striping::PState::moveToXY().

Here is the caller graph for this function:

◆ hasPedestrians()

bool MSPModel_Striping::hasPedestrians ( const MSLane lane)
virtual

whether the given lane has pedestrians on it

Reimplemented from MSPModel.

Definition at line 264 of file MSPModel_Striping.cpp.

References getPedestrians().

◆ initWalkingAreaPaths()

void MSPModel_Striping::initWalkingAreaPaths ( const MSNet net)
staticprivate

Definition at line 349 of file MSPModel_Striping.cpp.

References MSEdge::getAllEdges(), MSEdge::getLanes(), insertWalkArePaths(), MSEdge::isCrossing(), MSEdge::isWalkingArea(), myWalkingAreaFoes, and myWalkingAreaPaths.

Referenced by MSPModel_Striping().

Here is the caller graph for this function:

◆ insertWalkArePaths()

void MSPModel_Striping::insertWalkArePaths ( const MSEdge edge,
WalkingAreaPaths into 
)
staticprivate

◆ loadState()

MSTransportableStateAdapter * MSPModel_Striping::loadState ( MSTransportable transportable,
MSStageMoving stage,
std::istringstream &  in 
)
virtual

◆ moveInDirection()

◆ moveInDirectionOnLane()

void MSPModel_Striping::moveInDirectionOnLane ( Pedestrians pedestrians,
const MSLane lane,
SUMOTime  currentTime,
std::set< MSPerson * > &  changedLane,
int  dir,
bool  debug 
)
protected

move pedestrians forward on one lane

Definition at line 1160 of file MSPModel_Striping.cpp.

References addCrossingVehs(), MSPModel_Striping::Obstacle::closer(), DEBUG_PRINT(), DEBUGCOND, DELTA_T, MSPModel_Striping::NextLaneInfo::dir, DIST_OVERLAP, MSPModel_Striping::PState::distanceTo(), MSPModel_Striping::PState::distToLaneEnd(), MSPModel::FORWARD, MSPModel_Striping::WalkingAreaPath::from, MSGlobals::gCheck4Accidents, gDebugFlag1, MSStage::getArrivalPos(), MSStage::getDestination(), MSStage::getDestinationStop(), MSLane::getEdge(), Named::getID(), MSPModel_Striping::PState::getImpatience(), MSLane::getLength(), MSPModel_Striping::PState::getLength(), MSStageMoving::getMaxSpeed(), MSPModel_Striping::PState::getMinGap(), getNeighboringObstacles(), getNextLane(), getNextLaneObstacles(), MSStoppingPlace::getNumWaitingPersons(), MSLane::getVehicleNumberWithPartials(), getVehicleObstacles(), MSLink::getViaLaneOrLane(), MSStoppingPlace::getWaitingCapacity(), MSPModel_Striping::PState::ignoreRed(), Position::INVALID, MSEdge::isCrossing(), MSPModel_Striping::NextLaneInfo::lane, MSPModel_Striping::WalkingAreaPath::length, MSPModel_Striping::NextLaneInfo::link, LOOKAHEAD_ONCOMING, LOOKAHEAD_SAMEDIR, MSPModel_Striping::PState::mergeObstacles(), MSPModel_Striping::PState::myAmJammed, MSPModel_Striping::PState::myDir, MSPModel_Striping::PState::myLane, MSPModel_Striping::PState::myNLI, MSPModel_Striping::PState::myPerson, MSPModel_Striping::PState::myRelX, MSPModel_Striping::PState::myRemoteXYPos, MSPModel_Striping::PState::mySpeed, MSPModel_Striping::PState::myStage, MSPModel_Striping::PState::myWaitingToEnter, MSPModel_Striping::PState::myWalkingAreaPath, numStripes(), OBSTACLE_ARRIVALPOS, OBSTACLE_LINKCLOSED, MSLink::opened(), MSPModel_Striping::PState::otherStripe(), SIMTIME, MSPModel_Striping::Obstacle::speed, MSPModel_Striping::PState::stripe(), time2string(), UNUSED_PARAMETER, MSPModel_Striping::PState::walk(), and WRITE_WARNING.

Referenced by moveInDirection().

Here is the caller graph for this function:

◆ nextBlocking()

PersonDist MSPModel_Striping::nextBlocking ( const MSLane lane,
double  minPos,
double  minRight,
double  maxLeft,
double  stopTime = 0,
bool  bidi = false 
)
virtual

◆ numStripes()

int MSPModel_Striping::numStripes ( const MSLane lane)
staticprivate

return the maximum number of pedestrians walking side by side

Definition at line 330 of file MSPModel_Striping.cpp.

References MSLane::getWidth(), MAX2(), and stripeWidth.

Referenced by addCloserObstacle(), getNextLaneObstacles(), getVehicleObstacles(), moveInDirection(), moveInDirectionOnLane(), MSPModel_Striping::PState::moveToNextLane(), MSPModel_Striping::PState::otherStripe(), MSPModel_Striping::PState::PState(), MSPModel_Striping::PState::stripe(), and MSPModel_Striping::PState::walk().

Here is the caller graph for this function:

◆ registerActive()

void MSPModel_Striping::registerActive ( )
inlineprotected

Definition at line 482 of file MSPModel_Striping.h.

References myNumActivePedestrians.

Referenced by MSPModel_Striping::PState::moveToXY().

Here is the caller graph for this function:

◆ remove()

void MSPModel_Striping::remove ( MSTransportableStateAdapter state)
virtual

remove the specified person from the pedestrian simulation

Implements MSPModel.

Definition at line 210 of file MSPModel_Striping.cpp.

References myActiveLanes, and myNumActivePedestrians.

Referenced by MSPModel_Striping::PState::moveToXY().

Here is the caller graph for this function:

◆ transformToCurrentLanePositions()

void MSPModel_Striping::transformToCurrentLanePositions ( Obstacles o,
int  currentDir,
int  nextDir,
double  currentLength,
double  nextLength 
)
staticprivate

Definition at line 924 of file MSPModel_Striping.cpp.

References MSPModel::FORWARD, MSPModel_Striping::Obstacle::xBack, and MSPModel_Striping::Obstacle::xFwd.

Referenced by getNextLaneObstacles().

Here is the caller graph for this function:

◆ usingInternalLanes()

bool MSPModel_Striping::usingInternalLanes ( )
virtual

whether movements on intersections are modelled /

Note
function declared as member for sake of inheritance (delegates to static function)

Implements MSPModel.

Definition at line 270 of file MSPModel_Striping.cpp.

References usingInternalLanesStatic().

◆ usingInternalLanesStatic()

bool MSPModel_Striping::usingInternalLanesStatic ( )
staticprivate

Definition at line 275 of file MSPModel_Striping.cpp.

References MSNet::getInstance(), MSGlobals::gUsingInternalLanes, MSNet::hasInternalLinks(), and MSNet::hasPedestrianNetwork().

Referenced by getNextLane(), and usingInternalLanes().

Here is the caller graph for this function:

◆ usingShortcuts()

virtual bool MSPModel::usingShortcuts ( )
inlinevirtualinherited

whether travel times and distances can reliably be calculated from the network alone

Reimplemented in MSPModel_JuPedSim.

Definition at line 145 of file MSPModel.h.

Friends And Related Function Documentation

◆ GUIPerson

friend class GUIPerson
friend

Definition at line 51 of file MSPModel_Striping.h.

Field Documentation

◆ BACKWARD

◆ dawdling

double MSPModel_Striping::dawdling
static

Definition at line 124 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::walk().

◆ DIST_BEHIND

const double MSPModel_Striping::DIST_BEHIND
staticprotected

◆ DIST_FAR_AWAY

const double MSPModel_Striping::DIST_FAR_AWAY
staticprotected

Definition at line 183 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::distanceTo().

◆ DIST_OVERLAP

const double MSPModel_Striping::DIST_OVERLAP
staticprotected

◆ FORWARD

◆ INAPPROPRIATE_PENALTY

const double MSPModel_Striping::INAPPROPRIATE_PENALTY
static

Definition at line 154 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

◆ jamTime

SUMOTime MSPModel_Striping::jamTime
static

Definition at line 133 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::walk().

◆ jamTimeCrossing

SUMOTime MSPModel_Striping::jamTimeCrossing
static

Definition at line 134 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::walk().

◆ jamTimeNarrow

SUMOTime MSPModel_Striping::jamTimeNarrow
static

Definition at line 135 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::walk().

◆ LATERAL_PENALTY

const double MSPModel_Striping::LATERAL_PENALTY
static

Definition at line 148 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

◆ LATERAL_SPEED_FACTOR

const double MSPModel_Striping::LATERAL_SPEED_FACTOR
static

Definition at line 174 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

◆ LOOKAHEAD_ONCOMING

const double MSPModel_Striping::LOOKAHEAD_ONCOMING
static

Definition at line 143 of file MSPModel_Striping.h.

Referenced by moveInDirectionOnLane(), and MSPModel_Striping::PState::walk().

◆ LOOKAHEAD_SAMEDIR

const double MSPModel_Striping::LOOKAHEAD_SAMEDIR
static

◆ LOOKAROUND_VEHICLES

const double MSPModel_Striping::LOOKAROUND_VEHICLES
static

Definition at line 145 of file MSPModel_Striping.h.

Referenced by getVehicleObstacles().

◆ MAX_WAIT_TOLERANCE

const double MSPModel_Striping::MAX_WAIT_TOLERANCE
static

◆ MIN_STARTUP_DIST

const double MSPModel_Striping::MIN_STARTUP_DIST
static

Definition at line 177 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

◆ minGapToVehicle

double MSPModel_Striping::minGapToVehicle
static

Definition at line 127 of file MSPModel_Striping.h.

Referenced by addCrossingVehs(), and MSPModel_Striping().

◆ myActiveLanes

ActiveLanes MSPModel_Striping::myActiveLanes
private

store of all lanes which have pedestrians on them

Definition at line 554 of file MSPModel_Striping.h.

Referenced by add(), arriveAndAdvance(), clearState(), getActiveLanes(), getPedestrians(), loadState(), moveInDirection(), MSPModel_Striping::PState::moveToXY(), and remove().

◆ myAmActive

bool MSPModel_Striping::myAmActive
private

whether an event for pedestrian processing was added

Definition at line 557 of file MSPModel_Striping.h.

Referenced by add(), clearState(), and loadState().

◆ myLegacyPosLat

bool MSPModel_Striping::myLegacyPosLat
static

Definition at line 138 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::PState().

◆ myMinNextLengths

MSPModel_Striping::MinNextLengths MSPModel_Striping::myMinNextLengths
staticprivate

◆ myNumActivePedestrians

int MSPModel_Striping::myNumActivePedestrians
private

the total number of active pedestrians

Definition at line 551 of file MSPModel_Striping.h.

Referenced by add(), arriveAndAdvance(), clearState(), getActiveNumber(), loadState(), registerActive(), and remove().

◆ myWalkingAreaDetail

int MSPModel_Striping::myWalkingAreaDetail
static

Definition at line 130 of file MSPModel_Striping.h.

Referenced by insertWalkArePaths(), and MSPModel_Striping().

◆ myWalkingAreaFoes

std::map< const MSEdge *, std::vector< const MSLane * > > MSPModel_Striping::myWalkingAreaFoes
staticprivate

◆ myWalkingAreaPaths

MSPModel_Striping::WalkingAreaPaths MSPModel_Striping::myWalkingAreaPaths
staticprivate

◆ noPedestrians

MSPModel_Striping::Pedestrians MSPModel_Striping::noPedestrians
staticprivate

empty pedestrian vector

Definition at line 565 of file MSPModel_Striping.h.

Referenced by getPedestrians().

◆ OBSTRUCTED_PENALTY

const double MSPModel_Striping::OBSTRUCTED_PENALTY
static

Definition at line 151 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

◆ OBSTRUCTION_THRESHOLD

const double MSPModel_Striping::OBSTRUCTION_THRESHOLD
static

Definition at line 160 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

◆ ONCOMING_CONFLICT_PENALTY

const double MSPModel_Striping::ONCOMING_CONFLICT_PENALTY
static

Definition at line 157 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

◆ RANDOM_POS_LAT

const double MSPModel::RANDOM_POS_LAT
staticinherited

magic value to encode randomized lateral offset for persons when starting a walk

Definition at line 133 of file MSPModel.h.

Referenced by MSPModel_JuPedSim::add(), MSRouteHandler::interpretDepartPosLat(), and MSPModel_Striping::PState::PState().

◆ RESERVE_FOR_ONCOMING_FACTOR

double MSPModel_Striping::RESERVE_FOR_ONCOMING_FACTOR
static

Definition at line 166 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::walk().

◆ RESERVE_FOR_ONCOMING_FACTOR_JUNCTIONS

double MSPModel_Striping::RESERVE_FOR_ONCOMING_FACTOR_JUNCTIONS
static

◆ RESERVE_FOR_ONCOMING_MAX

double MSPModel_Striping::RESERVE_FOR_ONCOMING_MAX
static

Definition at line 168 of file MSPModel_Striping.h.

Referenced by getReserved(), and MSPModel_Striping().

◆ SAFETY_GAP

const double MSPModel::SAFETY_GAP
staticinherited

◆ SIDEWALK_OFFSET

const double MSPModel::SIDEWALK_OFFSET
staticinherited

the offset for computing person positions when walking on edges without a sidewalk

Definition at line 127 of file MSPModel.h.

Referenced by MSPModel_NonInteracting::PState::getPosition(), GUINet::initGUIStructures(), LIBSUMO_NAMESPACE::Person::moveTo(), and MSPModel_Striping::PState::moveToXY().

◆ SQUEEZE

const double MSPModel_Striping::SQUEEZE
static

Definition at line 163 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::otherStripe().

◆ stripeWidth

◆ UNDEFINED_DIRECTION

◆ UNSPECIFIED_POS_LAT

const double MSPModel::UNSPECIFIED_POS_LAT
staticinherited

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