Salome HOME
OCC functionality moving out from the widget
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Utils.h
index 5415214d888de43c4c6af2d82c8e1b600fe249a8..cc0817fac079fd3dedb8a27672254e9b97ede8d5 100644 (file)
 #include "CurveCreator_Macro.hxx"
 
 #include <AIS_InteractiveContext.hxx>
+#include <AIS_InteractiveObject.hxx> // TODO: remove
 #include <V3d_View.hxx>
 #include <gp_Pnt.hxx>
 #include <Geom_Curve.hxx>
+#include <TopoDS_Shape.hxx>
 
 #include <list>
+#include <vector> // TODO: remove
+
+class CurveCreator_ICurve;
 
 class CurveCreator_Utils
 {
@@ -56,6 +61,17 @@ public:
   CURVECREATOR_EXPORT static gp_Pnt ConvertClickToPoint( int x, int y,
                                                          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<Handle_AIS_InteractiveObject>& theAdditional );
+
   /**
    * Find selected points in the context
    * \param theContext the viewer context
@@ -87,6 +103,8 @@ public:
                                         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