Salome HOME
Issue #1834: Fix length of lines
[modules/shaper.git] / src / Model / Model_Objects.h
index 9f947c776f62d0f392f076e63198c4d11736242b..86cf46e34cf0e8f495dfbc69f8e226d0970d0cfd 100644 (file)
@@ -87,7 +87,8 @@ class Model_Objects
   //! Returns the number of features in the group
   int size(const std::string& theGroupID);
 
-  ///! Returns all (and disabled) results of the given type. Not fast method (iterates all features).
+  //! Returns all (and disabled) results of the given type. 
+  //! Not fast method (iterates all features).
   void allResults(const std::string& theGroupID, std::list<ResultPtr>& theResults);
 
   //! Returns the number of all features: in the history or not
@@ -95,6 +96,10 @@ class Model_Objects
   //! Returns the feature by zero-based index: features in the history or not
   std::shared_ptr<ModelAPI_Feature> internalFeature(const int theIndex);
 
+  //! Returns feature by the id of the feature (produced by the Data "featureId" method)
+  std::shared_ptr<ModelAPI_Feature> featureById(const int theId);
+
+
   /// Creates a construction result
   std::shared_ptr<ModelAPI_ResultConstruction> createConstruction(
       const std::shared_ptr<ModelAPI_Data>& theFeatureData, const int theIndex = 0);
@@ -140,9 +145,10 @@ class Model_Objects
   //! Synchronizes myFeatures list with the updated document
   //! \param theUpdated list of labels that are marked as modified, so featrues must be also
   //! \param theUpdateReferences causes the update of back-references
+  //! \param theOpen - on open nothing must be reexecuted, except not persistent results
   //! \param theFlush makes flush all events in the end of all modifications of this method
   void synchronizeFeatures(const TDF_LabelList& theUpdated, const bool theUpdateReferences,
-    const bool theFlush);
+    const bool theOpen, const bool theFlush);
   //! Synchronizes the BackReferences list in Data of Features and Results
   void synchronizeBackRefs();
 
@@ -152,13 +158,15 @@ class Model_Objects
   //! Initializes the data fields of the feature
   void initData(ObjectPtr theObj, TDF_Label theLab, const int theTag);
 
-  //! Allows to store the result in the data tree of the document (attaches 'data' of result to tree)
+  //! Allows to store the result in the data tree of the document 
+  //! (attaches 'data' of result to tree)
   void storeResult(std::shared_ptr<ModelAPI_Data> theFeatureData,
                    std::shared_ptr<ModelAPI_Result> 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 std::shared_ptr<ModelAPI_Data>& theFeatureData, const int theResultIndex);
+  TDF_Label resultLabel(const std::shared_ptr<ModelAPI_Data>& theFeatureData,
+                        const int theResultIndex);
 
   //! Updates the results list of the feature basing on the current data tree
   void updateResults(FeaturePtr theFeature);
@@ -217,6 +225,8 @@ class Model_Objects
   friend class Model_AttributeReference;
   friend class Model_AttributeRefAttr;
   friend class Model_AttributeRefList;
+  friend class Model_AttributeSelection;
+  friend class Model_SelectionNaming;
 };
 
 #endif