40 typedef std::pair<const MSPerson*, double>
PersonDist;
75 double oncomingGap, std::vector<const MSPerson*>* collectBlockers) {
152 double lanePosLat,
double angle,
int routeOffset,
163 WRITE_WARNING(
"moveToXY is ignored by the current pedestrian model");
SUMOTime getWaitingTime(const MSPerson::MSPersonStage_Walking &, SUMOTime) const
return the time the person spent standing
virtual void cleanupHelper()
virtual bool hasPedestrians(const MSLane *lane)
whether the given lane has pedestrians on it
virtual ~PedestrianState()
double getAngle(const MSPerson::MSPersonStage_Walking &, SUMOTime) const
return the direction in which the person faces in degrees
The base class for an intersection.
static const double SIDEWALK_OFFSET
the offset for computing person positions when walking on edges without a sidewalk ...
virtual bool usingInternalLanes()=0
whether movements on intersections are modelled
std::vector< const MSEdge * > ConstMSEdgeVector
static MSPModel * myModel
#define UNUSED_PARAMETER(x)
#define WRITE_WARNING(msg)
The simulated network and simulation perfomer.
virtual PedestrianState * add(MSPerson *person, MSPerson::MSPersonStage_Walking *stage, SUMOTime now)=0
register the given person as a pedestrian
The pedestrian following model.
double getSpeed(const MSPerson::MSPersonStage_Walking &) const
return the current speed of the person
A road/street connecting two junctions.
static int canTraverse(int dir, const ConstMSEdgeVector &route)
static const int UNDEFINED_DIRECTION
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 ...
static MSPModel * getModel()
A point in 2D or 3D with translation and scaling methods.
const MSEdge * getNextEdge(const MSPerson::MSPersonStage_Walking &) const
return the list of internal edges if the pedestrian is on an intersection
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 ...
abstract base class for managing callbacks to retrieve various state information from the model ...
std::pair< const MSPerson *, double > PersonDist
double getEdgePos(const MSPerson::MSPersonStage_Walking &, SUMOTime) const
return the offset from the start of the current edge measured in its natural direction ...
static void cleanup()
remove state at simulation end
static const int BACKWARD
static const double SAFETY_GAP
Position getPosition(const MSPerson::MSPersonStage_Walking &, SUMOTime) const
return the network coordinate of the person
Representation of a lane in the micro simulation.
static const Position INVALID
used to indicate that a position is valid
virtual void moveToXY(MSPerson *p, Position pos, MSLane *lane, double lanePos, double lanePosLat, double angle, int routeOffset, const ConstMSEdgeVector &edges, SUMOTime t)
try to move person to the given position