Salome HOME
Make the dead shape correctly referenced by SMESH mesh after loading the python dump...
authormpv <mpv@opencascade.com>
Fri, 7 Feb 2020 12:42:25 +0000 (15:42 +0300)
committermpv <mpv@opencascade.com>
Fri, 7 Feb 2020 12:42:25 +0000 (15:42 +0300)
src/SMESH_I/SMESH_Mesh_i.cxx

index 3f65f9f9b7f2681a6dc8ca65919cfbad85b30a29..8c2a1a91b36c820fde5b7e5cec1919c9f46c6259 100644 (file)
@@ -273,6 +273,18 @@ void SMESH_Mesh_i::ReplaceShape(GEOM::GEOM_Object_ptr theNewGeom)
   // re-assign global hypotheses to the new shape
   _mainShapeTick = -1;
   CheckGeomModif( true );
+
+  // update the reference to theNewGeom (needed for correct execution of a dumped python script)
+  SALOMEDS::SObject_var aSO = _gen_i->ObjectToSObject(_this());
+  if (!aSO->_is_nil()) {
+    SALOMEDS::SObject_var aShapeRefSO;
+    if (aSO->FindSubObject(1, aShapeRefSO)) {
+      _gen_i->getStudyServant()->NewBuilder()->Addreference(
+        aShapeRefSO, _gen_i->getStudyServant()->FindObjectID(theNewGeom->GetStudyEntry()));
+    }
+  }
+
+  TPythonDump() <<  SMESH::SMESH_Mesh_var(_this()) << ".ReplaceShape( " << theNewGeom->GetStudyEntry() << " )";
 }
 
 //================================================================================