Salome HOME
SketchSolver Refactoring: Eliminate SolveSpace as a sketch solver.
[modules/shaper.git] / src / SketchSolver / PlaneGCSSolver / PlaneGCSSolver_AttributeBuilder.h
1 // Copyright (C) 2017-20xx CEA/DEN, EDF R&D
2
3 // File:    PlaneGCSSolver_AttributeBuilder.h
4 // Created: 10 Feb 2017
5 // Author:  Artem ZHIDKOV
6
7 #ifndef PlaneGCSSolver_AttributeBuilder_H_
8 #define PlaneGCSSolver_AttributeBuilder_H_
9
10 #include <PlaneGCSSolver_EntityBuilder.h>
11
12 /** \class   PlaneGCSSolver_AttributeBuilder
13  *  \ingroup Plugins
14  *  \brief   Converts ModelAPI_Attribute to the entity applicable for PlaneGCS solver
15  */
16 class PlaneGCSSolver_AttributeBuilder : public PlaneGCSSolver_EntityBuilder
17 {
18 public:
19   PlaneGCSSolver_AttributeBuilder(PlaneGCSSolver_Storage* theStorage = 0);
20   PlaneGCSSolver_AttributeBuilder(const StoragePtr& theStorage);
21
22   /// \brief Converts an attribute to the solver's entity.
23   ///        Double attributes and 2D points are supported only.
24   /// \param theAttribute [in]  attribute to create
25   /// \return Created wrapper of the attribute applicable for specific solver
26   virtual EntityWrapperPtr createAttribute(AttributePtr theAttribute) override;
27
28   /// \brief Blank. To be defined in derived class.
29   virtual EntityWrapperPtr createFeature(FeaturePtr) override
30   { return EntityWrapperPtr(); }
31
32   /// \brief Blank. To be defined in derived class.
33   virtual const std::list<GCSConstraintPtr>& constraints() const override;
34 };
35
36 #endif