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();
MSEdge & getEdge() const
Returns the lane's edge.
Representation of a vehicle in the micro simulation.
const std::string & getState() const
Returns the state within this phase.
virtual void releaseVehicles() const
Allows to use the container for microsimulation again.
const std::vector< MSLane * > & getLanes() const
Returns this edge's lanes.
SUMOVehicleClass getVClass() const
Returns the vehicle's access class.
virtual SUMOReal getWaitingSeconds() const
the time this transportable spent waiting in seconds
bool isWalkingArea() const
return whether this edge is walking area
std::vector< MSVehicle * > VehCont
Container for vehicles.
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
SVCPermissions getPermissions() const
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 MSEdgeVector & getIncomingEdges() const
Returns the list of edges from which this edge may be reached.
virtual const VehCont & getVehiclesSecure() const
Returns the vehicles container; locks it for microsimulation.
const std::string & getID() const
Returns the id.
A road/street connecting two junctions.
const MSEdgeVector & getPredecessors() const
Returns the edge at the given position from the list of reachable edges.
const MSEdge * succEdge(unsigned int nSuccs) const
Returns the nSuccs'th successor of edge the vehicle is currently at.
const std::vector< MSEdge * > & getOutgoingEdges() const
Returns the list of edges that may be reached from this edge.
static bool dictionary(const std::string &id, MSLane *lane)
Static (sic!) container methods {.
const LaneIdVector & getTargetLaneSet() const
const std::vector< std::string > & getCrossingEdges() const
Gets the crossed edge ids.
static const MSEdgeVector & getAllEdges()
Returns all edges with a numerical id.
SUMOReal getWaitingSeconds() const
Returns the number of seconds waited (speed was lesser than 0.1m/s)
const std::set< MSTransportable * > & getPersons() const
Returns this edge's persons set.
bool isCrossing() const
return whether this edge is a pedestrian crossing
const MSEdgeVector & getSuccessors() const
Returns the following edges.
#define WRITE_MESSAGE(msg)
The definition of a single phase of a tls logic.
Representation of a lane in the micro simulation.
const std::string & getID() const
Returns the name of the vehicle.