 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
21 #include "../MSEdge.h"
22 #include "../MSLane.h"
23 #include "../MSVehicle.h"
36 for (std::vector<MSPushButton*>::const_iterator it = pushButtons.begin(); it != pushButtons.end(); ++it) {
37 if (it.operator * ()->isActivated()) {
58 const std::set<MSTransportable*> persons = walkingEdge->
getPersons();
59 if (persons.size() > 0) {
60 for (std::set<MSTransportable*>::const_iterator pIt = persons.begin(); pIt != persons.end(); ++pIt) {
67 std::ostringstream oss;
68 oss <<
"MSPedestrianPushButton::isActiveForEdge Pushbutton active for edge " << walkingEdge->
getID() <<
" crossing " << crossing->
getID()
77 for (std::vector<MSLane*>::const_iterator laneIt = walkingEdge->
getLanes().begin();
78 laneIt != walkingEdge->
getLanes().end(); ++laneIt) {
81 for (MSLane::VehCont::const_iterator vehicleIt = vehicles.begin(); vehicleIt != vehicles.end(); ++vehicleIt) {
94 std::ostringstream oss;
95 oss <<
"MSPedestrianPushButton::isActiveForEdge Pushbutton active for edge " << walkingEdge->
getID() <<
" crossing " << crossing->
getID()
108 std::ostringstream oss;
109 oss <<
"MSPedestrianPushButton::isActiveForEdge Pushbutton not active for edge " << walkingEdge->
getID() <<
" crossing " << crossing->
getID()
110 <<
" num Persons " << persons.size();
118 void getWalking(
const std::vector<MSEdge*>& edges, std::vector< MSEdge*>& walkingEdges) {
119 for (std::vector<MSEdge*>::const_iterator it = edges.begin(); it != edges.end(); ++it) {
122 walkingEdges.push_back(edge);
129 std::vector<MSEdge*> walkingEdges;
138 for (std::vector<MSEdge*>::const_iterator wIt = walkingList.begin(); wIt != walkingList.end(); ++wIt) {
141 DBG(
WRITE_MESSAGE(
"MSPedestrianPushButton::isActiveOnAnySideOfTheRoad crossing edge " + crossing->
getID() +
" walking edge" + walking->
getID()););
150 std::vector<MSPushButton*> pushButtons;
153 std::set<std::string> controlledEdges;
154 for (std::vector<std::string>::const_iterator lIt = lanes.begin(); lIt != lanes.end(); ++lIt) {
158 if (controlledEdges.count(laneEdge->
getID()) != 0) {
161 controlledEdges.insert(laneEdge->
getID());
168 for (std::vector<MSEdge*>::const_iterator wIt = walkingList.begin(); wIt != walkingList.end(); ++wIt) {
170 DBG(
WRITE_MESSAGE(
"MSPedestrianPushButton::loadPushButtons Added pushButton for walking edge " + walking->
getID() +
" crossing edge "
171 + crossing->
getID() +
" crossed edge " + laneEdge->
getID() +
". Phase state " + phase->
getState()););
185 const MSEdge* edge = *eIt;
187 for (std::vector<std::string>::const_iterator cIt = edge->
getCrossingEdges().begin();
virtual void releaseVehicles() const
Allows to use the container for microsimulation again.
@ SVC_PEDESTRIAN
pedestrian
virtual const VehCont & getVehiclesSecure() const
Returns the vehicles container; locks it for microsimulation.
static bool dictionary(const std::string &id, MSLane *lane)
Static (sic!) container methods {.
const MSEdgeVector & getSuccessors(SUMOVehicleClass vClass=SVC_IGNORING) const
Returns the following edges, restricted by vClass.
const std::set< MSTransportable * > & getPersons() const
Returns this edge's persons set.
Representation of a lane in the micro simulation.
std::vector< MSVehicle * > VehCont
Container for vehicles.
bool isCrossing() const
return whether this edge is a pedestrian crossing
const std::string & getState() const
Returns the state within this phase.
virtual double getWaitingSeconds() const
the time this transportable spent waiting in seconds
static bool dictionary(const std::string &id, MSEdge *edge)
Inserts edge into the static dictionary Returns true if the key id isn't already in the dictionary....
const LaneIdVector & getTargetLaneSet() const
A road/street connecting two junctions.
MSEdge & getEdge() const
Returns the lane's edge.
bool isWalkingArea() const
return whether this edge is walking area
const MSEdge * succEdge(int nSuccs) const
Returns the nSuccs'th successor of edge the vehicle is currently at.
SUMOVehicleClass getVClass() const
Returns the vehicle's access class.
const MSEdge * getNextEdgePtr() const
returns the next edge ptr if this person is walking and the pedestrian model allows it
const std::string & getID() const
returns the id of the transportable
const std::string & getID() const
Returns the name of the vehicle.
const std::vector< MSLane * > & getLanes() const
Returns this edge's lanes.
The definition of a single phase of a tls logic.
SVCPermissions getPermissions() const
static const MSEdgeVector & getAllEdges()
Returns all edges with a numerical id.
const std::string & getID() const
Returns the id.
#define WRITE_MESSAGE(msg)
double getWaitingSeconds() const
Returns the number of seconds waited (speed was lesser than 0.1m/s)
const MSEdgeVector & getPredecessors() const
const std::vector< std::string > & getCrossingEdges() const
Gets the crossed edge ids.
Representation of a vehicle in the micro simulation.