]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/Model/Model_ResultPart.cpp
Salome HOME
Fix for issue #2718: Fatal error when open study with box rotated, translated and...
[modules/shaper.git] / src / Model / Model_ResultPart.cpp
index 255f5e3802ce81352513e45182dd92b5dad70178..c4f6f309e207b762e1d00d5c4b41ad94b417ebf0 100644 (file)
@@ -169,6 +169,8 @@ std::shared_ptr<GeomAPI_Shape> Model_ResultPart::shape()
 {
   std::shared_ptr<GeomAPI_Shape> aResult(new GeomAPI_Shape);
   if (myShape.IsNull()) { // shape is not produced yet, create it
+    SessionPtr aMgr = ModelAPI_Session::get();
+    bool aToSendUpdate = aMgr->isOperation(); // inside of operation may send an update evnet
     if (myTrsf.get()) { // get shape of the base result and apply the transformation
       ResultPtr anOrigResult = baseRef();
       std::shared_ptr<GeomAPI_Shape> anOrigShape = anOrigResult->shape();
@@ -180,6 +182,10 @@ std::shared_ptr<GeomAPI_Shape> Model_ResultPart::shape()
           aResult->setImpl(new TopoDS_Shape(aShape));
         }
       }
+      if (!myShape.IsNull() && aToSendUpdate) {
+        static const Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_UPDATED);
+        ModelAPI_EventCreator::get()->sendUpdated(data()->owner(), anEvent);
+      }
       return aResult;
     } else {
       DocumentPtr aDoc = Model_ResultPart::partDoc();
@@ -205,9 +211,14 @@ std::shared_ptr<GeomAPI_Shape> Model_ResultPart::shape()
         }
       }
     }
+    if (!myShape.IsNull() && aToSendUpdate) {
+      static const Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_UPDATED);
+      ModelAPI_EventCreator::get()->sendUpdated(data()->owner(), anEvent);
+    }
   }
-  if (!myShape.IsNull())
+  if (!myShape.IsNull()) {
     aResult->setImpl(new TopoDS_Shape(myShape));
+  }
   return aResult;
 }