#include <NBLoadedTLDef.h>

Definition at line 47 of file NBLoadedTLDef.h.
Public Types | ||||
| typedef std::map< std::string, SignalGroup * > | SignalGroupCont | |||
| Definition of the container for signal groups. | ||||
| enum | TLColor { TLCOLOR_RED, TLCOLOR_YELLOW, TLCOLOR_REDYELLOW, TLCOLOR_GREEN, TLCOLOR_BLINK } | |||
| An enumeration of possible tl-signal states. More... | ||||
Public Member Functions | ||||
| void | addControlledInnerEdges (const std::vector< std::string > &edges) throw () | |||
| Adds the given ids into the list of edges not controlled by the tls. | ||||
| void | addSignalGroup (const std::string &id) throw () | |||
| Adds a signal group. | ||||
| void | addSignalGroupPhaseBegin (const std::string &groupid, SUMOTime time, TLColor color) throw () | |||
| Sets the information about the begin of a phase. | ||||
| bool | addToSignalGroup (const std::string &groupid, const NBConnectionVector &connections) throw () | |||
| Adds a list of connections to a signal group. | ||||
| bool | addToSignalGroup (const std::string &groupid, const NBConnection &connection) throw () | |||
| Adds a connection to a signal group. | ||||
| NBTrafficLightLogic * | compute (const NBEdgeCont &ec, OptionsCont &oc) throw () | |||
| Computes the traffic light logic. | ||||
| SignalGroup * | findGroup (NBEdge *from, NBEdge *to) const throw () | |||
| Returns the signal group which is responsible for the given connection. | ||||
| bool | foes (const NBEdge *const from1, const NBEdge *const to1, const NBEdge *const from2, const NBEdge *const to2) const throw () | |||
| Returns the information whether the given flows cross. | ||||
| bool | forbids (const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo, bool regardNonSignalisedLowerPriority) const throw () | |||
| Returns the information whether "prohibited" flow must let "prohibitor" flow pass. | ||||
| const std::string & | getID () const throw () | |||
| Returns the id. | ||||
| const EdgeVector & | getIncomingEdges () const throw () | |||
| Returns the list of incoming edges (must be build first). | ||||
| bool | isLeftMover (const NBEdge *const from, const NBEdge *const to) const throw () | |||
| returns the information whether the given link is a left-mover | ||||
| bool | mustBrake (const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo, const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, bool regardNonSignalisedLowerPriority) const throw () | |||
| Returns the information whether the described flow must let any other flow pass. | ||||
| bool | mustBrake (const NBConnection &possProhibited, const NBConnection &possProhibitor, bool regardNonSignalisedLowerPriority) const throw () | |||
| Returns the information whether the described flow must let the other flow pass. | ||||
| bool | mustBrake (const NBEdge *const from, const NBEdge *const to) const throw () | |||
| Returns the information whether the described flow must let any other flow pass. | ||||
| NBLoadedTLDef (const std::string &id) throw () | ||||
| Constructor. | ||||
| NBLoadedTLDef (const std::string &id, NBNode *junction) throw () | ||||
| Constructor. | ||||
| NBLoadedTLDef (const std::string &id, const std::vector< NBNode * > &junctions) throw () | ||||
| Constructor. | ||||
| void | setCycleDuration (unsigned int cycleDur) throw () | |||
| Sets the duration of a cycle. | ||||
| virtual void | setParticipantsInformation () throw () | |||
| Builds the list of participating nodes/edges/links. | ||||
| void | setSignalYellowTimes (const std::string &groupid, SUMOTime tRedYellow, SUMOTime tYellow) throw () | |||
| Sets the times the light is yellow or red/yellow. | ||||
| ~NBLoadedTLDef () throw () | ||||
| Destructor. | ||||
Access to controlled nodes | ||||
| void | addNode (NBNode *node) throw () | |||
| Adds a node to the traffic light logic. | ||||
| const std::vector< NBNode * > & | getNodes () const throw () | |||
| Returns the list of controlled nodes. | ||||
| void | removeNode (NBNode *node) throw () | |||
| Removes the given node from the list of controlled nodes. | ||||
Public methods from NBTrafficLightDefinition-interface | ||||
| void | remapRemoved (NBEdge *removed, const EdgeVector &incoming, const EdgeVector &outgoing) throw () | |||
| Replaces occurences of the removed edge in incoming/outgoing edges of all definitions. | ||||
| void | setTLControllingInformation (const NBEdgeCont &ec) const throw () | |||
| Informs edges about being controlled by a tls. | ||||
Protected Member Functions | ||||
| void | collectEdges () throw () | |||
| Build the list of participating edges. | ||||
| unsigned int | computeBrakingTime (SUMOReal minDecel) const throw () | |||
| Computes the time vehicles may need to brake. | ||||
| std::pair< unsigned int, unsigned int > | getSizes () const throw () | |||
| Returns a pair of <number participating lanes, number participating links>. | ||||
Protected methods from NBTrafficLightDefinition-interface | ||||
| void | collectLinks () throw (ProcessError) | |||
Collects the links participating in this traffic light
| ||||
| void | collectNodes () throw () | |||
| Collects the nodes participating in this traffic light. | ||||
| bool | mustBrake (const NBEdgeCont &ec, const NBConnection &possProhibited, const std::string &state, unsigned int strmpos) const throw () | |||
| Returns the information whether a connection must brake, given a phase. | ||||
| NBTrafficLightLogic * | myCompute (const NBEdgeCont &ec, unsigned int brakingTime) throw () | |||
| Computes the traffic light logic finally in dependence to the type. | ||||
| void | replaceRemoved (NBEdge *removed, int removedLane, NBEdge *by, int byLane) throw () | |||
| Replaces a removed edge/lane. | ||||
Protected Attributes | ||||
| std::vector< std::string > | myControlledInnerEdges | |||
| List of inner edges that shall be controlled, though. | ||||
| NBConnectionVector | myControlledLinks | |||
| The list of controlled links. | ||||
| std::vector< NBNode * > | myControlledNodes | |||
| The container with participating nodes. | ||||
| EdgeVector | myEdgesWithin | |||
| The list of edges within the area controlled by the tls. | ||||
| std::string | myID | |||
| The name of the object. | ||||
| EdgeVector | myIncomingEdges | |||
| The list of incoming edges. | ||||
Private Member Functions | ||||
| std::string | buildPhaseState (const NBEdgeCont &ec, unsigned int time) const throw () | |||
| Builds the phase for a given time. | ||||
Private Attributes | ||||
| unsigned int | myCycleDuration | |||
| The duration of a single cycle. | ||||
| SignalGroupCont | mySignalGroups | |||
| Controlled signal groups. | ||||
Data Structures | ||||
| class | SignalGroup | |||
| A single signal group, may control several connections. More... | ||||
| typedef std::map<std::string, SignalGroup*> NBLoadedTLDef::SignalGroupCont |
enum NBTrafficLightDefinition::TLColor [inherited] |
An enumeration of possible tl-signal states.
| TLCOLOR_RED | Signal shows red. |
| TLCOLOR_YELLOW | Signal shows yellow. |
| TLCOLOR_REDYELLOW | Signal shows red/yellow (unused). |
| TLCOLOR_GREEN | Signal shows green. |
| TLCOLOR_BLINK | Signal is blinking yellow. |
Definition at line 76 of file NBTrafficLightDefinition.h.
00076 { 00078 TLCOLOR_RED, 00080 TLCOLOR_YELLOW, 00082 TLCOLOR_REDYELLOW, 00084 TLCOLOR_GREEN, 00086 TLCOLOR_BLINK 00087 };
| NBLoadedTLDef::NBLoadedTLDef | ( | const std::string & | id, | |
| const std::vector< NBNode * > & | junctions | |||
| ) | throw () |
Constructor.
| [in] | id | The id of the tls |
| [in] | junctions | Junctions controlled by this tls |
Definition at line 263 of file NBLoadedTLDef.cpp.
00265 : NBTrafficLightDefinition(id, junctions) {}
| NBLoadedTLDef::NBLoadedTLDef | ( | const std::string & | id, | |
| NBNode * | junction | |||
| ) | throw () |
Constructor.
| [in] | id | The id of the tls |
| [in] | junction | The junction controlled by this tls |
Definition at line 268 of file NBLoadedTLDef.cpp.
00269 : NBTrafficLightDefinition(id, junction) {}
| NBLoadedTLDef::NBLoadedTLDef | ( | const std::string & | id | ) | throw () |
Constructor.
| [in] | id | The id of the tls |
Definition at line 272 of file NBLoadedTLDef.cpp.
00273 : NBTrafficLightDefinition(id) {}
| NBLoadedTLDef::~NBLoadedTLDef | ( | ) | throw () |
Destructor.
Definition at line 276 of file NBLoadedTLDef.cpp.
References mySignalGroups.
00276 { 00277 for (SignalGroupCont::iterator i=mySignalGroups.begin(); i!=mySignalGroups.end(); ++i) { 00278 delete(*i).second; 00279 } 00280 }
| void NBTrafficLightDefinition::addControlledInnerEdges | ( | const std::vector< std::string > & | edges | ) | throw () [inherited] |
Adds the given ids into the list of edges not controlled by the tls.
| [in] | edges | The list of edge ids to add the inner edges to |
Definition at line 368 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledInnerEdges.
Referenced by NIXMLNodesHandler::processTrafficLightDefinitions().
00368 { 00369 copy(edges.begin(), edges.end(), back_inserter(myControlledInnerEdges)); 00370 }
| void NBTrafficLightDefinition::addNode | ( | NBNode * | node | ) | throw () [inherited] |
Adds a node to the traffic light logic.
| [in] | node | A further node that shall be controlled by the tls |
Definition at line 348 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledNodes.
Referenced by addToSignalGroup(), and NIXMLNodesHandler::processTrafficLightDefinitions().
00348 { 00349 if (std::find(myControlledNodes.begin(), myControlledNodes.end(), node)==myControlledNodes.end()) { 00350 myControlledNodes.push_back(node); 00351 std::sort(myControlledNodes.begin(), myControlledNodes.end(), NBNode::nodes_by_id_sorter()); 00352 node->addTrafficLight(this); 00353 } 00354 }
| void NBLoadedTLDef::addSignalGroup | ( | const std::string & | id | ) | throw () |
Adds a signal group.
| [in] | id | The id of the signal group |
Definition at line 538 of file NBLoadedTLDef.cpp.
References mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignalGroup::addTo(), and NIVisumTL::build().
00538 { 00539 assert(mySignalGroups.find(id)==mySignalGroups.end()); 00540 mySignalGroups[id] = new SignalGroup(id); 00541 }
| void NBLoadedTLDef::addSignalGroupPhaseBegin | ( | const std::string & | groupid, | |
| SUMOTime | time, | |||
| TLColor | color | |||
| ) | throw () |
Sets the information about the begin of a phase.
| [in] | groupid | The id of the signal group to add the phase to |
| [in] | time | The time the phase starts at |
| [in] | color | The color of the signal during this phase |
Definition at line 545 of file NBLoadedTLDef.cpp.
References mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignalGroup::addTo(), and NIVisumTL::build().
00546 { 00547 assert(mySignalGroups.find(groupid)!=mySignalGroups.end()); 00548 mySignalGroups[groupid]->addPhaseBegin(time, color); 00549 }
| bool NBLoadedTLDef::addToSignalGroup | ( | const std::string & | groupid, | |
| const NBConnectionVector & | connections | |||
| ) | throw () |
Adds a list of connections to a signal group.
| [in] | groupid | The id of the signal group to add the connections to |
| [in] | connections | The connections to add |
Definition at line 527 of file NBLoadedTLDef.cpp.
References addToSignalGroup().
00528 { 00529 bool ok = true; 00530 for (NBConnectionVector::const_iterator i=connections.begin(); i!=connections.end(); i++) { 00531 ok &= addToSignalGroup(groupid, *i); 00532 } 00533 return ok; 00534 }
| bool NBLoadedTLDef::addToSignalGroup | ( | const std::string & | groupid, | |
| const NBConnection & | connection | |||
| ) | throw () |
Adds a connection to a signal group.
| [in] | groupid | The id of the signal group to add the connection to |
| [in] | connection | The connection to add |
Definition at line 506 of file NBLoadedTLDef.cpp.
References NBTrafficLightDefinition::addNode(), NBNode::addTrafficLight(), and mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignal::addTo(), addToSignalGroup(), and NIVisumTL::build().
00507 { 00508 if (mySignalGroups.find(groupid)==mySignalGroups.end()) { 00509 return false; 00510 } 00511 mySignalGroups[groupid]->addConnection(connection); 00512 NBNode *n1 = connection.getFrom()->getToNode(); 00513 if (n1!=0) { 00514 addNode(n1); 00515 n1->addTrafficLight(this); 00516 } 00517 NBNode *n2 = connection.getTo()->getFromNode(); 00518 if (n2!=0) { 00519 addNode(n2); 00520 n2->addTrafficLight(this); 00521 } 00522 return true; 00523 }
| std::string NBLoadedTLDef::buildPhaseState | ( | const NBEdgeCont & | ec, | |
| unsigned int | time | |||
| ) | const throw () [private] |
Builds the phase for a given time.
| [in] | ec | The edge control to use |
| [in] | time | The time to build the phase for |
Definition at line 364 of file NBLoadedTLDef.cpp.
References NBConnection::check(), NBLoadedTLDef::SignalGroup::getConnection(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBLoadedTLDef::SignalGroup::hasYellow(), NBLoadedTLDef::SignalGroup::mayDrive(), mustBrake(), and mySignalGroups.
Referenced by myCompute().
00364 { 00365 unsigned int pos = 0; 00366 std::string state; 00367 // set the green and yellow information first; 00368 // the information whether other have to break needs those masks 00369 // completely filled 00370 for (SignalGroupCont::const_iterator i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00371 SignalGroup *group = (*i).second; 00372 unsigned int linkNo = group->getLinkNo(); 00373 bool mayDrive = group->mayDrive(time); 00374 bool hasYellow = group->hasYellow(time); 00375 char c = 'r'; 00376 if (mayDrive) { 00377 c = 'g'; 00378 } 00379 if (hasYellow) { 00380 c = 'y'; 00381 } 00382 for (unsigned int j=0; j<linkNo; j++) { 00383 const NBConnection &conn = group->getConnection(j); 00384 NBConnection assConn(conn); 00385 // assert that the connection really exists 00386 if (assConn.check(ec)) { 00387 state = state + c; 00388 ++pos; 00389 } 00390 } 00391 } 00392 // set the braking mask 00393 pos = 0; 00394 for (SignalGroupCont::const_iterator i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00395 SignalGroup *group = (*i).second; 00396 unsigned int linkNo = group->getLinkNo(); 00397 for (unsigned int j=0; j<linkNo; j++) { 00398 const NBConnection &conn = group->getConnection(j); 00399 NBConnection assConn(conn); 00400 if (assConn.check(ec)) { 00401 if (!mustBrake(ec, assConn, state, pos)) { 00402 if (state[pos]=='g') { 00403 state[pos] = 'G'; 00404 } 00405 if (state[pos]=='y') { 00406 state[pos] = 'Y'; 00407 } 00408 } 00409 pos++; 00410 } 00411 } 00412 } 00413 return state; 00414 }
| void NBTrafficLightDefinition::collectEdges | ( | ) | throw () [protected, inherited] |
Build the list of participating edges.
Definition at line 121 of file NBTrafficLightDefinition.cpp.
References NBEdge::getID(), NBTrafficLightDefinition::myControlledInnerEdges, NBTrafficLightDefinition::myControlledNodes, NBTrafficLightDefinition::myEdgesWithin, and NBTrafficLightDefinition::myIncomingEdges.
Referenced by NBTrafficLightDefinition::setParticipantsInformation(), and NBOwnTLDef::setParticipantsInformation().
00121 { 00122 EdgeVector myOutgoing; 00123 // collect the edges from the participating nodes 00124 for (std::vector<NBNode*>::iterator i=myControlledNodes.begin(); i!=myControlledNodes.end(); i++) { 00125 const EdgeVector &incoming = (*i)->getIncomingEdges(); 00126 copy(incoming.begin(), incoming.end(), back_inserter(myIncomingEdges)); 00127 const EdgeVector &outgoing = (*i)->getOutgoingEdges(); 00128 copy(outgoing.begin(), outgoing.end(), back_inserter(myOutgoing)); 00129 } 00130 // check which of the edges are completely within the junction 00131 // remove these edges from the list of incoming edges 00132 // add them to the list of edges lying within the node 00133 for (EdgeVector::iterator j=myIncomingEdges.begin(); j!=myIncomingEdges.end();) { 00134 NBEdge *edge = *j; 00135 // an edge lies within the logic if it is outgoing as well as incoming 00136 EdgeVector::iterator k = find(myOutgoing.begin(), myOutgoing.end(), edge); 00137 if (k!=myOutgoing.end()) { 00138 if (find(myControlledInnerEdges.begin(), myControlledInnerEdges.end(), edge->getID())==myControlledInnerEdges.end()) { 00139 myEdgesWithin.push_back(edge); 00140 (*j)->setIsInnerEdge(); 00141 j = myIncomingEdges.erase(j); 00142 continue; 00143 } 00144 } 00145 ++j; 00146 } 00147 }
| void NBLoadedTLDef::collectLinks | ( | ) | throw (ProcessError) [protected, virtual] |
Collects the links participating in this traffic light
| ProcessError | If a link could not be found. |
Reimplemented from NBTrafficLightDefinition.
Definition at line 476 of file NBLoadedTLDef.cpp.
References NBEdge::getConnectionsFromLane(), NBEdge::getNoLanes(), NBTrafficLightDefinition::myControlledLinks, NBTrafficLightDefinition::myIncomingEdges, NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.
00476 { 00477 // build the list of links which are controled by the traffic light 00478 for (EdgeVector::iterator i=myIncomingEdges.begin(); i!=myIncomingEdges.end(); i++) { 00479 NBEdge *incoming = *i; 00480 unsigned int noLanes = incoming->getNoLanes(); 00481 for (unsigned int j=0; j<noLanes; j++) { 00482 std::vector<NBEdge::Connection> elv = incoming->getConnectionsFromLane(j); 00483 for (std::vector<NBEdge::Connection>::iterator k=elv.begin(); k!=elv.end(); k++) { 00484 NBEdge::Connection el = *k; 00485 if (el.toEdge!=0) { 00486 myControlledLinks.push_back(NBConnection(incoming, j, el.toEdge, el.toLane)); 00487 } 00488 } 00489 } 00490 } 00491 }
| void NBLoadedTLDef::collectNodes | ( | ) | throw () [protected] |
Collects the nodes participating in this traffic light.
Definition at line 459 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::getConnection(), NBConnection::getFrom(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBEdge::getToNode(), NBTrafficLightDefinition::myControlledNodes, and mySignalGroups.
00459 { 00460 SignalGroupCont::const_iterator m; 00461 for (m=mySignalGroups.begin(); m!=mySignalGroups.end(); m++) { 00462 SignalGroup *group = (*m).second; 00463 unsigned int linkNo = group->getLinkNo(); 00464 for (unsigned int j=0; j<linkNo; j++) { 00465 const NBConnection &conn = group->getConnection(j); 00466 NBEdge *edge = conn.getFrom(); 00467 NBNode *node = edge->getToNode(); 00468 myControlledNodes.push_back(node); 00469 } 00470 } 00471 std::sort(myControlledNodes.begin(), myControlledNodes.end(), NBNode::nodes_by_id_sorter()); 00472 }
| NBTrafficLightLogic * NBTrafficLightDefinition::compute | ( | const NBEdgeCont & | ec, | |
| OptionsCont & | oc | |||
| ) | throw () [inherited] |
Computes the traffic light logic.
Does some initialisation at first, then calls myCompute to finally build the tl-logic
| [in] | ec | The edge container in order to retrieve edge information |
| [in] | oc | The options container holding options needed during the building |
Definition at line 88 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::computeBrakingTime(), Named::getID(), NBTrafficLightDefinition::myCompute(), NBTrafficLightDefinition::myIncomingEdges, and WRITE_WARNING.
Referenced by NBTrafficLightLogicCont::computeLogics().
00088 { 00089 // it is not really a traffic light if no incoming edge exists 00090 if (myIncomingEdges.size()==0) { 00091 WRITE_WARNING("The traffic light '" + getID() + "' has no incoming edges; it will not be build."); 00092 return 0; 00093 } 00094 // compute the time needed to brake 00095 unsigned int brakingTime = computeBrakingTime(oc.getFloat("min-decel")); 00096 // perform the computation depending on whether the traffic light 00097 // definition was loaded or shall be computed new completely 00098 if (oc.isSet("traffic-light-yellow")) { 00099 brakingTime = oc.getInt("traffic-light-yellow"); 00100 } 00101 return myCompute(ec, brakingTime); 00102 }
| unsigned int NBTrafficLightDefinition::computeBrakingTime | ( | SUMOReal | minDecel | ) | const throw () [protected, inherited] |
Computes the time vehicles may need to brake.
This time depends on the maximum speed allowed on incoming junctions. It is computed as max_speed_allowed / minimum_vehicle_decleration
Definition at line 106 of file NBTrafficLightDefinition.cpp.
References NBContHelper::maxSpeed(), NBTrafficLightDefinition::myIncomingEdges, and SUMOReal.
Referenced by NBTrafficLightDefinition::compute().
00106 { 00107 SUMOReal vmax = NBContHelper::maxSpeed(myIncomingEdges); 00108 return (unsigned int)(vmax / minDecel); 00109 }
| NBLoadedTLDef::SignalGroup * NBLoadedTLDef::findGroup | ( | NBEdge * | from, | |
| NBEdge * | to | |||
| ) | const throw () |
Returns the signal group which is responsible for the given connection.
| [in] | from | The connection's start edge |
| [in] | to | The connection's end edge |
Definition at line 495 of file NBLoadedTLDef.cpp.
References mySignalGroups.
00495 { 00496 for (SignalGroupCont::const_iterator i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00497 if ((*i).second->containsConnection(from, to)) { 00498 return (*i).second; 00499 } 00500 } 00501 return 0; 00502 }
| bool NBTrafficLightDefinition::foes | ( | const NBEdge *const | from1, | |
| const NBEdge *const | to1, | |||
| const NBEdge *const | from2, | |||
| const NBEdge *const | to2 | |||
| ) | const throw () [inherited] |
Returns the information whether the given flows cross.
| [in] | from1 | The starting edge of the first stream |
| [in] | to1 | The ending edge of the first stream |
| [in] | from2 | The starting edge of the second stream |
| [in] | to2 | The ending edge of the second stream |
Definition at line 325 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledNodes.
Referenced by NBOwnTLDef::computeUnblockedWeightedStreamNumber().
00326 { 00327 if (to1==0||to2==0) { 00328 return false; 00329 } 00330 // retrieve both nodes (it is possible that a connection 00331 std::vector<NBNode*>::const_iterator incoming = 00332 find_if(myControlledNodes.begin(), myControlledNodes.end(), 00333 NBContHelper::node_with_incoming_finder(from1)); 00334 std::vector<NBNode*>::const_iterator outgoing = 00335 find_if(myControlledNodes.begin(), myControlledNodes.end(), 00336 NBContHelper::node_with_outgoing_finder(to1)); 00337 assert(incoming!=myControlledNodes.end()); 00338 NBNode *incnode = *incoming; 00339 NBNode *outnode = *outgoing; 00340 if (incnode!=outnode) { 00341 return false; 00342 } 00343 return incnode->foes(from1, to1, from2, to2); 00344 }
| bool NBTrafficLightDefinition::forbids | ( | const NBEdge *const | possProhibitorFrom, | |
| const NBEdge *const | possProhibitorTo, | |||
| const NBEdge *const | possProhibitedFrom, | |||
| const NBEdge *const | possProhibitedTo, | |||
| bool | regardNonSignalisedLowerPriority | |||
| ) | const throw () [inherited] |
Returns the information whether "prohibited" flow must let "prohibitor" flow pass.
| [in] | possProhibitedFrom | The maybe prohibited connection's begin |
| [in] | possProhibitedTo | The maybe prohibited connection's end |
| [in] | possProhibitorFrom | The maybe prohibiting connection's begin |
| [in] | possProhibitorTo | The maybe prohibiting connection's end |
| [in] | regardNonSignalisedLowerPriority | Whether the right of way rules without traffic lights shall be regarded |
Definition at line 248 of file NBTrafficLightDefinition.cpp.
References NBNode::foes(), NBNode::forbids(), and NBTrafficLightDefinition::myControlledNodes.
Referenced by NBTrafficLightDefinition::mustBrake(), and NBOwnTLDef::myCompute().
00252 { 00253 if (possProhibitorFrom==0||possProhibitorTo==0||possProhibitedFrom==0||possProhibitedTo==0) { 00254 return false; 00255 } 00256 // retrieve both nodes 00257 std::vector<NBNode*>::const_iterator incoming = 00258 find_if(myControlledNodes.begin(), myControlledNodes.end(), NBContHelper::node_with_incoming_finder(possProhibitorFrom)); 00259 std::vector<NBNode*>::const_iterator outgoing = 00260 find_if(myControlledNodes.begin(), myControlledNodes.end(), NBContHelper::node_with_outgoing_finder(possProhibitedTo)); 00261 assert(incoming!=myControlledNodes.end()); 00262 NBNode *incnode = *incoming; 00263 NBNode *outnode = *outgoing; 00264 EdgeVector::const_iterator i; 00265 if (incnode!=outnode) { 00266 // the links are located at different nodes 00267 const EdgeVector &ev1 = possProhibitedTo->getConnectedEdges(); 00268 // go through the following edge, 00269 // check whether one of these connections is prohibited 00270 for (i=ev1.begin(); i!=ev1.end(); ++i) { 00271 std::vector<NBNode*>::const_iterator outgoing2 = 00272 find_if(myControlledNodes.begin(), myControlledNodes.end(), NBContHelper::node_with_outgoing_finder(*i)); 00273 if (outgoing2==myControlledNodes.end()) { 00274 continue; 00275 } 00276 NBNode *outnode2 = *outgoing2; 00277 if (incnode!=outnode2) { 00278 continue; 00279 } 00280 bool ret1 = incnode->foes(possProhibitorTo, *i, 00281 possProhibitedFrom, possProhibitedTo); 00282 bool ret2 = incnode->forbids(possProhibitorFrom, possProhibitorTo, 00283 possProhibitedTo, *i, 00284 regardNonSignalisedLowerPriority); 00285 bool ret = ret1||ret2; 00286 if (ret) { 00287 return true; 00288 } 00289 } 00290 00291 const EdgeVector &ev2 = possProhibitorTo->getConnectedEdges(); 00292 // go through the following edge, 00293 // check whether one of these connections is prohibited 00294 for (i=ev2.begin(); i!=ev2.end(); ++i) { 00295 std::vector<NBNode*>::const_iterator incoming2 = 00296 find_if(myControlledNodes.begin(), myControlledNodes.end(), NBContHelper::node_with_incoming_finder(possProhibitorTo)); 00297 if (incoming2==myControlledNodes.end()) { 00298 continue; 00299 } 00300 NBNode *incnode2 = *incoming2; 00301 if (incnode2!=outnode) { 00302 continue; 00303 } 00304 bool ret1 = incnode2->foes(possProhibitorTo, *i, 00305 possProhibitedFrom, possProhibitedTo); 00306 bool ret2 = incnode2->forbids(possProhibitorTo, *i, 00307 possProhibitedFrom, possProhibitedTo, 00308 regardNonSignalisedLowerPriority); 00309 bool ret = ret1||ret2; 00310 if (ret) { 00311 return true; 00312 } 00313 } 00314 return false; 00315 } 00316 // both links are located at the same node 00317 // check using this node's information 00318 return incnode->forbids(possProhibitorFrom, possProhibitorTo, 00319 possProhibitedFrom, possProhibitedTo, 00320 regardNonSignalisedLowerPriority); 00321 }
| const std::string& Named::getID | ( | ) | const throw () [inline, inherited] |
Returns the id.
Definition at line 59 of file Named.h.
References Named::myID.
Referenced by RORouteDef_Alternatives::addAlternative(), MSRouteProbe::addRoute(), MSEmitter::MSEmitter_FileTriggeredChild::buildAndScheduleFlowVehicle(), MSCalibrator::MSCalibrator_FileTriggeredChild::buildAndScheduleFlowVehicle(), RORouteDef_Complete::buildCurrentRoute(), ODDistrictHandler::closeDistrict(), NBTrafficLightDefinition::collectLinks(), NBTrafficLightDefinition::compute(), GUIPointOfInterest::drawGL(), MSInductLoop::enterDetectorByMove(), MSVTypeProbe::execute(), MSNet::getBusStopID(), GUITriggeredRerouter::getMicrosimID(), GUIPointOfInterest::getMicrosimID(), GUILaneSpeedTrigger::getMicrosimID(), GUIInductLoop::MyWrapper::getMicrosimID(), GUIEmitter::getMicrosimID(), GUIBusStop::getMicrosimID(), GUI_E2_ZS_Collector::MyWrapper::getMicrosimID(), traci::TraCIServer::handlePoiDomain(), RORDLoader_SUMOBase::myCharacters(), NBOwnTLDef::myCompute(), myCompute(), MSTriggeredRerouter::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSEmitter::MSEmitter_FileTriggeredChild::myStartElement(), MSCalibrator::MSCalibrator_FileTriggeredChild::myStartElement(), NBLoadedTLDef::SignalGroup::patchTYellow(), TraCIServerAPI_Vehicle::processGet(), MSVehicle::replaceRoute(), MSVehicle::saveState(), NBOwnTLDef::setTLControllingInformation(), setTLControllingInformation(), RORDLoader_SUMOBase::startRoute(), GUIEmitter::GUIEmitterChild_UserTriggeredChild::wrappedExecute(), NBTrafficLightLogic::writeXML(), MSRouteProbe::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSE2Collector::writeXMLOutput(), and MSVehicle::~MSVehicle().
00059 { 00060 return myID; 00061 }
| const EdgeVector & NBTrafficLightDefinition::getIncomingEdges | ( | ) | const throw () [inherited] |
Returns the list of incoming edges (must be build first).
Definition at line 374 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myIncomingEdges.
Referenced by NBOwnTLDef::myCompute().
00374 { 00375 return myIncomingEdges; 00376 }
| const std::vector<NBNode*>& NBTrafficLightDefinition::getNodes | ( | ) | const throw () [inline, inherited] |
Returns the list of controlled nodes.
Definition at line 147 of file NBTrafficLightDefinition.h.
References NBTrafficLightDefinition::myControlledNodes.
00147 { 00148 return myControlledNodes; 00149 }
| std::pair< unsigned int, unsigned int > NBTrafficLightDefinition::getSizes | ( | ) | const throw () [protected, inherited] |
Returns a pair of <number participating lanes, number participating links>.
Definition at line 180 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myIncomingEdges.
00180 { 00181 unsigned int noLanes = 0; 00182 unsigned int noLinks = 0; 00183 for (EdgeVector::const_iterator i=myIncomingEdges.begin(); i!=myIncomingEdges.end(); i++) { 00184 unsigned int noLanesEdge = (*i)->getNoLanes(); 00185 for (unsigned int j=0; j<noLanesEdge; j++) { 00186 assert((*i)->getConnectionsFromLane(j).size()!=0); 00187 noLinks += (unsigned int)(*i)->getConnectionsFromLane(j).size(); 00188 } 00189 noLanes += noLanesEdge; 00190 } 00191 return std::pair<unsigned int, unsigned int>(noLanes, noLinks); 00192 }
| bool NBTrafficLightDefinition::isLeftMover | ( | const NBEdge *const | from, | |
| const NBEdge *const | to | |||
| ) | const throw () [inherited] |
returns the information whether the given link is a left-mover
| [in] | from | The connection's start edge |
| [in] | to | The connection's end edge |
Definition at line 196 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledNodes.
Referenced by NBOwnTLDef::myCompute().
00196 { 00197 // the destination edge may be unused 00198 if (to==0) { 00199 return false; 00200 } 00201 // get the node which is holding this connection 00202 std::vector<NBNode*>::const_iterator i = 00203 find_if(myControlledNodes.begin(), myControlledNodes.end(), 00204 NBContHelper::node_with_incoming_finder(from)); 00205 assert(i!=myControlledNodes.end()); 00206 NBNode *node = *i; 00207 return node->isLeftMover(from, to); 00208 }
| bool NBTrafficLightDefinition::mustBrake | ( | const NBEdge *const | possProhibitedFrom, | |
| const NBEdge *const | possProhibitedTo, | |||
| const NBEdge *const | possProhibitorFrom, | |||
| const NBEdge *const | possProhibitorTo, | |||
| bool | regardNonSignalisedLowerPriority | |||
| ) | const throw () [inherited] |
Returns the information whether the described flow must let any other flow pass.
| [in] | possProhibitedFrom | The maybe prohibited connection's begin |
| [in] | possProhibitedTo | The maybe prohibited connection's end |
| [in] | possProhibitorFrom | The maybe prohibiting connection's begin |
| [in] | possProhibitorTo | The maybe prohibiting connection's end |
| [in] | regardNonSignalisedLowerPriority | Whether the right of way rules without traffic lights shall be regarded |
Definition at line 226 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::forbids().
00230 { 00231 return forbids(possProhibitorFrom, possProhibitorTo, 00232 possProhibitedFrom, possProhibitedTo, 00233 regardNonSignalisedLowerPriority); 00234 }
| bool NBTrafficLightDefinition::mustBrake | ( | const NBConnection & | possProhibited, | |
| const NBConnection & | possProhibitor, | |||
| bool | regardNonSignalisedLowerPriority | |||
| ) | const throw () [inherited] |
Returns the information whether the described flow must let the other flow pass.
| [in] | possProhibited | The maybe prohibited connection |
| [in] | possProhibitor | The maybe prohibiting connection |
| [in] | regardNonSignalisedLowerPriority | Whether the right of way rules without traffic lights shall be regarded |
Definition at line 238 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::forbids().
00240 { 00241 return forbids(possProhibitor.getFrom(), possProhibitor.getTo(), 00242 possProhibited.getFrom(), possProhibited.getTo(), 00243 regardNonSignalisedLowerPriority); 00244 }
| bool NBTrafficLightDefinition::mustBrake | ( | const NBEdge *const | from, | |
| const NBEdge *const | to | |||
| ) | const throw () [inherited] |
Returns the information whether the described flow must let any other flow pass.
If the from/to connection passes only one junction (from is incoming into same node as to outgoes from) the node is asked whether the flow must brake- Otherwise true is returned (recheck!) "from" must be an incoming edge into one of the participating nodes!
| [in] | from | The connection's start edge |
| [in] | to | The connection's end edge |
Definition at line 212 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledNodes.
Referenced by mustBrake().
00212 { 00213 std::vector<NBNode*>::const_iterator i = 00214 find_if(myControlledNodes.begin(), myControlledNodes.end(), 00215 NBContHelper::node_with_incoming_finder(from)); 00216 assert(i!=myControlledNodes.end()); 00217 NBNode *node = *i; 00218 if (!node->hasOutgoing(to)) { 00219 return true; // !!! 00220 } 00221 return node->mustBrake(from, to, -1); 00222 }
| bool NBLoadedTLDef::mustBrake | ( | const NBEdgeCont & | ec, | |
| const NBConnection & | possProhibited, | |||
| const std::string & | state, | |||
| unsigned int | strmpos | |||
| ) | const throw () [protected] |
Returns the information whether a connection must brake, given a phase.
| [in] | ec | The edge control to retrieve edges from |
| [in] | possProhibited | The connection to investigate |
| [in] | state | The state |
| [in] | strmpos | The index of this connection within the masks |
Definition at line 418 of file NBLoadedTLDef.cpp.
References NBConnection::check(), NBLoadedTLDef::SignalGroup::getConnection(), NBConnection::getFrom(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBTrafficLightDefinition::mustBrake(), and mySignalGroups.
Referenced by buildPhaseState().
00421 { 00422 // check whether the stream has red 00423 if (state[strmpos]!='g'&&state[strmpos]!='G') { 00424 return true; 00425 } 00426 00427 // check whether another stream which has green is a higher 00428 // priorised foe to the given 00429 unsigned int pos = 0; 00430 for (SignalGroupCont::const_iterator i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00431 SignalGroup *group = (*i).second; 00432 // get otherlinks that have green 00433 unsigned int linkNo = group->getLinkNo(); 00434 for (unsigned int j=0; j<linkNo; j++) { 00435 // get the current connection (possible foe) 00436 const NBConnection &other = group->getConnection(j); 00437 NBConnection possProhibitor(other); 00438 // if the connction ist still valid ... 00439 if (possProhibitor.check(ec)) { 00440 // ... do nothing if it starts at the same edge 00441 if (possProhibited.getFrom()==possProhibitor.getFrom()) { 00442 pos++; 00443 continue; 00444 } 00445 if (state[pos]=='g'||state[pos]=='G') { 00446 if (NBTrafficLightDefinition::mustBrake(possProhibited, possProhibitor, true)) { 00447 return true; 00448 } 00449 } 00450 pos++; 00451 } 00452 } 00453 } 00454 return false; 00455 }
| NBTrafficLightLogic * NBLoadedTLDef::myCompute | ( | const NBEdgeCont & | ec, | |
| unsigned int | brakingTime | |||
| ) | throw () [protected, virtual] |
Computes the traffic light logic finally in dependence to the type.
| [in] | ec | The edge container |
| [in] | brakingTime | Duration a vehicle needs for braking in front of the tls |
Implements NBTrafficLightDefinition.
Definition at line 284 of file NBLoadedTLDef.cpp.
References NBTrafficLightLogic::addStep(), buildPhaseState(), MsgHandler::clear(), NBTrafficLightLogic::closeBuilding(), Named::getID(), OptionsCont::getOptions(), NBLoadedTLDef::SignalGroup::getTimes(), MsgHandler::getWarningInstance(), myCycleDuration, mySignalGroups, NBLoadedTLDef::SignalGroup::patchTYellow(), NBLoadedTLDef::SignalGroup::sortPhases(), and WRITE_WARNING.
00284 { 00285 MsgHandler::getWarningInstance()->clear(); // !!! 00286 NBLoadedTLDef::SignalGroupCont::const_iterator i; 00287 // compute the switching times 00288 std::set<SUMOReal> tmpSwitchTimes; 00289 for (i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00290 NBLoadedTLDef::SignalGroup *group = (*i).second; 00291 // needed later 00292 group->sortPhases(); 00293 // patch the yellow time for this group 00294 if (OptionsCont::getOptions().getBool("patch-small-tyellow")) { 00295 group->patchTYellow(brakingTime); 00296 } 00297 // copy the now valid times into the container 00298 // both the given red and green phases are added and also the 00299 // yellow times 00300 DoubleVector gtimes = group->getTimes(myCycleDuration); 00301 for (DoubleVector::const_iterator k=gtimes.begin(); k!=gtimes.end(); k++) { 00302 tmpSwitchTimes.insert(*k); 00303 } 00304 } 00305 std::vector<SUMOReal> switchTimes; 00306 copy(tmpSwitchTimes.begin(), tmpSwitchTimes.end(), back_inserter(switchTimes)); 00307 sort(switchTimes.begin(), switchTimes.end()); 00308 00309 // count the signals 00310 unsigned int noSignals = 0; 00311 for (i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00312 noSignals += (*i).second->getLinkNo(); 00313 } 00314 // build the phases 00315 NBTrafficLightLogic *logic = new NBTrafficLightLogic(getID(), "0", noSignals); 00316 for (std::vector<SUMOReal>::iterator l=switchTimes.begin(); l!=switchTimes.end(); l++) { 00317 // compute the duration of the current phase 00318 unsigned int duration; 00319 if (l!=switchTimes.end()-1) { 00320 // get from the difference to the next switching time 00321 duration = (unsigned int)((*(l+1)) - (*l)); 00322 } else { 00323 // get from the differenc to the first switching time 00324 duration = (unsigned int)(myCycleDuration - (*l) + *(switchTimes.begin())) ; 00325 } 00326 // no information about yellow times will be generated 00327 assert((*l)>=0); 00328 logic->addStep(duration, buildPhaseState(ec, (unsigned int)(*l))); 00329 } 00330 // check whether any warnings were printed 00331 if (MsgHandler::getWarningInstance()->wasInformed()) { 00332 WRITE_WARNING("During computation of traffic light '" + getID() + "'."); 00333 } 00334 logic->closeBuilding(); 00335 return logic; 00336 }
| void NBLoadedTLDef::remapRemoved | ( | NBEdge * | removed, | |
| const EdgeVector & | incoming, | |||
| const EdgeVector & | outgoing | |||
| ) | throw () [virtual] |
Replaces occurences of the removed edge in incoming/outgoing edges of all definitions.
| [in] | removed | The removed edge |
| [in] | incoming | The edges to use instead if an incoming edge was removed |
| [in] | outgoing | The edges to use instead if an outgoing edge was removed |
Implements NBTrafficLightDefinition.
Definition at line 566 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::containsIncoming(), NBLoadedTLDef::SignalGroup::containsOutgoing(), mySignalGroups, NBLoadedTLDef::SignalGroup::remapIncoming(), and NBLoadedTLDef::SignalGroup::remapOutgoing().
00568 { 00569 for (SignalGroupCont::const_iterator i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00570 SignalGroup *group = (*i).second; 00571 if (group->containsIncoming(removed)) { 00572 group->remapIncoming(removed, incoming); 00573 } 00574 if (group->containsOutgoing(removed)) { 00575 group->remapOutgoing(removed, outgoing); 00576 } 00577 } 00578 }
| void NBTrafficLightDefinition::removeNode | ( | NBNode * | node | ) | throw () [inherited] |
Removes the given node from the list of controlled nodes.
| [in] | node | The node that shall not be controlled by the tls any more |
Definition at line 358 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledNodes.
00358 { 00359 std::vector<NBNode*>::iterator i = std::find(myControlledNodes.begin(), myControlledNodes.end(), node); 00360 if (i!=myControlledNodes.end()) { 00361 myControlledNodes.erase(i); 00362 } 00363 // !!! remove in node? 00364 }
| void NBLoadedTLDef::replaceRemoved | ( | NBEdge * | removed, | |
| int | removedLane, | |||
| NBEdge * | by, | |||
| int | byLane | |||
| ) | throw () [protected, virtual] |
Replaces a removed edge/lane.
| [in] | removed | The edge to replace |
| [in] | removedLane | The lane of this edge to replace |
| [in] | by | The edge to insert instead |
| [in] | byLane | This edge's lane to insert instead |
Implements NBTrafficLightDefinition.
Definition at line 582 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::containsIncoming(), NBLoadedTLDef::SignalGroup::containsOutgoing(), mySignalGroups, and NBLoadedTLDef::SignalGroup::remap().
00583 { 00584 for (SignalGroupCont::const_iterator i=mySignalGroups.begin(); i!=mySignalGroups.end(); i++) { 00585 SignalGroup *group = (*i).second; 00586 if (group->containsIncoming(removed)||group->containsOutgoing(removed)) { 00587 group->remap(removed, removedLane, by, byLane); 00588 } 00589 } 00590 }
| void NBLoadedTLDef::setCycleDuration | ( | unsigned int | cycleDur | ) | throw () |
Sets the duration of a cycle.
| [in] | cycleDur | The duration of the cycle |
Definition at line 560 of file NBLoadedTLDef.cpp.
References myCycleDuration.
Referenced by NIVisumTL::build().
00560 { 00561 myCycleDuration = cycleDur; 00562 }
| void NBTrafficLightDefinition::setParticipantsInformation | ( | ) | throw () [virtual, inherited] |
Builds the list of participating nodes/edges/links.
Reimplemented in NBOwnTLDef.
Definition at line 113 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::collectEdges(), and NBTrafficLightDefinition::collectLinks().
00113 { 00114 // collect the information about participating edges and links 00115 collectEdges(); 00116 collectLinks(); 00117 }
| void NBLoadedTLDef::setSignalYellowTimes | ( | const std::string & | groupid, | |
| SUMOTime | tRedYellow, | |||
| SUMOTime | tYellow | |||
| ) | throw () |
Sets the times the light is yellow or red/yellow.
| [in] | groupid | The id of the signal group to add the phase to |
| [in] | tRedYellow | The duration of redyellow |
| [in] | tYellow | The duration of yellow |
Definition at line 552 of file NBLoadedTLDef.cpp.
References mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignalGroup::addTo(), and NIVisumTL::build().
00553 { 00554 assert(mySignalGroups.find(groupid)!=mySignalGroups.end()); 00555 mySignalGroups[groupid]->setYellowTimes(myTRedYellow, myTYellow); 00556 }
| void NBLoadedTLDef::setTLControllingInformation | ( | const NBEdgeCont & | ec | ) | const throw () [virtual] |
Informs edges about being controlled by a tls.
| [in] | ec | The container of edges |
Implements NBTrafficLightDefinition.
Definition at line 340 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::getConnection(), NBConnection::getFrom(), NBConnection::getFromLane(), Named::getID(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBEdge::getNoLanes(), NBConnection::getTo(), NBConnection::getToLane(), mySignalGroups, NBEdge::setControllingTLInformation(), and WRITE_WARNING.
00340 { 00341 // assign the links to the connections 00342 unsigned int pos = 0; 00343 for (SignalGroupCont::const_iterator m=mySignalGroups.begin(); m!=mySignalGroups.end(); m++) { 00344 SignalGroup *group = (*m).second; 00345 unsigned int linkNo = group->getLinkNo(); 00346 for (unsigned int j=0; j<linkNo; j++) { 00347 const NBConnection &conn = group->getConnection(j); 00348 assert(conn.getFromLane()<0||(int) conn.getFrom()->getNoLanes()>conn.getFromLane()); 00349 NBConnection tst(conn); 00350 if (tst.check(ec)) { 00351 NBEdge *edge = conn.getFrom(); 00352 if (edge->setControllingTLInformation(conn.getFromLane(), conn.getTo(), conn.getToLane(), getID(), pos)) { 00353 pos++; 00354 } 00355 } else { 00356 WRITE_WARNING("Could not set signal on connection (signal: " + getID() + ", group: " + group->getID()+ ")"); 00357 } 00358 } 00359 } 00360 }
std::vector<std::string> NBTrafficLightDefinition::myControlledInnerEdges [protected, inherited] |
List of inner edges that shall be controlled, though.
Definition at line 315 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::addControlledInnerEdges(), and NBTrafficLightDefinition::collectEdges().
NBConnectionVector NBTrafficLightDefinition::myControlledLinks [protected, inherited] |
The list of controlled links.
Definition at line 312 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::collectLinks(), NBOwnTLDef::collectLinks(), collectLinks(), and NBOwnTLDef::setTLControllingInformation().
std::vector<NBNode*> NBTrafficLightDefinition::myControlledNodes [protected, inherited] |
The container with participating nodes.
Definition at line 303 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::addNode(), NBTrafficLightDefinition::collectEdges(), collectNodes(), NBTrafficLightDefinition::foes(), NBTrafficLightDefinition::forbids(), NBTrafficLightDefinition::getNodes(), NBTrafficLightDefinition::isLeftMover(), NBTrafficLightDefinition::mustBrake(), and NBTrafficLightDefinition::removeNode().
unsigned int NBLoadedTLDef::myCycleDuration [private] |
The duration of a single cycle.
Definition at line 370 of file NBLoadedTLDef.h.
Referenced by myCompute(), and setCycleDuration().
EdgeVector NBTrafficLightDefinition::myEdgesWithin [protected, inherited] |
The list of edges within the area controlled by the tls.
Definition at line 309 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::collectEdges().
std::string Named::myID [protected, inherited] |
The name of the object.
Definition at line 66 of file Named.h.
Referenced by RORouteDef_OrigDest::buildCurrentRoute(), RORouteDef_Complete::buildCurrentRoute(), RORouteDef_Alternatives::buildCurrentRoute(), and Named::getID().
EdgeVector NBTrafficLightDefinition::myIncomingEdges [protected, inherited] |
The list of incoming edges.
Definition at line 306 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::collectEdges(), NBTrafficLightDefinition::collectLinks(), NBOwnTLDef::collectLinks(), collectLinks(), NBTrafficLightDefinition::compute(), NBTrafficLightDefinition::computeBrakingTime(), NBTrafficLightDefinition::getIncomingEdges(), and NBTrafficLightDefinition::getSizes().
SignalGroupCont NBLoadedTLDef::mySignalGroups [private] |
Controlled signal groups.
Definition at line 367 of file NBLoadedTLDef.h.
Referenced by addSignalGroup(), addSignalGroupPhaseBegin(), addToSignalGroup(), buildPhaseState(), collectNodes(), findGroup(), mustBrake(), myCompute(), remapRemoved(), replaceRemoved(), setSignalYellowTimes(), setTLControllingInformation(), and ~NBLoadedTLDef().
1.5.6