53 #ifdef CHECK_MEMORY_LEAKS
55 #endif // CHECK_MEMORY_LEAKS
66 const std::string& name,
67 const std::vector<int>& groupids,
71 const std::vector<int>& vehicleTypes)
72 : myLSA(lsaid), myID(id), myName(name), myGroupIDs(groupids),
73 myEdgeID(edgeid), myLane(laneno), myPosition(position),
74 myVehicleTypes(vehicleTypes) {}
81 return poly.
around(getPosition());
94 SignalDictType::iterator i =
myDict.find(lsaid);
99 SSignalDictType::iterator j = (*i).second.find(
id);
100 if (j == (*i).second.end()) {
110 SignalDictType::iterator i =
myDict.find(lsaid);
114 SSignalDictType::iterator j = (*i).second.find(
id);
115 if (j == (*i).second.end()) {
124 for (SignalDictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
125 for (SSignalDictType::iterator j = (*i).second.begin(); j != (*i).second.end(); j++) {
135 SignalDictType::iterator i =
myDict.find(tlid);
151 WRITE_WARNING(
"Could not set tls signal at edge '" +
toString(myEdgeID) +
"' - the edge was not built.");
159 for (std::vector<NBEdge::Connection>::iterator i = connections.begin(); i != connections.end(); i++) {
166 for (
unsigned int j = 0; j < edge->
getNumLanes(); j++) {
168 for (std::vector<NBEdge::Connection>::iterator i = connections.begin(); i != connections.end(); i++) {
185 if (tmpFrom != 0 && tmpTo != 0) {
187 assignedConnections.push_back(
NBConnection(tmpFrom, -1, tmpTo, -1));
194 assert(myGroupIDs.size() != 0);
195 if (myGroupIDs.size() == 1) {
197 assignedConnections);
201 assignedConnections);
217 const std::string& name,
218 bool isGreenBegin,
const std::vector<SUMOReal>& times,
220 : myLSA(lsaid),
myID(id),
myName(name), myTimes(times),
221 myFirstIsRed(!isGreenBegin), myTRedYellow(tredyellow),
222 myTYellow(tyellow) {}
231 GroupDictType::iterator i =
myDict.find(lsaid);
236 SGroupDictType::iterator j = (*i).second.find(
id);
237 if (j == (*i).second.end()) {
255 GroupDictType::iterator i =
myDict.find(lsaid);
259 SGroupDictType::iterator j = (*i).second.find(
id);
260 if (j == (*i).second.end()) {
268 for (GroupDictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
269 for (SGroupDictType::iterator j = (*i).second.begin(); j != (*i).second.end(); j++) {
279 GroupDictType::iterator i =
myDict.find(tlid);
292 std::string
id = toString<int>(
myID);
294 for (std::vector<SUMOReal>::const_iterator i = myTimes.begin(); i != myTimes.end(); i++) {
299 if (myTimes.size() == 0) {
320 const std::string& name,
SUMOTime absdur,
336 const std::string& name,
SUMOTime absdur,
348 DictType::iterator i =
myDict.find(
id);
359 DictType::iterator i =
myDict.find(
id);
369 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
383 size_t ref_groups = 0;
384 size_t ref_signals = 0;
385 size_t no_signals = 0;
386 size_t no_groups = 0;
387 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
395 std::string
id = toString<int>(tl->
myID);
398 WRITE_ERROR(
"Error on adding a traffic light\n Must be a multiple id ('" +
id +
"')");
404 for (SGroupDictType::const_iterator j = sgs.begin(); j != sgs.end(); j++) {
405 if (!(*j).second->addTo(def)) {
406 WRITE_WARNING(
"The signal group '" + toString<int>((*j).first) +
"' could not be assigned to tl '" + toString<int>(tl->
myID) +
"'.");
413 for (SSignalDictType::const_iterator k = signals.begin(); k != signals.end(); k++) {
414 if (!(*k).second->addTo(ec, def)) {
415 WRITE_WARNING(
"The signal '" + toString<int>((*k).first) +
"' could not be assigned to tl '" + toString<int>(tl->
myID) +
"'.");
422 WRITE_WARNING(
"Could not set " + toString<size_t>(ref) +
" of " + toString<size_t>(
myDict.size()) +
" traffic lights.");
424 if (ref_groups != 0) {
425 WRITE_WARNING(
"Could not set " + toString<size_t>(ref_groups) +
" of " + toString<size_t>(no_groups) +
" groups.");
427 if (ref_signals != 0) {
428 WRITE_WARNING(
"Could not set " + toString<size_t>(ref_signals) +
" of " + toString<size_t>(no_signals) +
" signals.");