Salome HOME
Merge branch 'SketchSolver_Linux' of newgeom:newgeom into SolveSpace
[modules/shaper.git] / src / Model / Model_Document.h
index b314d9dc896c1bd9ca4f5081dd3008a3c32fa58e..218ea615bf88cdc004b6c5f8ece6bae4b2acdcc9 100644 (file)
@@ -80,13 +80,6 @@ public:
   //! Returns the number of features in the group
   MODEL_EXPORT virtual int size(const std::string& theGroupID);
 
-  ///! Returns the vector of groups already added to the document
-  MODEL_EXPORT virtual const std::vector<std::string>& getGroups() const;
-
-  //! Returns the index of feature in the group (zero based)
-  //! \retruns -1 if not found
-  MODEL_EXPORT virtual int featureIndex(boost::shared_ptr<ModelAPI_Feature> theFeature);
-
 protected:
 
   //! Returns (creates if needed) the group label
@@ -99,7 +92,11 @@ protected:
   //! Adds to the document the new feature
   void addFeature(const boost::shared_ptr<ModelAPI_Feature> theFeature);
 
-  //! Synchronizes myGroups, myGroupsNames, myFeatures and mySubs list with the updated document
+  //! Returns the object by the feature
+  boost::shared_ptr<ModelAPI_Feature> objectByFeature(
+    const boost::shared_ptr<ModelAPI_Feature> theFeature);
+
+  //! Synchronizes myFeatures list with the updated document
   void synchronizeFeatures();
 
   //! Creates new document with binary file format
@@ -112,16 +109,15 @@ private:
   Handle_TDocStd_Document myDoc; ///< OCAF document
   /// number of transactions after the last "save" call, used for "IsModified" method
   int myTransactionsAfterSave;
-  /// root labels of the features groups identified by names
-  std::map<std::string, TDF_Label> myGroups;
-  std::vector<std::string> myGroupsNames; ///< names of added groups to the document
-  /// Features managed by this document: by group name
-  std::map<std::string, std::vector<boost::shared_ptr<ModelAPI_Feature> > > myFeatures;
-  std::set<std::string> mySubs; ///< set of identifiers of sub-documents of this document
+  /// number of myTransactionsAfterSave for the nested transaction start
+  int myNestedStart;
+  /// All features managed by this document (not only in history of OB)
+  std::vector<boost::shared_ptr<ModelAPI_Feature> > myFeatures;
+
+  ///< set of identifiers of sub-documents of this document
+  std::set<std::string> mySubs;
   /// transaction indexes (related to myTransactionsAfterSave) which were empty in this doc
   std::map<int, bool> myIsEmptyTr;
-  /// true if the current operation is nested
-  bool myIsNested;
 };
 
 #endif