SHAPER 9.16.0
PlaneGCSSolver_EntityWrapper.h
1// Copyright (C) 2014-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef PlaneGCSSolver_EntityWrapper_H_
21#define PlaneGCSSolver_EntityWrapper_H_
22
23#include <PlaneGCSSolver_Defs.h>
24
25#include <map>
26#include <memory>
27
29
31typedef std::shared_ptr<PlaneGCSSolver_EntityWrapper> EntityWrapperPtr;
32
37{
38public:
39 PlaneGCSSolver_EntityWrapper() : myExternal(false) {}
41
43 virtual SketchSolver_EntityType type() const = 0;
44
46 void setExternal(bool theExternal) { myExternal = theExternal; }
48 bool isExternal() const { return myExternal; }
49
51 void setAdditionalAttributes(const std::map<std::string, EntityWrapperPtr>& theAttribues)
52 { myAdditionalAttributes = theAttribues; }
54 const std::map<std::string, EntityWrapperPtr>& additionalAttributes() const
55 { return myAdditionalAttributes; }
56
57protected:
60 virtual bool update(std::shared_ptr<ModelAPI_Attribute> theAttribute)
61 { return false; }
62
64
65private:
66 bool myExternal;
67 std::map<std::string, EntityWrapperPtr> myAdditionalAttributes;
68};
69
70#endif
Generic attribute of the Object.
Definition: ModelAPI_Attribute.h:34
Converts ModelAPI_Attribute to the entity applicable for PlaneGCS solver.
Definition: PlaneGCSSolver_AttributeBuilder.h:30
Wrapper providing operations with entities regardless the solver.
Definition: PlaneGCSSolver_EntityWrapper.h:37
void setAdditionalAttributes(const std::map< std::string, EntityWrapperPtr > &theAttribues)
Store names of attributes and their values if necessary.
Definition: PlaneGCSSolver_EntityWrapper.h:51
virtual bool update(std::shared_ptr< ModelAPI_Attribute > theAttribute)
Update entity by the values of theAttribute.
Definition: PlaneGCSSolver_EntityWrapper.h:60
void setExternal(bool theExternal)
Change flag indicating the entity cannot be changed in the solver.
Definition: PlaneGCSSolver_EntityWrapper.h:46
virtual SketchSolver_EntityType type() const =0
Return type of current entity.
bool isExternal() const
Return the External flag.
Definition: PlaneGCSSolver_EntityWrapper.h:48
const std::map< std::string, EntityWrapperPtr > & additionalAttributes() const
Return the list of additional attributes.
Definition: PlaneGCSSolver_EntityWrapper.h:54