X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Feature.h;h=8a648e7c53c21616a7260ed5ad29ec0d11f2628c;hb=c66d90377083e2611816b72500533d4ffbc73e19;hp=85ce31df224b59c55cd7a3937733da8e92fe8011;hpb=298e667eb49d3d1441664d76c1ab4f5fdc80645e;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Feature.h b/src/ModelAPI/ModelAPI_Feature.h index 85ce31df2..8a648e7c5 100644 --- a/src/ModelAPI/ModelAPI_Feature.h +++ b/src/ModelAPI/ModelAPI_Feature.h @@ -28,6 +28,9 @@ class ModelAPI_Feature : public ModelAPI_Object std::list > myResults; ///< is feature disabled or not bool myIsDisabled; + ///< is feature is stable (not editing) + bool myIsStable; + public: /// Returns the unique kind of a feature (like "Point") virtual const std::string& getKind() = 0; @@ -82,7 +85,7 @@ class ModelAPI_Feature : public ModelAPI_Object const int theIndex); /// removes the result from the feature MODELAPI_EXPORT void removeResult(const std::shared_ptr& theResult); - /// removes all results starting from the gived index (zero-based) + /// removes all results starting from the given index (zero-based) /// \param theSinceIndex - index of the deleted result and all after also will be deleted /// \param theFlush - if it is false, REDISPLAY message is not flushed MODELAPI_EXPORT void removeResults(const int theSinceIndex, const bool theFlush = true); @@ -124,7 +127,7 @@ class ModelAPI_Feature : public ModelAPI_Object MODELAPI_EXPORT virtual bool setDisabled(const bool theFlag); /// Returns the feature is disabled or not. - MODELAPI_EXPORT virtual bool isDisabled() const; + MODELAPI_EXPORT virtual bool isDisabled(); /// To virtually destroy the fields of successors MODELAPI_EXPORT virtual ~ModelAPI_Feature(); @@ -132,6 +135,13 @@ class ModelAPI_Feature : public ModelAPI_Object /// Returns the feature by the object (result). MODELAPI_EXPORT static std::shared_ptr feature(ObjectPtr theObject); + /// Set the stable feature flag. If feature is currently editing then it is not stable. + /// \returns true if state is really changed + MODELAPI_EXPORT virtual bool setStable(const bool theFlag); + + /// Returns the feature is stable or not. + MODELAPI_EXPORT virtual bool isStable(); + // // Helper methods, aliases for data()->method() // ----------------------------------------------------------------------------------------------- @@ -195,7 +205,13 @@ class ModelAPI_Feature : public ModelAPI_Object { return data()->attribute(theID); } - // ----------------------------------------------------------------------------------------------- + protected: + /// This method is called just after creation of the object: it must initialize + /// all fields, normally initialized in the constructor + MODELAPI_EXPORT virtual void init(); + + friend class Model_Document; + friend class Model_Objects; }; //! Pointer on feature object