From 17fe63598f6dffac54bf87a336ce4c909be415ec Mon Sep 17 00:00:00 2001 From: WandererFan Date: Wed, 7 Sep 2016 15:41:35 -0400 Subject: [PATCH] Handle case where no faces found in View. --- src/Mod/TechDraw/App/EdgeWalker.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Mod/TechDraw/App/EdgeWalker.cpp b/src/Mod/TechDraw/App/EdgeWalker.cpp index 757a558fd..3db76fceb 100644 --- a/src/Mod/TechDraw/App/EdgeWalker.cpp +++ b/src/Mod/TechDraw/App/EdgeWalker.cpp @@ -155,10 +155,13 @@ ewWireList EdgeWalker::getResult() std::vector EdgeWalker::getResultWires() { + std::vector fw; ewWireList result = m_eV.getResult(); + if (result.wires.empty()) { + return fw; + } std::vector::iterator iWire = result.wires.begin(); // a WE within [WE] - std::vector fw; for (;iWire != result.wires.end(); iWire++) { std::vector::iterator iEdge = (*iWire).wedges.begin(); std::vector topoEdges; @@ -174,11 +177,14 @@ std::vector EdgeWalker::getResultWires() std::vector EdgeWalker::getResultNoDups() { + std::vector fw; ewWireList result = m_eV.getResult(); + if (result.wires.empty()) { + return fw; + } result = result.removeDuplicates(); std::vector::iterator iWire = result.wires.begin(); - std::vector fw; for (;iWire != result.wires.end(); iWire++) { std::vector::iterator iEdge = (*iWire).wedges.begin(); std::vector topoEdges; @@ -310,6 +316,9 @@ void ewWire::push_back(WalkerEdge w) ewWireList ewWireList::removeDuplicates() { ewWireList result; + if (wires.empty()) { + return result; + } result.push_back(*(wires.begin())); //save the first ewWire std::vector::iterator iWire = (wires.begin()) + 1; //starting with second for (; iWire != wires.end(); iWire++) {