class Handle_V3d_View;
class ModuleBase_ViewerPrs;
+class ModuleBase_IWorkshop;
class GeomDataAPI_Point2D;
class GeomAPI_Pln;
class GeomAPI_Pnt2d;
Handle(V3d_View) theView,
double& theX, double& theY);
+ /// \brief Converts the 3D point to the projected coodinates on the sketch plane.
+ /// \param theSketch the sketch feature
+ /// \param thePnt the 3D point in the viewer
+ /// \returns the converted point object
+ static std::shared_ptr<GeomAPI_Pnt2d> convertTo2D(FeaturePtr theSketch, const std::shared_ptr<GeomAPI_Pnt>& thePnt);
+
/// \brief Converts the 2D projected coodinates on the sketch plane to the 3D point.
/// \param theX the X coordinate
/// \param theY the Y coordinate
/// \param theY Y coordinate
/// \param theTolerance tolerance
/// \param theIgnore list of features which has to be ignored
- static std::shared_ptr<GeomDataAPI_Point2D> findAttributePoint(CompositeFeaturePtr theSketch,
- double theX, double theY, double theTolerance, const QList<FeaturePtr>& theIgnore = QList<FeaturePtr>());
+ //static std::shared_ptr<GeomDataAPI_Point2D> findAttributePoint(CompositeFeaturePtr theSketch,
+ // double theX, double theY, double theTolerance, const QList<FeaturePtr>& theIgnore = QList<FeaturePtr>());
/// Returns a point attribute of the feature by the coordinates if it is
/// \param theFeature the feature
/// \param theX the horizontal coordinate
/// \param theY the vertical coordinate
- static std::shared_ptr<GeomDataAPI_Point2D> getFeaturePoint(FeaturePtr theFeature,
- double theX, double theY);
+ //static std::shared_ptr<GeomDataAPI_Point2D> getFeaturePoint(FeaturePtr theFeature,
+ // double theX, double theY);
/// \brief Save the double to the feature. If the attribute is double, it is filled.
/// \param theFeature the feature
static std::shared_ptr<GeomAPI_Pnt> point3D(std::shared_ptr<GeomAPI_Pnt2d> thePoint2D,
CompositeFeaturePtr theSketch);
+ /// Finds a line (arc or circle) by given edge
+ /// \param theShape an edge
+ /// \param theObject a selected result object
+ /// \param theSketch a sketch feature
+ /// \return result of found feature or NULL
+ static ResultPtr findFixedObjectByExternal(const TopoDS_Shape& theShape,
+ const ObjectPtr& theObject,
+ CompositeFeaturePtr theSketch);
+
/// Creates a line (arc or circle) by given edge
/// Created line will have fixed constraint
/// \param theShape an edge
* \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);
+ 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
+ * \return a geometry shape
+ */
+ static GeomShapePtr findShapeBy2DPoint(const AttributePtr& theAttribute,
+ ModuleBase_IWorkshop* theWorkshop);
protected:
/// Returns an object that is under the mouse point. Firstly it checks the highlighting,