void GNENet::replaceJunctionByGeometry(GNEJunction* junction, GNEUndoList* undoList) { undoList->p_begin("Replace junction by geometry"); assert(junction->getNBNode()->checkIsRemovable()); std::vector<std::pair<NBEdge*, NBEdge*> > toJoin = junction->getNBNode()->getEdgesToJoin(); for (std::vector<std::pair<NBEdge*, NBEdge*> >::iterator j = toJoin.begin(); j != toJoin.end(); j++) { GNEEdge* begin = myEdges[(*j).first->getID()]; GNEEdge* continuation = myEdges[(*j).second->getID()]; deleteEdge(begin, undoList); deleteEdge(continuation, undoList); GNEEdge* newEdge = createEdge(begin->getSource(), continuation->getDest(), begin, undoList, begin->getMicrosimID(), false, true); PositionVector newShape = begin->getNBEdge()->getInnerGeometry(); newShape.push_back(junction->getNBNode()->getPosition()); newShape.append(continuation->getNBEdge()->getInnerGeometry()); newEdge->setAttribute(SUMO_ATTR_SHAPE, toString(newShape), undoList); // @todo what about trafficlights at the end of oontinuation? } deleteJunction(junction, undoList); undoList->p_end(); }