Salome HOME
Update groups merging (issue #933)
[modules/shaper.git] / src / SketchSolver / SketchSolver_Group.h
index 79f5f9fe04350c2ec7f5f4c7d0bbe9f3ee4342aa..79181c38288d709e769fe9e4152fa2d37e842d65 100644 (file)
@@ -133,6 +133,12 @@ class SketchSolver_Group
    */
   bool resolveConstraints();
 
+  /** \brief Collect all features applicable for the sketch
+   *  \param theObjects  list of features
+   *  \return list of bolted and sorted features
+   */
+  static std::list<FeaturePtr> selectApplicableFeatures(const std::set<ObjectPtr>& theObjects);
+
 protected:
   /** \brief Removes constraints from the group
    *  \param[in] theConstraint constraint to be removed
@@ -157,17 +163,26 @@ private:
   /// \brief Append given constraint to th group of temporary constraints
   void setTemporary(SolverConstraintPtr theConstraint);
 
+  /// \brief Verifies is the feature valid
+  bool checkFeatureValidity(FeaturePtr theFeature);
+
+  /// \brief Update just changed constraints
+  void updateConstraints();
+
 private:
   Slvs_hGroup myID; ///< Index of the group
   Slvs_hEntity myWorkplaneID; ///< Index of workplane, the group is based on
   CompositeFeaturePtr mySketch; ///< Sketch is equivalent to workplane
   ConstraintConstraintMap myConstraints; ///< List of constraints
   std::set<SolverConstraintPtr> myTempConstraints; ///< List of temporary constraints
+  std::set<ConstraintPtr> myChangedConstraints; ///< List of just updated constraints
 
   StoragePtr myStorage; ///< Container for the set of SolveSpace constraints and their entities
   FeatureStoragePtr myFeatureStorage; ///< Container for the set of SketchPlugin features and their dependencies
 
   SketchSolver_Solver myConstrSolver;  ///< Solver for set of equations obtained by constraints
+
+  bool myPrevSolved; ///< Indicates that previous solving was done correctly
 };
 
 #endif