Salome HOME
0022172: [CEA 790] create the groups corresponding to domains (note 0016221)
authoreap <eap@opencascade.com>
Fri, 4 Oct 2013 10:12:56 +0000 (10:12 +0000)
committereap <eap@opencascade.com>
Fri, 4 Oct 2013 10:12:56 +0000 (10:12 +0000)
A better fix for Clear() for the mesh w/o shape

src/SMESH/SMESH_Mesh.cxx

index 486bea51b83b914bbef935696b316c1bed97388e..c45fefd88bb9a258456831bb3a211377fab928d6 100644 (file)
@@ -366,16 +366,10 @@ void SMESH_Mesh::Clear()
   {
     if ( SMESH_subMesh *sm = GetSubMeshContaining( GetShapeToMesh() ) )
     {
   {
     if ( SMESH_subMesh *sm = GetSubMeshContaining( GetShapeToMesh() ) )
     {
+      sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
+      sm->ComputeSubMeshStateEngine( SMESH_subMesh::CLEAN );
       sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
       sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
-      sm->ComputeStateEngine( SMESH_subMesh::CLEAN ); // for event listeners (issue 0020918)
-
-      SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/false,
-                                                               /*complexShapeFirst=*/true);
-      while ( smIt->more() )
-      {
-        sm = smIt->next();
-        sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
-      }
+      sm->ComputeSubMeshStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
     }
   }
   _isModified = false;
     }
   }
   _isModified = false;