+
+ /**
+ * Find attribute of object which corresponds to the given shape
+ * \param theObj - an object
+ * \param theShape - a Shape
+ * \param theSketch - a Sketch to get a plane of converting to 2d
+ */
+ static AttributePtr findAttributeBy2dPoint(ObjectPtr theObj, const TopoDS_Shape theShape,
+ FeaturePtr theSketch);
+
+ /**
+ * Finds an attribute value in attribute reference attribute value
+ * \param theAttribute - an attribure reference filled with an attribute
+ * \param theWorkshop a reference to workshop
+ * \return a geometry shape
+ */
+ static std::shared_ptr<GeomAPI_Shape> findShapeBy2DPoint(const AttributePtr& theAttribute,
+ ModuleBase_IWorkshop* theWorkshop);
+
+ /**
+ * Returns point of coincidence feature
+ * \param theFeature the coincidence feature
+ * \param theAttribute the attribute name
+ */
+ 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 theFeature the coincidence feature
+ * \param thePoint a 2d point
+ * \return the coincidence feature or null
+ */
+ static FeaturePtr findFirstCoincidence(const FeaturePtr& theFeature,
+ std::shared_ptr<GeomAPI_Pnt2d> thePoint);
+
+ /**
+ * Returns list of features connected in a councedence feature point
+ * \param theStartCoin the coincidence feature
+ * \param theList a list which collects lines features
+ * \param theCoincidencies a list of coincidence features
+ * \param theAttr the attribute name
+ */
+ static void findCoincidences(FeaturePtr theStartCoin, QList<FeaturePtr>& theList,
+ QList<FeaturePtr>& theCoincidencies,
+ std::string theAttr);
+
+ /**
+ * Returns point of a coincedence
+ * \param theStartCoin the coincedence feature
+ */
+ static std::shared_ptr<GeomAPI_Pnt2d> getCoincedencePoint(FeaturePtr theStartCoin);
+
+ /// Sends redisplay event for all sub-features of the composite. Flush it.
+ static void sendSubFeaturesEvent(const CompositeFeaturePtr& theComposite,
+ const Events_ID theId);
+
+ /**
+ * Returns true if the object is a sketch entity, where auxiliary attribute has true vlaue
+ * \param theObject a result or feature
+ * \return boolean result
+ */
+ static bool isAuxiliarySketchEntity(const ObjectPtr& theObject);