void NBNodeCont::discardTrafficLights(NBTrafficLightLogicCont& tlc, bool geometryLike) { for (NodeCont::const_iterator i = myNodes.begin(); i != myNodes.end(); ++i) { NBNode* node = i->second; if (!geometryLike || node->geometryLike()) { // make a copy of tldefs const std::set<NBTrafficLightDefinition*> tldefs = node->getControllingTLS(); for (std::set<NBTrafficLightDefinition*>::const_iterator it = tldefs.begin(); it != tldefs.end(); ++it) { NBTrafficLightDefinition* tlDef = *it; node->removeTrafficLight(tlDef); tlc.extract(tlDef); } node->reinit(node->getPosition(), NODETYPE_UNKNOWN); } } }
void NBNodeCont::discardTrafficLights(NBTrafficLightLogicCont& tlc, bool geometryLike, bool guessSignals) { for (NodeCont::const_iterator i = myNodes.begin(); i != myNodes.end(); ++i) { NBNode* node = i->second; if (!geometryLike || node->geometryLike()) { // make a copy of tldefs const std::set<NBTrafficLightDefinition*> tldefs = node->getControllingTLS(); if (guessSignals && node->isTLControlled() && node->geometryLike()) { // record signal location const EdgeVector& outgoing = node->getOutgoingEdges(); for (EdgeVector::const_iterator it_o = outgoing.begin(); it_o != outgoing.end(); ++it_o) { (*it_o)->setSignalOffset((*it_o)->getLength()); } } for (std::set<NBTrafficLightDefinition*>::const_iterator it = tldefs.begin(); it != tldefs.end(); ++it) { NBTrafficLightDefinition* tlDef = *it; node->removeTrafficLight(tlDef); tlc.extract(tlDef); } node->reinit(node->getPosition(), NODETYPE_UNKNOWN); } } }