1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: SketchSolver_IEntityWrapper.h
4 // Created: 30 Nov 2015
5 // Author: Artem ZHIDKOV
7 #ifndef SketchSolver_IEntityWrapper_H_
8 #define SketchSolver_IEntityWrapper_H_
10 #include <SketchSolver.h>
12 #include <ModelAPI_Attribute.h>
13 #include <ModelAPI_Feature.h>
19 enum SketchSolver_EntityType {
30 * Wrapper providing operations with entities regardless the solver.
32 class SketchSolver_IEntityWrapper
35 SketchSolver_IEntityWrapper() : myExternal(false) {}
36 virtual ~SketchSolver_IEntityWrapper() {}
38 /// \brief Return type of current entity
39 virtual SketchSolver_EntityType type() const = 0;
41 /// \brief Change flag indicating the entity cannot be changed in the solver
42 void setExternal(bool theExternal) { myExternal = theExternal; }
43 /// \brief Return the External flag
44 bool isExternal() const { return myExternal; }
50 typedef std::shared_ptr<SketchSolver_IEntityWrapper> EntityWrapperPtr;