0022776: [CEA 1269] Project a wire or a face on a cylinder: rm instability in RemoveExtraEdges

This commit is contained in:
skv 2015-06-19 10:51:17 +03:00
parent 1f1f040445
commit 29ae7886c0

View File

@ -138,8 +138,9 @@ static Standard_Boolean AddOrdinaryEdges(TopTools_SequenceOfShape& edges,
{ {
//map of edges //map of edges
TopTools_MapOfShape aNewEdges; TopTools_MapOfShape aNewEdges;
TopExp_Explorer exp(aShape,TopAbs_EDGE);
//add edges without seams //add edges without seams
for(TopExp_Explorer exp(aShape,TopAbs_EDGE); exp.More(); exp.Next()) { for(; exp.More(); exp.Next()) {
TopoDS_Shape edge = exp.Current(); TopoDS_Shape edge = exp.Current();
if(aNewEdges.Contains(edge)) if(aNewEdges.Contains(edge))
aNewEdges.Remove(edge); aNewEdges.Remove(edge);
@ -164,9 +165,14 @@ static Standard_Boolean AddOrdinaryEdges(TopTools_SequenceOfShape& edges,
} }
} }
//add edges to the sequemce //add edges to the sequence
for(TopTools_MapIteratorOfMapOfShape anIter(aNewEdges); anIter.More(); anIter.Next()) for(exp.ReInit(); exp.More(); exp.Next()) {
edges.Append(anIter.Key()); const TopoDS_Shape &anEdge = exp.Current();
if (aNewEdges.Contains(anEdge)) {
edges.Append(anEdge);
}
}
return isDropped; return isDropped;
} }