]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_EntityWrapper.h
Salome HOME
Sketcher: Remove obsolete interfaces. Code cleanup.
[modules/shaper.git] / src / SketchSolver / PlaneGCSSolver / PlaneGCSSolver_EntityWrapper.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:    PlaneGCSSolver_EntityWrapper.h
4 // Created: 30 Nov 2015
5 // Author:  Artem ZHIDKOV
6
7 #ifndef PlaneGCSSolver_EntityWrapper_H_
8 #define PlaneGCSSolver_EntityWrapper_H_
9
10 #include <PlaneGCSSolver_Defs.h>
11
12 #include <ModelAPI_Attribute.h>
13 #include <ModelAPI_Feature.h>
14
15 #include <list>
16 #include <memory>
17
18 /**
19  *  Wrapper providing operations with entities regardless the solver.
20  */
21 class PlaneGCSSolver_EntityWrapper
22 {
23 public:
24   PlaneGCSSolver_EntityWrapper() : myExternal(false) {}
25   virtual ~PlaneGCSSolver_EntityWrapper() {}
26
27   /// \brief Return type of current entity
28   virtual SketchSolver_EntityType type() const = 0;
29
30   /// \brief Change flag indicating the entity cannot be changed in the solver
31   void setExternal(bool theExternal) { myExternal = theExternal; }
32   /// \brief Return the External flag
33   bool isExternal() const { return myExternal; }
34
35 private:
36   bool myExternal;
37 };
38
39 typedef std::shared_ptr<PlaneGCSSolver_EntityWrapper> EntityWrapperPtr;
40
41 #endif