X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Feature.h;h=a6c51d0407958d4831cc29773cc8e127aec5e9d1;hb=9eb5801ea57b763b26db2c7bf897a50b34e2cc31;hp=a1d048af378b7ef274a7ee1b3109eb45b57ee20f;hpb=3ce4e2cad0e6802282a5a1d10c49c041e8a9f287;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Feature.h b/src/ModelAPI/ModelAPI_Feature.h index a1d048af3..a6c51d040 100644 --- a/src/ModelAPI/ModelAPI_Feature.h +++ b/src/ModelAPI/ModelAPI_Feature.h @@ -2,11 +2,11 @@ // Created: 21 Mar 2014 // Author: Mikhail PONIKAROV -#ifndef ModelAPI_Feature_HeaderFile -#define ModelAPI_Feature_HeaderFile +#ifndef ModelAPI_Feature_H_ +#define ModelAPI_Feature_H_ #include "ModelAPI_Object.h" -#include "ModelAPI_PluginManager.h" +#include "ModelAPI_Session.h" #include #include @@ -25,16 +25,22 @@ class ModelAPI_Feature : public ModelAPI_Object { ///< list of current results of this feature std::list > myResults; -public: + public: /// Returns the unique kind of a feature (like "Point") virtual const std::string& getKind() = 0; /// Returns the group identifier of all features static std::string group() - {static std::string MY_GROUP = "Features"; return MY_GROUP;} + { + static std::string MY_GROUP = "Features"; + return MY_GROUP; + } /// Returns the group identifier of this result - virtual std::string groupName() { return group(); } + virtual std::string groupName() + { + return group(); + } /// Request for initialization of data model of the feature: adding all attributes virtual void initAttributes() = 0; @@ -49,12 +55,25 @@ public: /// sets the alone result MODELAPI_EXPORT void setResult(const boost::shared_ptr& theResult); /// sets the result by index (zero based), results before this must be set before - MODELAPI_EXPORT void setResult( - const boost::shared_ptr& theResult, const int theIndex); + MODELAPI_EXPORT void setResult(const boost::shared_ptr& theResult, + const int theIndex); + /// removes the result from the feature + MODELAPI_EXPORT void removeResult(const boost::shared_ptr& theResult); + /// removes all results from the feature + MODELAPI_EXPORT void eraseResults(); + /// removes all fields from this feature: results, data, etc + MODELAPI_EXPORT virtual void erase(); + + /// Returns true if result is persistent (stored in document) and on undo-redo, save-open + /// it is not needed to recompute it. + virtual bool isPersistentResult() {return true;} /// Returns true if this feature must not be created: this is just an action /// that is not stored in the features history and data model (like "delete part"). - virtual bool isAction() {return false;} + virtual bool isAction() + { + return false; + } /// Must return document where the new feature must be added to /// By default it is current document