Salome HOME
First phase of SketchSolver refactoring
[modules/shaper.git] / src / SketchSolver / SolveSpaceSolver / SolveSpaceSolver_ParameterWrapper.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:    SolveSpaceSolver_ParameterWrapper.h
4 // Created: 2 Dec 2015
5 // Author:  Artem ZHIDKOV
6
7 #ifndef SolveSpaceSolver_ParameterWrapper_H_
8 #define SolveSpaceSolver_ParameterWrapper_H_
9
10 #include <SketchSolver_IParameterWrapper.h>
11 #include <SolveSpaceSolver_Solver.h>
12
13 /**
14  *  Wrapper providing operations with parameters in SolveSpace.
15  */
16 class SolveSpaceSolver_ParameterWrapper : public SketchSolver_IParameterWrapper
17 {
18 public:
19   SolveSpaceSolver_ParameterWrapper(const Slvs_Param& theParam);
20
21   /// \brief Return SolveSpace parameter
22   const Slvs_Param& parameter() const
23   { return myParameter; }
24   /// \brief Return SolveSpace parameter to change
25   Slvs_Param& changeParameter()
26   { return myParameter; }
27
28   /// \brief Return ID of current parameter
29   virtual ParameterID id() const;
30
31   /// \brief Change group for the parameter
32   virtual void setGroup(const GroupID& theGroup)
33   { myParameter.group = (Slvs_hGroup)theGroup; }
34
35   /// \brief Return identifier of the group the parameter belongs to
36   virtual GroupID group() const
37   { return (GroupID)myParameter.group; }
38
39   /// \brief Change value of parameter
40   virtual void setValue(double theValue);
41   /// \brief Return value of parameter
42   virtual double value() const;
43
44   /// \brief Compare current parameter with other
45   virtual bool isEqual(const ParameterWrapperPtr& theOther);
46
47   /// \brief Update value of parameter by the given one
48   /// \return \c true if the value of parameter is changed
49   virtual bool update(const std::shared_ptr<SketchSolver_IParameterWrapper>& theOther);
50
51 private:
52   Slvs_Param myParameter;
53 };
54
55 #endif