X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Object.h;h=c72266b3b1deeedaa3e3da8765f2569e4d7ea665;hb=64bd95cebe79a5639800635efb7b0d21f13c079c;hp=a2d840901ca3131a81bf75fc32e8d47d9e24f2d9;hpb=3d0c457fe845fcc567543e071700ac7121dc51ff;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Object.h b/src/ModelAPI/ModelAPI_Object.h index a2d840901..c72266b3b 100644 --- a/src/ModelAPI/ModelAPI_Object.h +++ b/src/ModelAPI/ModelAPI_Object.h @@ -1,8 +1,21 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - -// File: ModelAPI_Object.hxx -// Created: 19 May 2014 -// Author: Mikhail PONIKAROV +// Copyright (C) 2014-2022 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_Object_H_ #define ModelAPI_Object_H_ @@ -16,6 +29,9 @@ class ModelAPI_Data; class ModelAPI_Document; +// sometimes it is useful for debug to see name of each object (bad for memory and performance) +//#define DEBUG_NAMES + /**\class ModelAPI_Object * \ingroup DataModel * \brief Represents any object in the data model and in the object browser. @@ -30,6 +46,9 @@ class ModelAPI_Object: public ModelAPI_Entity std::shared_ptr myData; ///< manager of the data model of a feature std::shared_ptr myDoc; ///< document this object belongs to public: +#ifdef DEBUG_NAMES + std::wstring myName; // name of this object +#endif /// By default object is displayed in the object browser. MODELAPI_EXPORT virtual bool isInHistory(); @@ -57,6 +76,11 @@ class ModelAPI_Object: public ModelAPI_Entity /// Returns the feature is disabled or not. virtual bool isDisabled() = 0; + /// Returns the parameters of color definition in the resources config manager + virtual void colorConfigInfo(std::string& /*theSection*/, + std::string& /*theName*/, + std::string& /*theDefault*/) {} + /// Called on change of any argument-attribute of this object /// \param theID identifier of changed attribute MODELAPI_EXPORT virtual void attributeChanged(const std::string& theID); @@ -76,6 +100,11 @@ class ModelAPI_Object: public ModelAPI_Entity /// signal. MODELAPI_EXPORT virtual void setDisplayed(const bool theDisplay); + MODELAPI_EXPORT virtual bool hasTexture() + { + return false; + } + protected: /// This method is called just after creation of the object: it must initialize /// all fields, normally initialized in the constructor @@ -91,6 +120,7 @@ class ModelAPI_Object: public ModelAPI_Entity MODELAPI_EXPORT virtual void erase(); friend class Model_Objects; + friend class ModelAPI_Feature; friend class Model_Document; };