Salome HOME
Merge branch 'Dev_1.1.0' of newgeom:newgeom into Dev_1.1.0
[modules/shaper.git] / src / Model / Model_Document.h
index ef7c98a109f9f3d3113cce26cbd4cf2c6342af18..453422ffcf9900e7f3cf846c1dd3ece339a3f5e8 100644 (file)
@@ -11,6 +11,7 @@
 #include <ModelAPI_Document.h>
 #include <ModelAPI_Feature.h>
 #include <ModelAPI_Result.h>
+#include <ModelAPI_ResultParameter.h>
 
 #include <TDocStd_Document.hxx>
 #include <NCollection_DataMap.hxx>
@@ -142,6 +143,9 @@ class Model_Document : public ModelAPI_Document
   MODEL_EXPORT virtual std::shared_ptr<ModelAPI_ResultGroup> createGroup(
       const std::shared_ptr<ModelAPI_Data>& theFeatureData, const int theIndex = 0);
 
+  MODEL_EXPORT virtual std::shared_ptr<ModelAPI_ResultParameter> createParameter(
+      const std::shared_ptr<ModelAPI_Data>& theFeatureData, const int theIndex = 0);
+
   //! Returns a feature by result (owner of result)
   MODEL_EXPORT virtual std::shared_ptr<ModelAPI_Feature>
     feature(const std::shared_ptr<ModelAPI_Result>& theResult);
@@ -170,7 +174,9 @@ class Model_Document : public ModelAPI_Document
   //! Synchronizes myFeatures list with the updated document
   //! \param theMarkUpdated causes the "update" event for all features
   //! \param theUpdateReferences causes the update of back-references
-  void synchronizeFeatures(const bool theMarkUpdated, const bool theUpdateReferences);
+  //! \param theFlush makes flush all events in the end of all modifications of this method
+  void synchronizeFeatures(const bool theMarkUpdated, const bool theUpdateReferences,
+    const bool theFlush);
   //! Synchronizes the BackReferences list in Data of Features and Results
   void synchronizeBackRefs();
 
@@ -219,6 +225,9 @@ class Model_Document : public ModelAPI_Document
   /// Internally makes document know that feature was removed or added in history after creation
   MODEL_EXPORT virtual void addToHistory(const std::shared_ptr<ModelAPI_Object> theObject);
 
+  /// Returns true if the document is root module document
+  bool isRoot() const;
+
   friend class Model_Application;
   friend class Model_Session;
   friend class Model_Update;