Salome HOME
Pipe validator fix
[modules/shaper.git] / src / SketchSolver / SketchSolver_Storage.h
index 7cd073f70f13dc59bf47eff3d805c976dcfb0d08..454044c8826f42fea46eee82a5c57d6a89751558 100644 (file)
@@ -19,6 +19,7 @@
 #include <SketchPlugin_Constraint.h>
 
 class SketchSolver_ConstraintDistance;
+class SketchSolver_ConstraintFixedArcRadius;
 typedef std::map<EntityWrapperPtr, std::set<EntityWrapperPtr> > CoincidentPointsMap;
 
 
@@ -113,6 +114,10 @@ public:
   /// \brief Check the features is not removed
   bool isConsistent() const;
 
+  /// \brief Check the storage has constraints
+  bool isEmpty() const
+  { return myConstraintMap.empty(); }
+
   /// \brief Check the entity is fixed.
   ///        If the point is under verification, all coincident points are checked too.
   SKETCHSOLVER_EXPORT bool isFixed(EntityWrapperPtr theEntity) const;
@@ -126,6 +131,8 @@ public:
 
   /// \brief Initialize solver by constraints, entities and parameters
   virtual void initializeSolver(SolverPtr theSolver) = 0;
+  /// \brief Return list of conflicting constraints
+  std::set<ObjectPtr> getConflictingConstraints(SolverPtr theSolver) const;
 
   /// \brief Update SketchPlugin features after resolving constraints
   /// \param theFixedOnly [in]  if \c true the fixed points will be updated only
@@ -216,6 +223,7 @@ protected:
 
   // to be able to update entities from constraints
   friend class SketchSolver_ConstraintDistance;
+  friend class SketchSolver_ConstraintFixedArcRadius;
 };
 
 typedef std::shared_ptr<SketchSolver_Storage> StoragePtr;