Salome HOME
Issue #2024: Redesign of circle and arc of circle
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_Tools.h
index 9637b5d09929120b118aed70ff96f9b048ae0614..622b63d68705d6b06e44e28602d5e4e51a0ee905 100644 (file)
 #include <GeomAPI_Pnt2d.h>
 
 #include <ModelAPI_Feature.h>
+#include <ModelAPI_Attribute.h>
+#include <GeomDataAPI_Point2D.h>
+
+class SketchPlugin_Feature;
 
 namespace SketchPlugin_Tools {
 
-/// Clears text expressions for all attributes of the feature 
+/// Clears text expressions for all attributes of the feature
 void clearExpressions(FeaturePtr theFeature);
 
 /// \return coincidence point
 /// \param[in] theStartCoin coincidence feature
 std::shared_ptr<GeomAPI_Pnt2d> getCoincidencePoint(const FeaturePtr theStartCoin);
 
+/// Find all Coincident constraints referred to the feature or its attribute
+std::set<FeaturePtr> findCoincidentConstraints(const FeaturePtr& theFeature);
+
 /// Finds lines coincident at point
 /// \param[in] theStartCoin coincidence feature
 /// \param[in] theAttr attribute name
@@ -28,6 +35,22 @@ void findCoincidences(const FeaturePtr theStartCoin,
                       const std::string& theAttr,
                       std::set<FeaturePtr>& theList);
 
+/// Find all features the point is coincident to.
+std::set<FeaturePtr> findFeaturesCoincidentToPoint(const AttributePoint2DPtr& thePoint);
+
+void resetAttribute(SketchPlugin_Feature* theFeature, const std::string& theId);
+
+/// Creates coincidence or tangent constraint.
+/// \param[in] theFeature to get selected attribute or object
+/// \param[in] theId ID of attribute where selection is.
+/// \param[in] theObject object for constraint
+/// \param[in] theIsCanBeTangent if true constraint can be tangent or coincidence, depending on
+///                              the selection in the attribute with passed ID.
+void createConstraint(SketchPlugin_Feature* theFeature,
+                      const std::string& theId,
+                      const AttributePtr theAttr,
+                      const ObjectPtr theObject,
+                      const bool theIsCanBeTangent);
 }; // namespace SketchPlugin_Tools
 
 #endif // SKETCHPLUGIN_TOOLS_H_
\ No newline at end of file