Salome HOME
Delete key regression corrections: in previous implementation sketch entities did...
[modules/shaper.git] / src / ModuleBase / ModuleBase_IModule.h
index 94b2ff98c822708cd91fb90aacbf90f41c7d6e20..5995810242be23a5e2b12a20631e0f5cb39a4444 100755 (executable)
@@ -7,6 +7,9 @@
 #include "ModuleBase_IWorkshop.h"\r
 \r
 #include <ModelAPI_Feature.h>\r
+#include <ModelAPI_Attribute.h>\r
+\r
+#include <GeomAPI_Shape.h>\r
 \r
 #include <QString>\r
 #include <QObject>\r
@@ -141,6 +144,10 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
   /// \param theObject a model object\r
   virtual bool canDisplayObject(const ObjectPtr& theObject) const;\r
 \r
+  /// Make some functionality after the objects are hidden in viewer\r
+  /// \param theObjects a list of hidden objects\r
+  virtual void processHiddenObject(const std::list<ObjectPtr>& theObjects) {};\r
+\r
   /// Returns true if selection for the object can be activate.\r
   /// By default a result or feature of the current operation can not be activated\r
   /// \param theObject a model object\r
@@ -160,15 +167,28 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
   /// \param theModes a list of modes\r
   virtual void activeSelectionModes(QIntList& theModes) {}\r
 \r
-  /** Update the object presentable properties such as color, lines width and other\r
-  * If the object is result with the color attribute value set, it is used,\r
-  * otherwise the customize is applyed to the object's feature if it is a custom prs\r
-  * \param theObject an object instance\r
-  * \param theFlag a flag of level of customization, which means that only part of sub-elements\r
-  * should be updated(e.g. only highlighted elements)\r
-  * \param theUpdateViewer the parameter whether the viewer should be update immediately\r
-  * \returns true if the object is modified\r
-  */\r
+  /// Activate custom presentation for the object. Default realization is empty.\r
+  /// \param theObject an object instance\r
+  /// \param theFlag a flag of level of customization, which means that only part of sub-elements\r
+  /// \param theUpdateViewer the parameter whether the viewer should be update immediately\r
+  virtual void activateCustomPrs(const FeaturePtr& theFeature,\r
+                                 const ModuleBase_CustomizeFlag& theFlag,\r
+                                 const bool theUpdateViewer) {}\r
+\r
+  /// Deactivate custom presentation for the object. Default realization is empty.\r
+  /// \param theFlag a flag of level of customization, which means that only part of sub-elements\r
+  /// \param theUpdateViewer the parameter whether the viewer should be update immediately\r
+  virtual void deactivateCustomPrs(const ModuleBase_CustomizeFlag& theFlag,\r
+                                   const bool theUpdateViewer) {}\r
+\r
+  /// Update the object presentable properties such as color, lines width and other\r
+  /// If the object is result with the color attribute value set, it is used,\r
+  /// otherwise the customize is applyed to the object's feature if it is a custom prs\r
+  /// \param theObject an object instance\r
+  /// \param theFlag a flag of level of customization, which means that only part of sub-elements\r
+  /// should be updated(e.g. only highlighted elements)\r
+  /// \param theUpdateViewer the parameter whether the viewer should be update immediately\r
+  /// \returns true if the object is modified\r
   virtual bool customizeObject(ObjectPtr theObject, const ModuleBase_CustomizeFlag& theFlag,\r
                                const bool theUpdateViewer);\r
 \r
@@ -224,6 +244,18 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
   /// Default realization is empty\r
   virtual void beforeOperationStopped(ModuleBase_Operation* theOperation) {};\r
 \r
+  /// Finds a shape by attribute if it is possible\r
+  /// \param theAttribute an attribute\r
+  /// \return a geom shape\r
+  virtual GeomShapePtr findShape(const AttributePtr& theAttribute) = 0;\r
+\r
+  /// Finds an attribute by geom shape if it is possible\r
+  /// \param theObject an object of the attribute\r
+  /// \param theGeomShape a geom shape\r
+  /// \return theAttribute\r
+  virtual AttributePtr findAttribute(const ObjectPtr& theObject,\r
+                                     const GeomShapePtr& theGeomShape) = 0;\r
+\r
 signals:\r
   /// Signal which is emitted when operation is launched\r
   void operationLaunched();\r