+ const FeaturePtr& theFeature,
+ ModuleBase_IWorkshop* theWorkshop,
+ const bool theTemporary);
+
+ /// Return an object and geom shape by the viewer presentation
+ /// \param thePrs a selection
+ /// \param theObject an output object
+ /// \param theShape a shape of the selection
+ virtual void getGeomSelection(const std::shared_ptr<ModuleBase_ViewerPrs>& thePrs,
+ ObjectPtr& theObject,
+ GeomShapePtr& theShape,
+ ModuleBase_IWorkshop* theWorkshop,
+ const CompositeFeaturePtr& theSketch,
+ const bool isInValidate);
+
+protected:
+ /// Delete from the document the feature of the object. It deletes all objects, which refers to
+ /// the deleted one. The parameter feature is ignored even it refer to the deleted object.
+ /// \param theObject a removed object
+ /// \param theSketch a current sketch
+ /// \param theFeature a current feature
+ /// \param theWorkshop a current workshop
+ void removeExternalObject(const ObjectPtr& theObject,
+ const CompositeFeaturePtr& theSketch,
+ const FeaturePtr& theFeature,
+ ModuleBase_IWorkshop* theWorkshop);
+
+ /// Returns the workshop
+ static XGUI_Workshop* workshop(ModuleBase_IWorkshop* theWorkshop);