Salome HOME
Issue #948 Wrong display after Sketch edition
[modules/shaper.git] / src / ModuleBase / ModuleBase_OperationFeature.h
index 0d2afdd9ba8e7dcdd5116f9aa5f559c3191ad970..f9d850fb8ac4e351ad63dd316b8f09e6b24aa90b 100755 (executable)
 #include <ModuleBase_Operation.h>
 #include <ModuleBase_ViewerPrs.h>
 
+#include <ModelAPI_Object.h>
 #include <ModelAPI_CompositeFeature.h>
 
 #include <QObject>
 #include <QString>
 #include <QStringList>
 
+#include <set>
+
 class ModuleBase_ModelWidget;
 class ModuleBase_ISelection;
 class ModuleBase_IViewer;
@@ -75,6 +78,11 @@ Q_OBJECT
   /// Returns True if the current operation works with the given object (feature or result)
   virtual bool hasObject(ObjectPtr theObj) const;
 
+  /// Returns true if the object is displayed when the operation was started
+  /// \param theObject a feature or result of the operation feature
+  /// \return boolean value whether the object display state was changed
+  virtual bool isDisplayedOnStart(ObjectPtr theObject);
+
   /// Initialisation of operation with preliminary selection
   /// \param theSelection an instance of Selection class
   /// \param theViewer a viewer to have the viewer the eye position
@@ -123,6 +131,12 @@ signals:
   bool commit();
 
  protected:
+  /// Displays the feature/results if it is hidden. It will be hided in stopOperation
+  virtual void startOperation();
+
+  /// Hide feature/results if they were hided on start
+  virtual void stopOperation();
+
   /// Creates an operation new feature
   /// \param theFlushMessage the flag whether the create message should be flushed
   /// \returns the created feature
@@ -135,6 +149,10 @@ signals:
    /// The operation feature to be handled
   FeaturePtr myFeature;
 
+  /// a list of hidden objects, whic are diplayed by operation start
+  /// and should be hidden by operation stop
+  std::set<ObjectPtr> myVisualizedObjects;
+
   /// Editing feature flag
   bool myIsEditing;