X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSketchPlugin%2FSketchPlugin_Tools.h;h=730d865b9127c4c9eee76c2995c18a862cd4bc01;hb=2cb4458b35ae6c9561a35b3b18dbdb673d0c12c9;hp=e06cc163950cc207f402fc152176bd6c9b20a185;hpb=87b6a30a3afb8fb32e7e43ade8d9c947d9eb1684;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Tools.h b/src/SketchPlugin/SketchPlugin_Tools.h index e06cc1639..730d865b9 100644 --- a/src/SketchPlugin/SketchPlugin_Tools.h +++ b/src/SketchPlugin/SketchPlugin_Tools.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2019 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef SKETCHPLUGIN_TOOLS_H_ @@ -28,7 +27,9 @@ #include #include +class SketchPlugin_Constraint; class SketchPlugin_Feature; +class SketchPlugin_Sketch; namespace SketchPlugin_Tools { @@ -46,9 +47,11 @@ std::set findCoincidentConstraints(const FeaturePtr& theFeature); /// \param[in] theStartCoin coincidence feature /// \param[in] theAttr attribute name /// \param[out] theList list of lines +/// \param[in] theIsAttrOnly if true includes only coincidences with attributes. void findCoincidences(const FeaturePtr theStartCoin, const std::string& theAttr, - std::set& theList); + std::set& theList, + const bool theIsAttrOnly = false); /// Find all features the point is coincident to. std::set findFeaturesCoincidentToPoint(const AttributePoint2DPtr& thePoint); @@ -58,17 +61,47 @@ std::set findPointsCoincidentToPoint(const AttributePoint2D void resetAttribute(SketchPlugin_Feature* theFeature, const std::string& theId); +/// Create new constraint between given attributes +/// \param[in] theSketch a sketch where the constraint will be created +/// \param[in] theConstraintId a constraint identifier +/// \param[in] theFirstAttribute an attribute of further constraint +/// \param[in] theSecondAttribute an attribute of further constraint +FeaturePtr createConstraintAttrAttr(SketchPlugin_Sketch* theSketch, + const std::string& theConstraintId, + const AttributePtr& theFirstAttribute, + const AttributePtr& theSecondAttribute); + +/// Create new constraint between given attribute and object +/// \param[in] theSketch a sketch where the constraint will be created +/// \param[in] theConstraintId a constraint identifier +/// \param[in] theFirstAttribute an attribute of further constraint +/// \param[in] theSecondObject an attribute of further constraint +FeaturePtr createConstraintAttrObject(SketchPlugin_Sketch* theSketch, + const std::string& theConstraintId, + const AttributePtr& theFirstAttribute, + const ObjectPtr& theSecondObject); + +/// Create new constraint between given objects +/// \param[in] theSketch a sketch where the constraint will be created +/// \param[in] theConstraintId a constraint identifier +/// \param[in] theFirstObject an attribute of further constraint +/// \param[in] theSecondObject an attribute of further constraint +FeaturePtr createConstraintObjectObject(SketchPlugin_Sketch* theSketch, + const std::string& theConstraintId, + const ObjectPtr& theFirstObject, + const ObjectPtr& theSecondObject); + /// 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); +void createCoincidenceOrTangency(SketchPlugin_Feature* theFeature, + const std::string& theId, + const AttributePtr theAttr, + const ObjectPtr theObject, + const bool theIsCanBeTangent); /// Creates passing point or tangent curve basing on the given attributes are initialized. /// \param[in] theRefAttr prefered attribute to be converted @@ -79,6 +112,10 @@ void convertRefAttrToPointOrTangentCurve(const AttributeRefAttrPtr& theRefA const AttributePtr& theDefaultAttr, std::shared_ptr& theTangentCurve, std::shared_ptr& thePassingPoint); + + +/// Calculate global coordinates for flyout point of Length constraint +GeomPnt2dPtr flyoutPointCoordinates(const std::shared_ptr& theConstraint); }; // namespace SketchPlugin_Tools #endif // SKETCHPLUGIN_TOOLS_H_ \ No newline at end of file