Salome HOME
Extrusion fix
[modules/shaper.git] / src / ModelAPI / ModelAPI_Document.h
index a56fd64bf35e26934296f056872095335dca0522..6fe1c9121fbdbeda6def3657e870fb062f3cd1e8 100644 (file)
@@ -25,6 +25,7 @@ class ModelAPI_ResultPart;
 class ModelAPI_ResultGroup;
 class ModelAPI_ResultParameter;
 class ModelAPI_Data;
+class GeomAPI_Shape;
 
 /**\class ModelAPI_Document
  * \ingroup DataModel
@@ -66,11 +67,8 @@ public:
   virtual void moveFeature(std::shared_ptr<ModelAPI_Feature> theMoved, 
                            std::shared_ptr<ModelAPI_Feature> theAfterThis) = 0;
 
-  ///! Adds a new sub-document by the identifier, or returns existing one if it is already exist
-  virtual std::shared_ptr<ModelAPI_Document> subDocument(std::string theDocID) = 0;
-
   ///! Returns the id of the document
-  virtual const std::string& id() const = 0;
+  virtual const int id() const = 0;
 
   //! Returns the object in the group by the index (started from zero)
   //! \param theGroupID group that contains an object
@@ -103,9 +101,8 @@ public:
   //! will be appended after this one.
   //! \param theCurrent the selected feature as current: blow it everythin become disabled
   //! \param theVisible use visible features only: flag is true for Object Browser functionality
-  //! \param theFlushUpdates if it is true (default) it flashes creation/redisplay/delete messages
   virtual void setCurrentFeature(std::shared_ptr<ModelAPI_Feature> theCurrent,
-    const bool theVisible, const bool theFlushUpdates = true) = 0;
+    const bool theVisible) = 0;
   //! Makes the current feature one feature upper
   virtual void setCurrentFeatureUp() = 0;
 
@@ -119,6 +116,8 @@ public:
   //! wihtout this participation
   virtual void synchronizeTransactions() = 0;
 
+  //! Returns feature by the id of the feature (produced by the Data "featureId" method)
+  virtual std::shared_ptr<ModelAPI_Feature> featureById(const int theId) = 0;
 
   //! To virtually destroy the fields of successors
   MODELAPI_EXPORT virtual ~ModelAPI_Document();
@@ -159,6 +158,11 @@ public:
   /// Returns true if document is opened and valid
   virtual bool isOpened() = 0;
 
+  /// Returns the feature that produced the given face of the given result.
+  virtual std::shared_ptr<ModelAPI_Feature> producedByFeature(
+    std::shared_ptr<ModelAPI_Result> theResult,
+    const std::shared_ptr<GeomAPI_Shape>& theShape) = 0;
+
 
 protected:
   //! Only for SWIG wrapping it is here