X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Feature.h;h=c973d4464ff3400c61f1ed637501d7054edb5df9;hb=9e9e32f010b4174ecd0ba2b016f14fee16775365;hp=c563765629754ade76911693484eebe2295cb74a;hpb=eff1842480409939adfafb5b39bca801e834aedd;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Feature.h b/src/ModelAPI/ModelAPI_Feature.h index c56376562..c973d4464 100644 --- a/src/ModelAPI/ModelAPI_Feature.h +++ b/src/ModelAPI/ModelAPI_Feature.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2023 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef ModelAPI_Feature_H_ @@ -42,7 +41,7 @@ class ModelAPI_Feature : public ModelAPI_Object std::list > myResults; ///< is feature disabled or not bool myIsDisabled; - ///< is feature is stable (not editing) + ///< is feature stable (not editing) bool myIsStable; public: @@ -74,7 +73,7 @@ class ModelAPI_Feature : public ModelAPI_Object /// Computes the attribute value on the base of other attributes if the value can be computed /// \param theAttributeId an attribute index to be computed /// \return a boolean value about it is computed - virtual bool compute(const std::string& theAttributeId) { return false; }; + virtual bool compute(const std::string& /*theAttributeId*/) { return false; }; /// Registers error during the execution, causes the ExecutionFailed state MODELAPI_EXPORT virtual void setError(const std::string& theError, @@ -156,6 +155,9 @@ class ModelAPI_Feature : public ModelAPI_Object /// Returns the feature is stable or not. MODELAPI_EXPORT virtual bool isStable(); + /// Returns the feature is editable or not. Most of features are editable. + MODELAPI_EXPORT virtual bool isEditable(); + /// Performs some custom feature specific functionality (normally called by some GUI button) /// \param theActionId an action key /// \return a boolean value about it is performed @@ -165,7 +167,7 @@ class ModelAPI_Feature : public ModelAPI_Object // Helper methods, aliases for data()->method() // ----------------------------------------------------------------------------------------------- /// Returns the name stored in the attribute - inline std::string name() + inline std::wstring name() { return data()->name(); } @@ -199,6 +201,11 @@ class ModelAPI_Feature : public ModelAPI_Object { return data()->refattr(theID); } + /// Returns the refattrlist attribute by the identifier + inline std::shared_ptr refattrlist(const std::string& theID) + { + return data()->refattrlist(theID); + } /// Returns the reference attribute by the identifier inline std::shared_ptr reference(const std::string& theID) { @@ -251,5 +258,19 @@ class ModelAPI_Feature : public ModelAPI_Object //! Pointer on feature object typedef std::shared_ptr FeaturePtr; -#endif +//! An interface for performing special copy actions. To give feature which is moved (a group) +//! over this feature. +class ModelAPI_FeatureCopyInterface { +public: + virtual ~ModelAPI_FeatureCopyInterface() {} + /// An algorithm to update the moved feature by the separate Copy feature + /// \param theContext the original context object + /// \param theValue the original shape + /// \param theCopies resulting copy-context will be appended here + virtual void getCopies(ObjectPtr theContext, std::shared_ptr theValue, + std::list& theCopyContext, + std::list >& theCopyVals) = 0; +}; + +#endif