SUMO - Simulation of Urban MObility
MSPModel Class Referenceabstract

The pedestrian following model. More...

#include <MSPModel.h>

Inheritance diagram for MSPModel:
Inheritance graph
Collaboration diagram for MSPModel:
Collaboration graph

Public Member Functions

virtual PedestrianState * add (MSPerson *person, MSPerson::MSPersonStage_Walking *stage, SUMOTime now)=0
 register the given person as a pedestrian More...
 
virtual bool blockedAtDist (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...
 
virtual void cleanupHelper ()
 
virtual bool hasPedestrians (const MSLane *lane)
 whether the given lane has pedestrians on it More...
 
virtual PersonDist nextBlocking (const MSLane *lane, double minPos, double minRight, double maxLeft, double stopTime=0)
 returns the next pedestrian beyond minPos that is laterally between minRight and maxLeft or 0 More...
 
virtual void remove (PedestrianState *state)=0
 remove the specified person from the pedestrian simulation More...
 
virtual bool usingInternalLanes ()=0
 whether movements on intersections are modelled More...
 
virtual ~MSPModel ()
 

Static Public Member Functions

static bool canTraverse (int dir, const ConstMSEdgeVector &route)
 return whether the route may traversed with the given starting direction More...
 
static void cleanup ()
 remove state at simulation end More...
 
static MSPModel * getModel ()
 

Static Public Attributes

static const int BACKWARD
 
static const int FORWARD
 
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 Private Attributes

static MSPModel * myModel
 

Detailed Description

The pedestrian following model.

Definition at line 55 of file MSPModel.h.

Constructor & Destructor Documentation

virtual MSPModel::~MSPModel ( )
inlinevirtual

Definition at line 63 of file MSPModel.h.

References add().

Member Function Documentation

virtual PedestrianState* MSPModel::add ( MSPerson *  person,
MSPerson::MSPersonStage_Walking *  stage,
SUMOTime  now 
)
pure virtual

register the given person as a pedestrian

Implemented in MSPModel_Striping, MSPModel_NonInteracting, and MSPModel_Remote.

Referenced by MSPerson::MSPersonStage_Walking::proceed(), and ~MSPModel().

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

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

Parameters
[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 in MSPModel_Striping.

Definition at line 79 of file MSPModel.h.

References UNUSED_PARAMETER.

Referenced by MSLink::getLeaderInfo().

bool MSPModel::canTraverse ( int  dir,
const ConstMSEdgeVector &  route 
)
static

return whether the route may traversed with the given starting direction

Definition at line 98 of file MSPModel.cpp.

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

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

void MSPModel::cleanup ( )
static

remove state at simulation end

Definition at line 88 of file MSPModel.cpp.

References cleanupHelper(), and myModel.

Referenced by MSNet::clearAll().

virtual void MSPModel::cleanupHelper ( )
inlinevirtual

Reimplemented in MSPModel_Striping, and MSPModel_Remote.

Definition at line 105 of file MSPModel.h.

Referenced by cleanup(), and MSPModel_Remote::cleanupHelper().

virtual bool MSPModel::hasPedestrians ( const MSLane *  lane)
inlinevirtual

whether the given lane has pedestrians on it

Reimplemented in MSPModel_Striping.

Definition at line 90 of file MSPModel.h.

References UNUSED_PARAMETER.

Referenced by MSLane::detectCollisions(), MSLane::detectPedestrianJunctionCollision(), MSVehicle::planMoveInternal(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().

virtual PersonDist MSPModel::nextBlocking ( const MSLane *  lane,
double  minPos,
double  minRight,
double  maxLeft,
double  stopTime = 0 
)
inlinevirtual

returns the next pedestrian beyond minPos that is laterally between minRight and maxLeft or 0

Reimplemented in MSPModel_Striping.

Definition at line 96 of file MSPModel.h.

References UNUSED_PARAMETER.

Referenced by MSLCM_LC2013::adaptSpeedToPedestrians(), MSLane::checkForPedestrians(), MSLane::detectCollisions(), MSVehicle::planMoveInternal(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().

virtual void MSPModel::remove ( PedestrianState *  state)
pure virtual

remove the specified person from the pedestrian simulation

Implemented in MSPModel_Striping, MSPModel_NonInteracting, and MSPModel_Remote.

Referenced by MSPerson::MSPersonStage_Walking::abort().

virtual bool MSPModel::usingInternalLanes ( )
pure virtual

whether movements on intersections are modelled

Implemented in MSPModel_Striping, MSPModel_NonInteracting, and MSPModel_Remote.

Referenced by MSPerson::MSPersonStage_Walking::walkDistance().

Field Documentation

MSPModel * MSPModel::myModel
staticprivate

Definition at line 125 of file MSPModel.h.

Referenced by cleanup(), MSPModel_Striping::MovePedestrians::execute(), and getModel().

const double MSPModel::SAFETY_GAP
static

Definition at line 113 of file MSPModel.h.

Referenced by MSLink::getLeaderInfo(), and MSPModel_Striping::moveInDirectionOnLane().

const double MSPModel::SIDEWALK_OFFSET
static

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

Definition at line 116 of file MSPModel.h.

Referenced by MSPModel_NonInteracting::PState::getPosition(), and GUINet::initGUIStructures().


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