]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/SketchSolver/SketchSolver_Group.h
Salome HOME
Add tools
[modules/shaper.git] / src / SketchSolver / SketchSolver_Group.h
index 13f614c754cfc3fc8099e434f45b4a428e9c3592..507386d03e9928b83b0c578333422b25ec10b097 100644 (file)
@@ -133,15 +133,19 @@ 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
    */
   void removeConstraint(ConstraintPtr theConstraint);
 
-  /** \brief Remove all temporary constraint after computation finished
-   *  \param[in] theRemoved  indexes of constraints to be removed. If empty, all temporary constraints should be deleted
-   */
+  /// \brief Remove all temporary constraint after computation finished
   void removeTemporaryConstraints();
 
 private:
@@ -157,12 +161,23 @@ 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();
+
+  /// \brief Update Multi-Translation/-Rotation constraints due to multi coincidence appears/disappears
+  void notifyMultiConstraints();
+
 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::map<AttributePtr, SolverConstraintPtr> myParametricConstraints; ///< List of parametric 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