Salome HOME
Merge branch 'BR_LCM_COMP' into HEAD
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_SplitPolylinesOp.cxx
index d6556fbafd290457137764ebfd5f4d8ef492d42c..ff9f45c210f6a55387b94329ff61ae4d820d046d 100644 (file)
@@ -26,6 +26,8 @@
 #include <LightApp_Application.h>
 #include <OCCViewer_ViewModel.h>
 #include <OCCViewer_ViewManager.h>
+#include <SUIT_Desktop.h>
+#include <SUIT_MessageBox.h>
 #include <gp_Pnt2d.hxx>
 #include <BRepLib_MakeVertex.hxx>
 #include <BRep_Builder.hxx>
@@ -79,23 +81,34 @@ bool HYDROGUI_SplitPolylinesOp::processApply( int& theUpdateFlags,
   if ( !aPanel )
     return false;
 
-  QString aName = aPanel->GetResultName();
+  //TODO: QString aName = aPanel->GetResultName();
   Handle( HYDROData_PolylineXY ) aMainPolyline = aPanel->GetMainPolyline();
   Handle( HYDROData_PolylineXY ) aToolPolyline = aPanel->GetToolPolyline();
   HYDROData_SequenceOfObjects aPolylinesList = aPanel->GetPolylines();
   gp_Pnt2d aPoint = aPanel->GetPoint();
+  double aTolerance = 1E-2; //TODO
 
   HYDROData_PolylineOperator anOp;
   switch( aPanel->GetMode() )
   {
   case HYDROGUI_SplitPolylinesDlg::ByPoint:
-    anOp.Split( doc(), aName.toLatin1().data(), aMainPolyline, aPoint );
+    anOp.Split( doc(), aMainPolyline, aPoint, aTolerance );
     break;
   case HYDROGUI_SplitPolylinesDlg::ByTool:
-    anOp.Split( doc(), aName.toLatin1().data(), aMainPolyline, aToolPolyline );
+  {
+    bool isIntersected = false;
+    anOp.Split( doc(), aMainPolyline, aToolPolyline, aTolerance, isIntersected);
+
+    if (!isIntersected)
+    {
+      const QString aTitle = tr("SPLIT_POLYLINE_BY_TOOL_WARNING_TITLE");
+      const QString aMsg = tr("SPLIT_POLYLINE_BY_TOOL_WARNING_MSG");
+      SUIT_MessageBox::warning(module()->getApp()->desktop(), aTitle, aMsg);
+    }
     break;
+  }
   case HYDROGUI_SplitPolylinesDlg::Split:
-    anOp.Split( doc(), aName.toLatin1().data(), aPolylinesList );
+    anOp.Split( doc(), aPolylinesList, aTolerance );
     break;
   }