X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Data.h;h=d8120a5b7c35ba51e3c5e85656b7d11c00847fad;hb=fc72d43b677baa05ae7fd317346fd8b723b799ed;hp=8ce3e9133a6cbb030bdbaac592096e8cdfe201ee;hpb=97917d3698f5a2f7fc9596e7c755ff8f6751e373;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Data.h b/src/ModelAPI/ModelAPI_Data.h index 8ce3e9133..d8120a5b7 100644 --- a/src/ModelAPI/ModelAPI_Data.h +++ b/src/ModelAPI/ModelAPI_Data.h @@ -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 @@ -48,6 +48,7 @@ class ModelAPI_Feature; class ModelAPI_AttributeSelection; class ModelAPI_AttributeSelectionList; class ModelAPI_AttributeIntArray; +class ModelAPI_AttributeImage; class ModelAPI_AttributeTables; class ModelAPI_Object; class GeomAPI_Shape; @@ -72,12 +73,17 @@ class MODELAPI_EXPORT ModelAPI_Data public: /// Returns the name of the feature visible by the user in the object browser - virtual std::string name() = 0; + virtual std::wstring name() = 0; /// Defines the name of the feature visible by the user in the object browser - virtual void setName(const std::string& theName) = 0; + virtual void setName(const std::wstring& theName) = 0; /// Return \c true if the object has been renamed by the user virtual bool hasUserDefinedName() const = 0; + /// Returns version of the feature (empty string if not applicable) + virtual std::string version() = 0; + /// Initialize the version of the feature + virtual void setVersion(const std::string& theVersion) = 0; + /// Returns the attribute that references to another document virtual std::shared_ptr document(const std::string& theID) = 0; /// Returns the attribute that contains real value with double precision @@ -108,6 +114,8 @@ class MODELAPI_EXPORT ModelAPI_Data virtual std::shared_ptr intArray(const std::string& theID) = 0; /// Returns the attribute that contains string values array virtual std::shared_ptr stringArray(const std::string& theID) = 0; + /// Returns the attribute that contains image + virtual std::shared_ptr image(const std::string& theID) = 0; /// Returns the attribute that contains tables virtual std::shared_ptr tables(const std::string& theID) = 0; @@ -133,9 +141,29 @@ class MODELAPI_EXPORT ModelAPI_Data /// for each attribute of the object /// \param theID identifier of the attribute that can be referenced by this ID later /// \param theAttrType type of the created attribute (received from the type method) + /// \param theIndex index of the attribute in the internal data structure, for not-floating + /// attributes it is -1 to let it automatically be added /// \returns the just created attribute + virtual std::shared_ptr addAttribute( + const std::string& theID, const std::string theAttrType, const int theIndex = -1) = 0; + + /// Adds a floating attribute (that may be added/removed during the data life) + /// \param theID identifier of the attribute that can be referenced by this ID later + /// \param theAttrType type of the created attribute (received from the type method) + /// \param theGroup identifier of the group this attribute belongs to, may be an empty string virtual std::shared_ptr - addAttribute(const std::string& theID, const std::string theAttrType) = 0; + addFloatingAttribute(const std::string& theID, const std::string theAttrType, + const std::string& theGroup) = 0; + + /// Returns all groups of this data (ordered). + virtual void allGroups(std::list& theGroups) = 0; + + /// Returns an ordered list of attributes that belong to the given group + virtual void attributesOfGroup(const std::string& theGroup, + std::list >& theAttrs) = 0; + + /// Remove all attributes of the given group + virtual void removeAttributes(const std::string& theGroup) = 0; /// Useful method for "set" methods of the attributes: sends an UPDATE event and /// makes attribute initialized