Salome HOME
#26655 EDF 24384 - Problem of Display
authorrnv <rnv@opencascade.com>
Thu, 18 Nov 2021 11:34:56 +0000 (14:34 +0300)
committerrnv <rnv@opencascade.com>
Thu, 18 Nov 2021 11:34:56 +0000 (14:34 +0300)
src/SMESHGUI/SMESHGUI.cxx

index 531901fd139a319d0759c36f4f90d2e7fd16c0af..d7b4ed7445256f2a77d7b3c27cf553e04ee9c7b8 100644 (file)
@@ -2082,7 +2082,20 @@ void SMESHGUI::OnEditDelete()
         SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
         aStudyBuilder->RemoveObjectWithChildren( SO );
       }
-      else {// default action: remove SObject from the study
+      else {// default action: remove SObject from the study           
+               // Find Sub-Meshes and Group and delete corresopning visual objects and actors
+               _PTR(ChildIterator) it1 = aStudy->NewChildIterator(SO);
+               for (it1->InitEx(false); it1->More(); it1->Next()) {
+                 _PTR(SObject) SObj = it1->Value();
+                 if (!SObj) continue;
+                 if (SObj->FindAttribute(anAttr, "AttributeIOR")) {
+                       SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(SMESH::SObjectToObject(SObj));
+                       SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow(SMESH::SObjectToObject(SObj));
+                       if (!aGroup->_is_nil() || !aSubMesh->_is_nil()) {
+                         SMESH::RemoveVisualObjectWithActors(SObj->GetID().c_str(), true);
+                       }
+                 }
+               }
         // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
         //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
         //op->start();