- * \return \c true if the entity updated successfully
- */
- bool updateEntity(boost::shared_ptr<SketchPlugin_Feature> theFeature);
-
-private:
- class SketchSolver_ConstraintGroup;
-
- /** \brief Searches list of groups which interact with specified constraint
- * \param[in] theConstraint constraint to be found
- * \param[out] theGroups list of group indexes interacted with constraint
- */
- void findGroups(boost::shared_ptr<SketchPlugin_Constraint> theConstraint,
- std::vector<Slvs_hGroup>& theGroupIDs) const;
-
- /** \brief Searches in the list of groups the workplane which constains specified constraint
- * \param[in] theConstraint constraint to be found
- * \return workplane contains the constraint
- */
- boost::shared_ptr<SketchPlugin_Sketch> findWorkplaneForConstraint(
- boost::shared_ptr<SketchPlugin_Constraint> theConstraint) const;
-
-private:
- static SketchSolver_ConstraintManager* _self; ///< Self pointer to implement singleton functionality
- std::vector<SketchSolver_ConstraintGroup> myGroups; ///< Groups of constraints
-};
-
-
-/** \class SketchSolver_ConstraintGroup
- * \ingroup DataModel
- * \brief Keeps the group of constraints which based on the same entities
- */
-class SketchSolver_ConstraintManager::SketchSolver_ConstraintGroup
-{
-public:
- /** \brief New group based on specified workplane
- */
- SketchSolver_ConstraintGroup(boost::shared_ptr<SketchPlugin_Sketch> theWorkplane);
-
- ~SketchSolver_ConstraintGroup();
-
- /// \brief Returns group's unique identifier
- const Slvs_hGroup& getId() const
- {return myID;}
-
- /** \brief Adds a constraint into the group
- * \param[in] theConstraint constraint to be added
- * \return \c true if the constraint added successfully
- */
- bool addConstraint(boost::shared_ptr<SketchPlugin_Constraint> theConstraint);
-
- /** \brief Removes a constraint into the group
- * \param[in] theConstraint constraint to be removed
- * \return \c true if the constraint removed successfully