X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_Utils.h;h=cc0817fac079fd3dedb8a27672254e9b97ede8d5;hb=8edd427af3997521bda72ca3c416cc1d490565d5;hp=52d34e6325b66990cd104e380c0c776a57bfb2a3;hpb=f5d741e54ea475315ee8f7ca822d1ecba030fc21;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_Utils.h b/src/HYDROCurveCreator/CurveCreator_Utils.h index 52d34e63..cc0817fa 100644 --- a/src/HYDROCurveCreator/CurveCreator_Utils.h +++ b/src/HYDROCurveCreator/CurveCreator_Utils.h @@ -23,9 +23,16 @@ #include "CurveCreator_Macro.hxx" #include +#include // TODO: remove #include #include #include +#include + +#include +#include // TODO: remove + +class CurveCreator_ICurve; class CurveCreator_Utils { @@ -52,7 +59,25 @@ public: * \retval gp_Pnt Returns the point clicked in 3D view */ CURVECREATOR_EXPORT static gp_Pnt ConvertClickToPoint( int x, int y, - Handle(V3d_View) theView ); + Handle(V3d_View) theView ); + + /** + * Generates shape on the curve + * \param theCurve a curve object, that contains data + * \param theISection a curve section index + * \param theShape a generated shape + */ + CURVECREATOR_EXPORT static void constructShape( const CurveCreator_ICurve* theCurve, + const int theISection, + TopoDS_Shape& theShape, + std::vector& theAdditional ); + + /** + * Find selected points in the context + * \param theContext the viewer context + */ + CURVECREATOR_EXPORT static std::list getSelectedPoints( + Handle(AIS_InteractiveContext) theContext ); /*! * \brief Sets the local point context for the 3D viewer. @@ -62,6 +87,24 @@ public: Handle(AIS_InteractiveContext) theContext, const bool theOpen ); + /** + * Find the neighbour points by the clicked coordinates + * \param theContext the viewer context. + * \param theContext the V3D view. + * \param theX the X coordinate in the view. + * \param theY the Y coordinate in the view. + * \param thePoint the output point to be append to the model curve + * \param thePoint1 the output point to bound the line where a new point should be inserted + * \param thePoint2 the output point to bound the line where a new point should be inserted + */ + CURVECREATOR_EXPORT static bool getNeighbourPoints( + Handle(AIS_InteractiveContext) theContext, + Handle(V3d_View) theView, + const int theX, const int theY, + gp_Pnt& thePoint, gp_Pnt& thePoint1, + gp_Pnt& thePoint2 ); + +protected: /** * Checks whether the point belongs to the OCC object * \param theObject a line or shape with a bspline inside