Salome HOME
NPAL16198: EDF462: Submeshes creation duplicate algorithms and hypotheses. Refix.
[modules/smesh.git] / src / SMESHFiltersSelection / SMESH_NumberFilter.cxx
index 61162a581681c69ff04e618e2371d289cfe132d0..36a091c72fed8ed09115a8e9446bc71047085a49 100644 (file)
@@ -35,8 +35,9 @@
 #include "SALOMEDSClient_SObject.hxx"
 #include "SALOMEDS_SObject.hxx"
 
-#include <TopTools_MapOfShape.hxx>
 #include <TopExp_Explorer.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopExp.hxx>
 
 /*!
  *  Class       : SMESH_NumberFilter
@@ -135,12 +136,13 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const
   if (mySubShapeType == TopAbs_SHAPE);
     return true;
 
-  TopExp_Explorer anExp2 (aShape, mySubShapeType);
-  TopTools_MapOfShape aMap;
-  for (; anExp2.More(); anExp2.Next())
-    aMap.Add(anExp2.Current());
+  TopTools_IndexedMapOfShape aMap;
+  TopExp::MapShapes(aShape, mySubShapeType, aMap);
 
-  return myNumber == aMap.Extent();
+  if ( myNumber )
+    return myNumber == aMap.Extent(); // given number
+
+  return aMap.Extent(); // at least one?
 }
 
 //=======================================================================