]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_ParameterWrapper.h
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
12 #include <slvs.h>
13
14 /**
15  *  Wrapper providing operations with parameters in SolveSpace.
16  */
17 class SolveSpaceSolver_ParameterWrapper : public SketchSolver_IParameterWrapper
18 {
19 public:
20   SolveSpaceSolver_ParameterWrapper(const Slvs_Param& theParam);
21
22   /// \brief Return SolveSpace parameter
23   const Slvs_Param& parameter() const
24   { return myParameter; }
25   /// \brief Return SolveSpace parameter to change
26   Slvs_Param& changeParameter()
27   { return myParameter; }
28
29   /// \brief Return ID of current parameter
30   virtual ParameterID id() const;
31
32   /// \brief Change group for the parameter
33   virtual void setGroup(const GroupID& theGroup)
34   { myParameter.group = (Slvs_hGroup)theGroup; }
35
36   /// \brief Return identifier of the group the parameter belongs to
37   virtual const GroupID& group() const
38   { return (GroupID)myParameter.group; }
39
40   /// \brief Change value of parameter
41   virtual void setValue(double theValue);
42   /// \brief Return value of parameter
43   virtual double value() const;
44
45   /// \brief Compare current parameter with other
46   virtual bool isEqual(const ParameterWrapperPtr& theOther);
47
48   /// \brief Update value of parameter by the given one
49   /// \return \c true if the value of parameter is changed
50   virtual bool update(const std::shared_ptr<SketchSolver_IParameterWrapper>& theOther);
51
52 private:
53   Slvs_Param myParameter;
54 };
55
56 #endif