Salome HOME
Fix for the bug #45: check and warning when the same image is used in 2 arguments.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImmersibleZoneOp.cxx
index ecf6b2836e40ca5ef1e841bbde1ffe0f7c62fef8..3e9fd482bbee6b2f055c3c4c33e747f5825c59ed 100644 (file)
@@ -31,7 +31,7 @@
 
 #include <HYDROData_Bathymetry.h>
 #include <HYDROData_Iterator.h>
-#include <HYDROData_Polyline.h>
+#include <HYDROData_PolylineXY.h>
 
 #include <OCCViewer_ViewManager.h>
 #include <OCCViewer_ViewModel.h>
@@ -86,7 +86,7 @@ void HYDROGUI_ImmersibleZoneOp::startOperation()
       aFillingColor = myEditedObject->GetFillingColor();
       aBorderColor = myEditedObject->GetBorderColor();
 
-      Handle(HYDROData_Polyline) aRefPolyline = myEditedObject->GetPolyline();
+      Handle(HYDROData_PolylineXY) aRefPolyline = myEditedObject->GetPolyline();
       if ( !aRefPolyline.IsNull() )
         aSelectedPolyline = aRefPolyline->GetName();
 
@@ -99,11 +99,11 @@ void HYDROGUI_ImmersibleZoneOp::startOperation()
   // collect information about existing closed polylines
   QStringList aPolylines;
 
-  HYDROData_Iterator anIter( doc(), KIND_POLYLINE );
+  HYDROData_Iterator anIter( doc(), KIND_POLYLINEXY );
   for ( ; anIter.More(); anIter.Next() )
   {
-    Handle(HYDROData_Polyline) aPolylineObj = 
-      Handle(HYDROData_Polyline)::DownCast( anIter.Current() );
+    Handle(HYDROData_PolylineXY) aPolylineObj = 
+      Handle(HYDROData_PolylineXY)::DownCast( anIter.Current() );
     if ( aPolylineObj.IsNull() || !aPolylineObj->IsClosed() )
       continue;
 
@@ -195,14 +195,14 @@ bool HYDROGUI_ImmersibleZoneOp::processApply( int& theUpdateFlags,
   if ( aZoneObj.IsNull() )
     return false;
 
-  Handle(HYDROData_Polyline) aZonePolyline;
+  Handle(HYDROData_PolylineXY) aZonePolyline;
   Handle(HYDROData_Bathymetry) aZoneBathymetry;
 
   QString aPolylineName = aPanel->getPolylineName();
   if ( !aPolylineName.isEmpty() )
   {
-    aZonePolyline = Handle(HYDROData_Polyline)::DownCast(
-      HYDROGUI_Tool::FindObjectByName( module(), aPolylineName, KIND_POLYLINE ) );
+    aZonePolyline = Handle(HYDROData_PolylineXY)::DownCast(
+      HYDROGUI_Tool::FindObjectByName( module(), aPolylineName, KIND_POLYLINEXY ) );
   }
 
   QString aBathymetryName = aPanel->getBathymetryName();
@@ -221,6 +221,7 @@ bool HYDROGUI_ImmersibleZoneOp::processApply( int& theUpdateFlags,
 
   aZoneObj->SetPolyline( aZonePolyline );
   aZoneObj->SetBathymetry( aZoneBathymetry );
+  aZoneObj->Update();
 
   closePreview();
 
@@ -241,11 +242,11 @@ void HYDROGUI_ImmersibleZoneOp::onCreatePreview( const QString& thePolylineName
   TopoDS_Wire aWire;
   TopoDS_Shape aShape;
 
-  Handle(HYDROData_Polyline) aPolyline = Handle(HYDROData_Polyline)::DownCast(
-    HYDROGUI_Tool::FindObjectByName( module(), thePolylineName, KIND_POLYLINE ) );
+  Handle(HYDROData_PolylineXY) aPolyline = Handle(HYDROData_PolylineXY)::DownCast(
+    HYDROGUI_Tool::FindObjectByName( module(), thePolylineName, KIND_POLYLINEXY ) );
   if ( !aPolyline.IsNull() )
   {
-    aShape = aPolyline->GetTopShape();
+    aShape = aPolyline->GetShape();
     if ( aShape.ShapeType() == TopAbs_WIRE ) {
       aWire = TopoDS::Wire( aShape );
     }