Salome HOME
A possibility to use entity point attribute for the rigid constraint in GUI.
[modules/shaper.git] / src / PartSet / PartSet_WidgetShapeSelector.h
index 1ad2f21974b2ca5590286efbfcf0a04aa1d6444b..f300db7e8d011fe85db6c010bc98c848f1bdadd3 100644 (file)
 
 #include <ModelAPI_CompositeFeature.h>
 
+class PartSet_ExternalObjectsMgr;
 
 /**
 * \ingroup Modules
 * Customosation of ModuleBase_WidgetShapeSelector in order to provide 
-* working with sketch specific objects.
+* working with sketch specific objects and external objects.
 */
 class PARTSET_EXPORT PartSet_WidgetShapeSelector: public ModuleBase_WidgetShapeSelector
 {
@@ -30,10 +31,9 @@ Q_OBJECT
   /// \param theData the widget configuation. The attribute of the model widget is obtained from
   /// \param theParentId is Id of a parent of the current attribute
   PartSet_WidgetShapeSelector(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
-    const Config_WidgetAPI* theData, const std::string& theParentId)
-    : ModuleBase_WidgetShapeSelector(theParent, theWorkshop, theData, theParentId) {}
+    const Config_WidgetAPI* theData, const std::string& theParentId);
 
-  virtual ~PartSet_WidgetShapeSelector() {}
+  virtual ~PartSet_WidgetShapeSelector();
 
   /// Set sketcher
   /// \param theSketch a sketcher object
@@ -55,20 +55,16 @@ protected:
   /// \param theValid a boolean flag, if restore happens for valid parameters
   void restoreAttributeValue(const bool theValid);
 
-  // Removes the external presentation from the model
+  /// Found the sketch point attribute by the shape and set it in the feature attribute
+  /// otherwise set the selected object
   /// \param theSelectedObject an object
   /// \param theShape a selected shape, which is used in the selection attribute
-  void createExternal(ObjectPtr theSelectedObject, GeomShapePtr theShape);
-
-  // Removes the external presentation from the model
-  void removeExternal();
+  void setPointAttribute(ObjectPtr theSelectedObject, GeomShapePtr theShape);
 
 protected:
+  PartSet_ExternalObjectsMgr* myExternalObjectMgr;
   /// Pointer to a sketch 
   CompositeFeaturePtr mySketch;
-
-  /// An external object
-  ObjectPtr myExternalObject;
 };
 
 #endif
\ No newline at end of file