+ virtual FeaturePtr createFeature(const bool theFlushMessage = true);
+
+ /// Verifies whether this operator can be commited.
+ /// \return Returns TRUE if current operation can be committed, e.g. all parameters are filled
+ virtual bool canBeCommitted() const;
+
+ /// Return a widget value point by the selection and the viewer position
+ /// The default realization returns false
+ /// \param thePrs the presentation
+ /// \param theViewer a viewer to have the viewer the eye position
+ /// \param theX the horizontal coordinate
+ /// \param theY the vertical coordinate
+ /// \return true if the point exits in the selection
+ virtual bool getViewerPoint(ModuleBase_ViewerPrs thePrs,
+ ModuleBase_IViewer* theViewer,
+ double& theX, double& theY);
+
+ /// Removes the preselection information and clears the map of preselection
+ void clearPreselection();
+
+ protected:
+ /// The operation feature to be handled
+ FeaturePtr myFeature;
+
+ /// the container to have the operation description
+ ModuleBase_OperationDescription* myDescription;
+
+ /// Editing feature flag
+ bool myIsEditing;
+
+ /// Modified feature flag
+ bool myIsModified;
+
+ /// List of nested operations IDs
+ QStringList myNestedFeatures;
+
+ /// List of pre-selected object
+ QList<ModuleBase_ViewerPrs> myPreSelection;
+
+ /// Access to property panel
+ ModuleBase_IPropertyPanel* myPropertyPanel;
+
+ /// If the operation works with feature which is sub-feature of another one
+ /// then this variable has to be initialised by parent feature
+ /// before operation feature creating
+ CompositeFeaturePtr myParentFeature;