]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_ConstraintWrapper.h
Salome HOME
Merge remote-tracking branch 'remotes/origin/BR_PlaneGCS' into CodeCleanup
[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 ////  /// \brief Return SolveSpace constraint to change
32 ////  GCSConstraintPtr& changeConstraint()
33 ////  { return myGCSConstraint; }
34
35   /// \brief Return ID of current entity
36   virtual ConstraintID id() const
37   { return myID; }
38
39   /// \brief Change group for the constraint
40   virtual void setGroup(const GroupID& theGroup);
41   /// \brief Return identifier of the group the constraint belongs to
42   virtual GroupID group() const
43   { return myGroup; }
44
45   /// \brief Return type of current entity
46   virtual SketchSolver_ConstraintType type() const
47   { return myType; }
48
49   /// \brief Assign numeric parameter of constraint
50   virtual void setValue(const double& theValue);
51
52   /// \brief Change parameter representing the value of constraint
53   void setValueParameter(const ParameterWrapperPtr& theValue);
54   /// \brief Return parametric representation of constraint value
55   const ParameterWrapperPtr& valueParameter() const
56   { return myValueParam; }
57
58   /// \brief Verify the feature is used in the constraint
59   virtual bool isUsed(FeaturePtr theFeature) const;
60   /// \brief Verify the attribute is used in the constraint
61   virtual bool isUsed(AttributePtr theAttribute) const;
62
63   /// \brief Compare current constraint with other
64   virtual bool isEqual(const ConstraintWrapperPtr& theOther);
65
66   /// \brief Update values of parameters of this constraint by the parameters of given one
67   /// \return \c true if some parameters change their values
68   virtual bool update(const std::shared_ptr<SketchSolver_IConstraintWrapper>& theOther);
69
70 private:
71   ConstraintID     myID;
72   GroupID          myGroup;
73   SketchSolver_ConstraintType myType;
74   ParameterWrapperPtr myValueParam;
75   std::list<GCSConstraintPtr> myGCSConstraints;
76 };
77
78 #endif