X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Data.h;h=2fc8fbfc8fec35a6997faf2119930bcc8b9885fc;hb=9bb3b8b646eb13866a8792ae585ac5df25a16590;hp=1d37ad60f5f88f1494c927a9e66ff84408da4e13;hpb=773696804ec4f543a421f1ebd71be86d95cb581b;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Data.h b/src/ModelAPI/ModelAPI_Data.h index 1d37ad60f..2fc8fbfc8 100644 --- a/src/ModelAPI/ModelAPI_Data.h +++ b/src/ModelAPI/ModelAPI_Data.h @@ -1,13 +1,27 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - -// File: ModelAPI_Data.hxx -// Created: 21 Mar 2014 -// Author: Mikhail PONIKAROV +// Copyright (C) 2014-2017 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 +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or +// email : webmaster.salome@opencascade.com +// #ifndef ModelAPI_Data_H_ #define ModelAPI_Data_H_ -#ifdef _WINDOWS // to avoid too long decorated name warning +#ifdef _WINDOWS // to avoid too long decorated name warning #pragma warning( disable : 4503 ) #endif @@ -21,17 +35,21 @@ class ModelAPI_Attribute; class ModelAPI_AttributeDocRef; class ModelAPI_AttributeInteger; class ModelAPI_AttributeDouble; +class ModelAPI_AttributeDoubleArray; class ModelAPI_AttributeReference; class ModelAPI_AttributeRefAttr; class ModelAPI_AttributeRefList; +class ModelAPI_AttributeRefAttrList; class ModelAPI_AttributeBoolean; class ModelAPI_AttributeString; +class ModelAPI_AttributeStringArray; class ModelAPI_Document; class ModelAPI_Attribute; class ModelAPI_Feature; class ModelAPI_AttributeSelection; class ModelAPI_AttributeSelectionList; class ModelAPI_AttributeIntArray; +class ModelAPI_AttributeTables; class ModelAPI_Object; class GeomAPI_Shape; @@ -56,14 +74,17 @@ class MODELAPI_EXPORT ModelAPI_Data /// Returns the name of the feature visible by the user in the object browser virtual std::string name() = 0; - /// Defines the name of the feature visible by the user in the object browser virtual void setName(const std::string& theName) = 0; + /// Return \c true if the object has been renamed by the user + virtual bool hasUserDefinedName() const = 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 virtual std::shared_ptr real(const std::string& theID) = 0; + /// Returns the attribute that contains double values array + virtual std::shared_ptr realArray(const std::string& theID) = 0; /// Returns the attribute that contains integer value virtual std::shared_ptr integer(const std::string& theID) = 0; /// Returns the attribute that contains reference to a feature @@ -71,18 +92,25 @@ class MODELAPI_EXPORT ModelAPI_Data /// Returns the attribute that contains selection to a shape virtual std::shared_ptr selection(const std::string& theID) = 0; /// Returns the attribute that contains selection to a shape - virtual std::shared_ptr + virtual std::shared_ptr selectionList(const std::string& theID) = 0; /// Returns the attribute that contains reference to an attribute of a feature virtual std::shared_ptr refattr(const std::string& theID) = 0; /// Returns the attribute that contains list of references to features virtual std::shared_ptr reflist(const std::string& theID) = 0; + /// Returns the attribute that contains list of references to features or reference to + /// an attribute of a feature + virtual std::shared_ptr refattrlist(const std::string& theID) = 0; /// Returns the attribute that contains boolean value virtual std::shared_ptr boolean(const std::string& theID) = 0; /// Returns the attribute that contains boolean value virtual std::shared_ptr string(const std::string& theID) = 0; /// Returns the attribute that contains integer values array 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 tables + virtual std::shared_ptr tables(const std::string& theID) = 0; /// Returns the generic attribute by identifier /// \param theID identifier of the attribute @@ -114,7 +142,11 @@ class MODELAPI_EXPORT ModelAPI_Data /// makes attribute initialized virtual void sendAttributeUpdated(ModelAPI_Attribute* theAttr) = 0; /// Blocks sending "attribute updated" if theBlock is true - virtual void blockSendAttributeUpdated(const bool theBlock) = 0; + /// \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) + /// \returns the previous state of block + virtual bool blockSendAttributeUpdated( + const bool theBlock, const bool theSendMessage = true) = 0; /// Erases all the data from the data model virtual void erase() = 0; @@ -141,7 +173,8 @@ class MODELAPI_EXPORT ModelAPI_Data virtual const std::set >& refsToMe() = 0; /// returns all references by attributes of this data - /// \param theRefs returned list of pairs: id of referenced attribute and list of referenced objects + /// \param theRefs returned list of pairs: id of referenced attribute and + /// list of referenced objects virtual void referencesToObjects( std::list > > >& theRefs) =0; @@ -161,6 +194,16 @@ class MODELAPI_EXPORT ModelAPI_Data /// Returns the owner of htis data virtual std::shared_ptr owner() = 0; + /// Returns true if the object is deleted, but some data is still keept in memory + virtual bool isDeleted() = 0; + + /// Sets true if the object is deleted, but some data is still keept in memory + virtual void setIsDeleted(const bool theFlag) = 0; + + /// Returns \c true if theAttribute1 is going earlier than theAttribute2 in the data + virtual bool isPrecedingAttribute(const std::string& theAttribute1, + const std::string& theAttribute2) const = 0; + protected: /// Objects are created for features automatically ModelAPI_Data();