]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Mantis issue 0021291: [CEA 480] Bad performance of glue function in 6.3.0.
authorjfa <jfa@opencascade.com>
Thu, 9 Jun 2011 07:56:06 +0000 (07:56 +0000)
committerjfa <jfa@opencascade.com>
Thu, 9 Jun 2011 07:56:06 +0000 (07:56 +0000)
src/GEOMAlgo/GEOMAlgo_Gluer2.cxx
src/GEOMAlgo/GEOMAlgo_Gluer2_3.cxx

index 6d26dfea130199a96181d10a5e9cb05c0ec52093..b6e0558e4506a92f8e7eb11a1f50421ed1fe77a4 100644 (file)
@@ -19,7 +19,6 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-
 // File:        GEOMAlgo_Gluer2.cxx
 // Author:      Peter KURNEV
 
index b6ab53be94dacf05beaf2ce9aa4559389c2fad61..d39bb4f9017e57f126c17866858da5a768d534fb 100644 (file)
@@ -22,8 +22,7 @@
 // File:       GEOMAlgo_Gluer2_3.cxx
 // Created:    
 // Author:     Peter KURNEV
-//             <peter@PREFEX>
-//
+
 #include <GEOMAlgo_Gluer2.hxx>
 
 #include <TopAbs_ShapeEnum.hxx>
@@ -332,16 +331,41 @@ void MapShapes1(const TopoDS_Shape& aS,
               const TopAbs_ShapeEnum aType,
               TopTools_IndexedMapOfShape& aM)
 {
-  TopExp_Explorer aEx (aS, aType);
-  while (aEx.More()) {
-    const TopoDS_Shape aSx=aEx.Current();
+  TopExp_Explorer aExp;
+  
+  aExp.Init (aS, aType);
+  for ( ;aExp.More(); aExp.Next()) {
+    const TopoDS_Shape aSx=aExp.Current();
+    if (aType==TopAbs_EDGE) {
+      const TopoDS_Edge& aEx=*((TopoDS_Edge*)&aSx);
+      if (BRep_Tool::Degenerated(aEx)) {
+       continue;
+      }
+    }
+    aM.Add(aSx);
+  }
+}
+/*
+//=======================================================================
+//function : MapShapes1
+//purpose  : 
+//=======================================================================
+void MapShapes1(const TopoDS_Shape& aS,
+              const TopAbs_ShapeEnum aType,
+              TopTools_IndexedMapOfShape& aM)
+{
+  TopExp_Explorer aExp (aS, aType);
+  while (aExp.More()) {
+    const TopoDS_Shape aSx=aExp.Current();
     if (aType==TopAbs_EDGE) {
       const TopoDS_Edge& aEx=*((TopoDS_Edge*)&aSx);
       if (BRep_Tool::Degenerated(aEx)) {
+       aExp.Next();
        continue;
       }
     }
     aM.Add(aSx);
-    aEx.Next();
+    aExp.Next();
   }
 }
+*/