Salome HOME
Merge branch 'master' into cgt/devCEA
[modules/shaper.git] / src / SketchSolver / PlaneGCSSolver / PlaneGCSSolver_ConstraintWrapper.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:    PlaneGCSSolver_ConstraintWrapper.h
4 // Created: 14 Dec 2015
5 // Author:  Artem ZHIDKOV
6
7 #ifndef PlaneGCSSolver_ConstraintWrapper_H_
8 #define PlaneGCSSolver_ConstraintWrapper_H_
9
10 #include <PlaneGCSSolver_Defs.h>
11 #include <PlaneGCSSolver_ScalarWrapper.h>
12
13 /**
14  *  Wrapper providing operations with PlaneGCS constraints.
15  */
16 class PlaneGCSSolver_ConstraintWrapper
17 {
18 public:
19   PlaneGCSSolver_ConstraintWrapper(const GCSConstraintPtr&            theConstraint,
20                                    const SketchSolver_ConstraintType& theType);
21   PlaneGCSSolver_ConstraintWrapper(const std::list<GCSConstraintPtr>& theConstraints,
22                                    const SketchSolver_ConstraintType& theType);
23
24   /// \brief Return list of constraints
25   const std::list<GCSConstraintPtr>& constraints() const
26   { return myGCSConstraints; }
27   /// \brief Change list of constraints
28   void setConstraints(const std::list<GCSConstraintPtr>& theConstraints)
29   { myGCSConstraints = theConstraints; }
30
31   /// \brief Return ID of current constraint
32   const ConstraintID& id() const
33   { return myID; }
34   /// \brief Change constraint ID
35   virtual void setId(const ConstraintID& theID);
36
37   /// \brief Return type of current entity
38   virtual SketchSolver_ConstraintType type() const
39   { return myType; }
40
41   /// \brief Assign numeric parameter of constraint
42   virtual void setValue(const double& theValue);
43   /// \brief Return numeric parameter of constraint
44   virtual double value() const;
45
46   /// \brief Change parameter representing the value of constraint
47   void setValueParameter(const ScalarWrapperPtr& theValue);
48   /// \brief Return parametric representation of constraint value
49   const ScalarWrapperPtr& valueParameter() const
50   { return myValueParam; }
51
52 private:
53   ConstraintID                myID;
54   SketchSolver_ConstraintType myType;
55   ScalarWrapperPtr            myValueParam;
56   std::list<GCSConstraintPtr> myGCSConstraints;
57 };
58
59 typedef std::shared_ptr<PlaneGCSSolver_ConstraintWrapper> ConstraintWrapperPtr;
60
61 #endif