Salome HOME
"2.11 Constraint with a point from the intersection between an outer edge and plane...
[modules/shaper.git] / src / PartSet / PartSet_Tools.h
index 438135840c698b4fcb7aac3faefe039fa99d38fd..310ac57a7ae929a9792bb6cddfa7665335b7d888 100755 (executable)
@@ -40,6 +40,15 @@ class GeomAPI_Vertex;
  */
 class PARTSET_EXPORT PartSet_Tools
 {
+public:
+  /// \enum ConstraintVisibleState types of constraints which visible state can be
+  /// changed in the sketch widget
+  enum ConstraintVisibleState
+  {
+    Geometrical = 0, // all constrains excepting dimensional
+    Dimensional // lenght, distance, radius and angle constraints
+  };
+
  public:
   /// Converts the 2D screen point to the 3D point on the view according to the point of view
   /// \param thePoint a screen point
@@ -199,6 +208,18 @@ class PARTSET_EXPORT PartSet_Tools
   static std::shared_ptr<GeomAPI_Pnt2d> getPoint(std::shared_ptr<ModelAPI_Feature>& theFeature,
                                                  const std::string& theAttribute);
 
+  /**
+  * Gets all references to the feature, take coincidence constraint features, get point 2d attributes
+  * and compare the point value to be equal with the given. Returns the first feature, which has
+  * equal points.
+  * \param theSearchInResults a flag whether the conicidence feature shoudl be searched in
+  * references of the feature results.
+  * \return the coincidence feature or null
+  */
+  static FeaturePtr findFirstCoincidence(const FeaturePtr& theFeature,
+                                         std::shared_ptr<GeomAPI_Pnt2d> thePoint,
+                                         const bool theSearchInResults = false);
+
   /**
   * Returns list of features connected in a councedence feature point
   * \param theStartCoin the coincidence feature