+ /// Returns the next (from the history point of view) feature, any: invisible or disabled
+ /// \param theCurrent previous to the resulting feature
+ /// \param theReverse if it is true, iterates in reversed order (next becomes previous)
+ MODELAPI_EXPORT virtual std::shared_ptr<ModelAPI_Feature> nextFeature(
+ std::shared_ptr<ModelAPI_Feature> theCurrent, const bool theReverse = false) const = 0;
+
+ /// Loads the OCAF document from the file into the current document.
+ /// All the features are added after the active feature.
+ /// \param theFileName name of the file to import
+ /// \param theImported list of features imported from the file
+ /// \param theCheckOnly verify the document does not contain unappropriate features
+ /// (useful for import to PartSet), but do not import it
+ /// \returns true if file was loaded successfully
+ MODELAPI_EXPORT virtual bool importPart(const char* theFileName,
+ std::list<std::shared_ptr<ModelAPI_Feature> >& theImported,
+ bool theCheckOnly = false) = 0;
+
+ /// Export the list of features to the file
+ /// \param theFilename path to save the file
+ /// \param theExportFeatures list of features to export
+ MODELAPI_EXPORT virtual bool save(const char* theFilename,
+ const std::list<std::shared_ptr<ModelAPI_Feature> >& theExportFeatures) const = 0;
+