Salome HOME
Working with folders which can not be shown empty
[modules/shaper.git] / src / SketchSolver / SketchSolver_Constraint.h
index 6cfe355f8aa159338b4e2d1b8a3c68a6beeafe92..0ceac28125645ed10fc5aa39649ccc1cc1d21695 100644 (file)
@@ -51,6 +51,9 @@ public:
   /// \brief Returns the type of constraint
   virtual int getType() const = 0;
 
+  /// \brief The constraint is made temoparary
+  void makeTemporary() const;
+
   /// \brief Checks the constraint is used by current object
   virtual bool hasConstraint(ConstraintPtr theConstraint) const
   { return theConstraint == myBaseConstraint; }
@@ -63,6 +66,9 @@ public:
   /// \brief Return identifier of SolveSpace entity relating to the attribute
   Slvs_hEntity getId(AttributePtr theAttribute) const;
 
+  /// \brief Adds a feature to constraint and create its analogue in SolveSpace
+  void addFeature(FeaturePtr theFeature);
+
   /// \brief Shows error message
   const std::string& error() const
   { return myErrorMsg; }
@@ -76,6 +82,11 @@ protected:
   /// \param[out] theAttributes list of attributes to be filled
   virtual void getAttributes(double& theValue, std::vector<Slvs_hEntity>& theAttributes);
 
+  /// \brief Verify the attributes of constraint are changed (and constraint need to rebuild)
+  /// \param[in] theConstraint constraint, which attributes should be checked (if NULL, the myBaseConstraint is used)
+  /// \return \c true if some attributes are changed
+  virtual bool checkAttributesChanged(ConstraintPtr theConstraint);
+
   /// \brief This method is used in derived objects to check consistence of constraint.
   ///        E.g. the distance between line and point may be signed.
   virtual void adjustConstraint()