Salome HOME
Fix for the issue #593: do not remove naming attribute, but use TNaming_Builder for...
[modules/shaper.git] / src / SketchSolver / SketchSolver_Group.h
index dceff0581bcc2cf69baa1080e1f6505fed21253e..79f5f9fe04350c2ec7f5f4c7d0bbe9f3ee4342aa 100644 (file)
@@ -16,7 +16,7 @@
 #include <SketchPlugin_Constraint.h>
 #include <ModelAPI_Data.h>
 #include <ModelAPI_Feature.h>
-
+#include <ModelAPI_AttributeRefList.h>
 
 #include <memory>
 #include <list>
@@ -70,6 +70,9 @@ class SketchSolver_Group
     return mySketch->data() && mySketch->data()->isValid();
   }
 
+  /// \brief Verifies the constraint is complex, i.e. it needs another constraints to be created before
+  static bool isComplexConstraint(FeaturePtr theConstraint);
+
   /** \brief Adds or updates a constraint in the group
    *  \param[in] theConstraint constraint to be changed
    *  \return \c true if the constraint added or updated successfully
@@ -148,6 +151,12 @@ private:
    */
   bool addWorkplane(CompositeFeaturePtr theSketch);
 
+  /// \brief Apply temporary rigid constraints for the list of features
+  void fixFeaturesList(AttributeRefListPtr theList);
+
+  /// \brief Append given constraint to th group of temporary constraints
+  void setTemporary(SolverConstraintPtr theConstraint);
+
 private:
   Slvs_hGroup myID; ///< Index of the group
   Slvs_hEntity myWorkplaneID; ///< Index of workplane, the group is based on