]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
0022776: [CEA 1269] Project a wire or a face on a cylinder: rm instability in RemoveE...
authorskv <skv@opencascade.com>
Fri, 19 Jun 2015 07:51:17 +0000 (10:51 +0300)
committerskv <skv@opencascade.com>
Fri, 19 Jun 2015 07:51:17 +0000 (10:51 +0300)
src/BlockFix/BlockFix_UnionFaces.cxx

index c1b56f260ad7af7510e5970918ce7e6947885867..c1788bbb157405226f08706b4e6188fd4da50760 100644 (file)
@@ -138,8 +138,9 @@ static Standard_Boolean AddOrdinaryEdges(TopTools_SequenceOfShape& edges,
 {
   //map of edges
   TopTools_MapOfShape aNewEdges;
+  TopExp_Explorer exp(aShape,TopAbs_EDGE);
   //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();
     if(aNewEdges.Contains(edge))
       aNewEdges.Remove(edge);
@@ -164,9 +165,14 @@ static Standard_Boolean AddOrdinaryEdges(TopTools_SequenceOfShape& edges,
     }
   }
 
-  //add edges to the sequemce
-  for(TopTools_MapIteratorOfMapOfShape anIter(aNewEdges); anIter.More(); anIter.Next())
-    edges.Append(anIter.Key());
+  //add edges to the sequence
+  for(exp.ReInit(); exp.More(); exp.Next()) {
+    const TopoDS_Shape &anEdge = exp.Current();
+
+    if (aNewEdges.Contains(anEdge)) {
+      edges.Append(anEdge);
+    }
+  }
 
   return isDropped;
 }