X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_Document.h;h=598c3b633f674c283e69f89c7b1edaff4f75341b;hb=7b76b534d04e5d50f1ad319e58e0e22c6bb742a3;hp=240082532a2460065439f76d3436a7079d3d1250;hpb=cd9217d7e87997ec8bc150a6d8c389e742ca0f84;p=modules%2Fshaper.git diff --git a/src/Model/Model_Document.h b/src/Model/Model_Document.h index 240082532..598c3b633 100644 --- a/src/Model/Model_Document.h +++ b/src/Model/Model_Document.h @@ -40,8 +40,9 @@ class Model_Document : public ModelAPI_Document //! Saves the OCAF document to the file. //! \param theFileName full name of the file to store + //! \param theResults the result full file names that were stored by "save" //! \returns true if file was stored successfully - MODEL_EXPORT virtual bool save(const char* theFileName); + MODEL_EXPORT virtual bool save(const char* theFileName, std::list& theResults); //! Removes document data MODEL_EXPORT virtual void close(); @@ -85,6 +86,9 @@ class Model_Document : public ModelAPI_Document //! Adds a new sub-document by the identifier, or returns existing one if it is already exist MODEL_EXPORT virtual boost::shared_ptr subDocument(std::string theDocID); + //! Internal sub-document by ID + MODEL_EXPORT virtual boost::shared_ptr subDoc(std::string theDocID); + ///! Returns the id of hte document MODEL_EXPORT virtual const std::string& id() const { @@ -115,7 +119,11 @@ class Model_Document : public ModelAPI_Document //! Returns a feature by result (owner of result) MODEL_EXPORT virtual boost::shared_ptr - feature(const boost::shared_ptr& theResult); + feature(const boost::shared_ptr& theResult); + + ///! Returns true if parametric updater need to execute feature on recomputartion + ///! On abort, undo or redo it is not necessary: results in document are updated automatically + bool executeFeatures() {return myExecuteFeatures;} protected: @@ -148,8 +156,14 @@ class Model_Document : public ModelAPI_Document boost::shared_ptr theResult, const int theResultIndex = 0); + //! returns the label of result by index; creates this label if it was not created before + TDF_Label resultLabel(const boost::shared_ptr& theFeatureData, const int theResultIndex); + + //! Updates the results list of the feature basing on the current data tree + void updateResults(FeaturePtr theFeature); + friend class Model_Application; - friend class Model_PluginManager; + friend class Model_Session; friend class DFBrowser; private: @@ -167,6 +181,8 @@ class Model_Document : public ModelAPI_Document std::set mySubs; /// transaction indexes (related to myTransactionsAfterSave) which were empty in this doc std::map myIsEmptyTr; + /// If it is true, features are not executed on update (on abort, undo, redo) + bool myExecuteFeatures; }; #endif