Salome HOME
Using test for testing number of sub-shapes.
[modules/shaper.git] / src / SketchSolver / PlaneGCSSolver / PlaneGCSSolver_Storage.h
index e82e1d6e431f7700d1734b0b88bed94ace1c7182..ccf318aef52130d938a635c43c272a0cbdd61a58 100644 (file)
@@ -100,15 +100,29 @@ private:
   /// \param theArc [in]  updated arc
   void processArc(const EntityWrapperPtr& theArc);
 
+  /// \brief Adjust parameters of points coincident with the given
+  void updateCoincident(const EntityWrapperPtr& thePoint);
+
+  /// \brief Verifies the constraint should not be added into the solver
+  ///
+  /// This is a workaround method to avoid some kinds of conflicting constraints:
+  ///   * symmetric of two points placed on the mirror line (do not add perpendicular constraint)
+  bool isRedundant(GCSConstraintPtr theCheckedConstraint,
+                   ConstraintWrapperPtr theParentConstraint,
+                   std::list<std::set<double*> >& theCoincidentPoints) const;
+
 private:
   GCS::VEC_pD                      myParameters;         ///< list of parameters
   GCS::VEC_pD                      myConst;              ///< list of constants
   EntityID                         myEntityLastID;       ///< identifier of last added entity
+  ConstraintID                     myConstraintLastID;   ///< identifier of last added constraint
 
+  /// additional constraints for correct processing of the arcs
   std::map<EntityWrapperPtr, std::vector<GCSConstraintPtr> >
-                                  myArcConstraintMap;    ///< additional constraints for correct processing of the arcs
+                                   myArcConstraintMap;
 
-  std::list<GCSConstraintPtr>      myRemovedConstraints; ///< list of removed constraints to notify solver
+  /// list of removed constraints to notify solver
+  std::list<GCSConstraintPtr>      myRemovedConstraints;
 };
 
 #endif