Salome HOME
Code cleanup
[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_Solver.h>
12 #include <SketchSolver_IConstraintWrapper.h>
13
14
15 /**
16  *  Wrapper providing operations with SovleSpace constraints.
17  */
18 class PlaneGCSSolver_ConstraintWrapper : public SketchSolver_IConstraintWrapper
19 {
20 public:
21   PlaneGCSSolver_ConstraintWrapper(const ConstraintPtr& theOriginal,
22                                    const GCSConstraintPtr& theConstraint,
23                                    const SketchSolver_ConstraintType& theType);
24   PlaneGCSSolver_ConstraintWrapper(const ConstraintPtr& theOriginal,
25                                    const std::list<GCSConstraintPtr>& theConstraints,
26                                    const SketchSolver_ConstraintType& theType);
27
28   /// \brief Return list of constraints
29   const std::list<GCSConstraintPtr>& constraints() const
30   { return myGCSConstraints; }
31
32   /// \brief Return ID of current entity
33   virtual ConstraintID id() const
34   { return myID; }
35
36   /// \brief Change group for the constraint
37   virtual void setGroup(const GroupID& theGroup);
38   /// \brief Return identifier of the group the constraint belongs to
39   virtual GroupID group() const
40   { return myGroup; }
41
42   /// \brief Return type of current entity
43   virtual SketchSolver_ConstraintType type() const
44   { return myType; }
45
46   /// \brief Assign numeric parameter of constraint
47   virtual void setValue(const double& theValue);
48
49   /// \brief Change parameter representing the value of constraint
50   void setValueParameter(const ParameterWrapperPtr& theValue);
51   /// \brief Return parametric representation of constraint value
52   const ParameterWrapperPtr& valueParameter() const
53   { return myValueParam; }
54
55   /// \brief Verify the feature is used in the constraint
56   virtual bool isUsed(FeaturePtr theFeature) const;
57   /// \brief Verify the attribute is used in the constraint
58   virtual bool isUsed(AttributePtr theAttribute) const;
59
60   /// \brief Compare current constraint with other
61   virtual bool isEqual(const ConstraintWrapperPtr& theOther);
62
63   /// \brief Update values of parameters of this constraint by the parameters of given one
64   /// \return \c true if some parameters change their values
65   virtual bool update(const std::shared_ptr<SketchSolver_IConstraintWrapper>& theOther);
66
67 private:
68   ConstraintID     myID;
69   GroupID          myGroup;
70   SketchSolver_ConstraintType myType;
71   ParameterWrapperPtr myValueParam;
72   std::list<GCSConstraintPtr> myGCSConstraints;
73 };
74
75 #endif