25 #include "../MSEdge.h"
26 #include "../MSLane.h"
27 #include "../MSVehicle.h"
40 for (std::vector<MSPushButton*>::const_iterator it = pushButtons.begin(); it != pushButtons.end(); ++it) {
41 if (it.operator * ()->isActivated()) {
62 const std::set<MSTransportable*> persons = walkingEdge->
getPersons();
63 if (persons.size() > 0) {
64 for (std::set<MSTransportable*>::const_iterator pIt = persons.begin(); pIt != persons.end(); ++pIt) {
71 std::ostringstream oss;
72 oss <<
"MSPedestrianPushButton::isActiveForEdge Pushbutton active for edge " << walkingEdge->
getID() <<
" crossing " << crossing->
getID()
81 for (std::vector<MSLane*>::const_iterator laneIt = walkingEdge->
getLanes().begin();
82 laneIt != walkingEdge->
getLanes().end(); ++laneIt) {
85 for (MSLane::VehCont::const_iterator vehicleIt = vehicles.begin(); vehicleIt != vehicles.end(); ++vehicleIt) {
98 std::ostringstream oss;
99 oss <<
"MSPedestrianPushButton::isActiveForEdge Pushbutton active for edge " << walkingEdge->
getID() <<
" crossing " << crossing->
getID()
112 std::ostringstream oss;
113 oss <<
"MSPedestrianPushButton::isActiveForEdge Pushbutton not active for edge " << walkingEdge->
getID() <<
" crossing " << crossing->
getID()
114 <<
" num Persons " << persons.size();
122 void getWalking(
const std::vector<MSEdge*>& edges, std::vector< MSEdge*>& walkingEdges) {
123 for (std::vector<MSEdge*>::const_iterator it = edges.begin(); it != edges.end(); ++it) {
126 walkingEdges.push_back(edge);
133 std::vector<MSEdge*> walkingEdges;
142 for (std::vector<MSEdge*>::const_iterator wIt = walkingList.begin(); wIt != walkingList.end(); ++wIt) {
145 DBG(
WRITE_MESSAGE(
"MSPedestrianPushButton::isActiveOnAnySideOfTheRoad crossing edge " + crossing->
getID() +
" walking edge" + walking->
getID()););
154 std::vector<MSPushButton*> pushButtons;
157 std::set<std::string> controlledEdges;
158 for (std::vector<std::string>::const_iterator lIt = lanes.begin(); lIt != lanes.end(); ++lIt) {
162 if (controlledEdges.count(laneEdge->
getID()) != 0) {
165 controlledEdges.insert(laneEdge->
getID());
172 for (std::vector<MSEdge*>::const_iterator wIt = walkingList.begin(); wIt != walkingList.end(); ++wIt) {
174 DBG(
WRITE_MESSAGE(
"MSPedestrianPushButton::loadPushButtons Added pushButton for walking edge " + walking->
getID() +
" crossing edge "
175 + crossing->
getID() +
" crossed edge " + laneEdge->
getID() +
". Phase state " + phase->
getState()););
189 const MSEdge* edge = *eIt;
191 for (std::vector<std::string>::const_iterator cIt = edge->
getCrossingEdges().begin();
#define WRITE_MESSAGE(msg)
@ SVC_PEDESTRIAN
pedestrian
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.
A road/street connecting two junctions.
static const MSEdgeVector & getAllEdges()
Returns all edges with a numerical id.
bool isCrossing() const
return whether this edge is a pedestrian crossing
SVCPermissions getPermissions() const
Returns the combined permissions of all lanes of this edge.
const MSEdgeVector & getPredecessors() const
bool isWalkingArea() const
return whether this edge is walking area
const std::set< MSTransportable * > & getPersons() const
Returns this edge's persons set.
const std::vector< MSLane * > & getLanes() const
Returns this edge's lanes.
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 std::vector< std::string > & getCrossingEdges() const
Gets the crossed edge ids.
const MSEdgeVector & getSuccessors(SUMOVehicleClass vClass=SVC_IGNORING) const
Returns the following edges, restricted by vClass.
Representation of a lane in the micro simulation.
virtual const VehCont & getVehiclesSecure() const
Returns the vehicles container; locks it for microsimulation.
std::vector< MSVehicle * > VehCont
Container for vehicles.
static bool dictionary(const std::string &id, MSLane *lane)
Static (sic!) container methods {.
MSEdge & getEdge() const
Returns the lane's edge.
virtual void releaseVehicles() const
Allows to use the container for microsimulation again.
const MSEdge * getNextEdgePtr() const
returns the next edge ptr if this person is walking and the pedestrian model allows it
The definition of a single phase of a tls logic.
const std::string & getState() const
Returns the state within this phase.
const LaneIdVector & getTargetLaneSet() const
virtual double getWaitingSeconds() const
the time this transportable spent waiting in seconds
Representation of a vehicle in the micro simulation.
double getWaitingSeconds() const
Returns the number of seconds waited (speed was lesser than 0.1m/s)
const std::string & getID() const
Returns the id.