Salome HOME
SketchSolver Refactoring: Eliminate SolveSpace as a sketch solver.
[modules/shaper.git] / src / SketchSolver / PlaneGCSSolver / PlaneGCSSolver_ScalarWrapper.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:    PlaneGCSSolver_ScalarWrapper.h
4 // Created: 16 Dec 2015
5 // Author:  Artem ZHIDKOV
6
7 #ifndef PlaneGCSSolver_ScalarWrapper_H_
8 #define PlaneGCSSolver_ScalarWrapper_H_
9
10 #include <PlaneGCSSolver_Defs.h>
11 #include <SketchSolver_IEntityWrapper.h>
12
13 /**
14  *  Wrapper providing operations with PlaneGCS scalars.
15  */
16 class PlaneGCSSolver_ScalarWrapper : public SketchSolver_IEntityWrapper
17 {
18 public:
19   PlaneGCSSolver_ScalarWrapper(double *const theParam);
20
21   /// \brief Return PlaneGCS parameter
22   double* scalar() const
23   { return myValue; }
24
25   /// \brief Change value of parameter
26   virtual void setValue(double theValue);
27   /// \brief Return value of parameter
28   virtual double value() const;
29
30   /// \brief Return type of current entity
31   virtual SketchSolver_EntityType type() const
32   { return ENTITY_SCALAR; }
33
34 protected:
35   double* myValue; ///< pointer to value provided by the storage
36 };
37
38 typedef std::shared_ptr<PlaneGCSSolver_ScalarWrapper> ScalarWrapperPtr;
39
40 #endif