Salome HOME
0020279: [CEA 334] control the "random" use when using mesh algorithms
[modules/smesh.git] / src / SMESH / SMESH_Mesh.cxx
index 695027dba0a2037b332407799cf6adff46af9778..5ddf9a5157cf9e6c54f42e9c726dd9325a80da85 100644 (file)
@@ -110,6 +110,11 @@ SMESH_Mesh::~SMESH_Mesh()
 {
   INFOS("SMESH_Mesh::~SMESH_Mesh");
 
+  // issue 0020340: EDF 1022 SMESH : Crash with FindNodeClosestTo in a second new study
+  //   Notify event listeners at least that something happens
+  if ( SMESH_subMesh * sm = GetSubMeshContaining(1))
+    sm->ComputeStateEngine( SMESH_subMesh::MESH_ENTITY_REMOVED );
+
   // delete groups
   std::map < int, SMESH_Group * >::iterator itg;
   for (itg = _mapGroup.begin(); itg != _mapGroup.end(); itg++) {
@@ -177,6 +182,12 @@ void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape)
                                         (TopAbs_ShapeEnum) ancType,
                                         _mapAncestors );
   }
+  else
+  {
+    _isShapeToMesh = false;
+    _shapeDiagonal = 0.0;
+    _myMeshDS->ShapeToMesh( PseudoShape() );
+  }
 }
 
 //=======================================================================