Salome HOME
updated copyright message
[modules/shaper.git] / src / Model / Model_Data.h
index 58c97bd4e81ef249f703ea71f88408b042c53805..40fc32d96eefd22e3d174cbe29390f0f3dd39b8d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -33,6 +33,7 @@
 #include <ModelAPI_AttributeString.h>
 #include <ModelAPI_AttributeStringArray.h>
 #include <ModelAPI_AttributeIntArray.h>
+#include <ModelAPI_AttributeImage.h>
 #include <ModelAPI_Data.h>
 #include <ModelAPI_Feature.h>
 #include <ModelAPI_Folder.h>
@@ -96,16 +97,21 @@ class Model_Data : public ModelAPI_Data
   friend class Model_SelectionNaming;
   friend class Model_ResultConstruction;
   friend class Model_ResultBody;
+  friend class Model_Tools;
 
  public:
   /// The simplest constructor. "setLabel" must be called just after to initialize correctly.
   Model_Data();
   /// Returns the name of the feature visible by the user in the object browser
-  MODEL_EXPORT virtual std::string name();
+  MODEL_EXPORT virtual std::wstring name();
   /// Defines the name of the feature visible by the user in the object browser
-  MODEL_EXPORT virtual void setName(const std::string& theName);
+  MODEL_EXPORT virtual void setName(const std::wstring& theName);
   /// Return \c true if the object has been renamed by the user
   MODEL_EXPORT virtual bool hasUserDefinedName() const;
+  /// Returns version of the feature (empty string if not applicable)
+  MODEL_EXPORT virtual std::string version();
+  /// Initialize the version of the feature
+  MODEL_EXPORT virtual void setVersion(const std::string& theVersion);
   /// Returns the attribute that references to another document
   MODEL_EXPORT virtual std::shared_ptr<ModelAPI_AttributeDocRef> document(const std::string& theID);
   /// Returns the attribute that contains real value with double precision
@@ -150,6 +156,9 @@ class Model_Data : public ModelAPI_Data
   /// Returns the attribute that contains string values array
   MODEL_EXPORT virtual std::shared_ptr<ModelAPI_AttributeTables>
     tables(const std::string& theID);
+  /// Returns the attribute that contains image
+  MODEL_EXPORT virtual std::shared_ptr<ModelAPI_AttributeImage>
+    image(const std::string& theID);
 
   /// Returns the generic attribute by identifier
   /// \param theID identifier of the attribute
@@ -288,6 +297,9 @@ protected:
   /// Sets true if the object is deleted, but some data is still kept in memory
   MODEL_EXPORT virtual void setIsDeleted(const bool theFlag);
 
+  /// Erases all attributes from myAttrs, but keeping them in the data structure
+  void clearAttributes();
+
 private:
   /// Removes a back reference (with identifier which attribute references to this object)
   /// \param theFeature feature referenced to this
@@ -322,6 +334,7 @@ private:
   /// Returns \c true if theAttribute1 is going earlier than theAttribute2 in the data
   MODEL_EXPORT virtual bool isPrecedingAttribute(const std::string& theAttribute1,
                                                  const std::string& theAttribute2) const;
+
 };
 
 /// Generic method to register back reference, used in referencing attributes.