]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Boundary polyline presentation in the viewer is added for Calculation Case operation.
authorrkv <rkv@opencascade.com>
Mon, 11 Nov 2013 10:08:15 +0000 (10:08 +0000)
committerrkv <rkv@opencascade.com>
Mon, 11 Nov 2013 10:08:15 +0000 (10:08 +0000)
src/HYDROGUI/HYDROGUI_CalculationOp.cxx

index bfdfecd607790cddcafdbfd1fe86527dcedd0cb6..54241112d3d13930ca893eb7a8571d82a23b0ed2 100644 (file)
@@ -208,6 +208,23 @@ HYDROGUI_InputPanel* HYDROGUI_CalculationOp::createInputPanel() const
 void HYDROGUI_CalculationOp::onBoundarySelected ( const QString & theObjName )
 {
   // Set the selected boundary polyline to the calculation case
+  Handle(HYDROData_Polyline) anObject;
+  HYDROGUI_Shape* aShape;
+  Handle(AIS_InteractiveContext) aCtx;
+  if ( myPreviewViewManager ) 
+  {
+    if ( OCCViewer_Viewer* aViewer = myPreviewViewManager->getOCCViewer() )
+    {
+      aCtx = aViewer->getAISContext();
+    }
+  }
+  // Remove the old boundary from the operation viewer
+  anObject = myEditedObject->GetBoundaryPolyline();
+  if ( !anObject.IsNull() )
+  {
+    module()->removeObjectShape( HYDROGUI_Module::VMR_PreviewCaseZones, anObject );
+  }
+
   if ( theObjName.trimmed().isEmpty() )
   {
     // No polyline is selected
@@ -219,10 +236,14 @@ void HYDROGUI_CalculationOp::onBoundarySelected ( const QString & theObjName )
       HYDROGUI_Tool::FindObjectByName( module(), theObjName, KIND_POLYLINE );
     if ( !anEntity.IsNull() )
     {
-      Handle(HYDROData_Polyline) anObject = Handle(HYDROData_Polyline)::DownCast( anEntity );
+      anObject = Handle(HYDROData_Polyline)::DownCast( anEntity );
       if ( !anObject.IsNull() )
       {
         myEditedObject->SetBoundaryPolyline( anObject );
+        if ( !aCtx.IsNull() )
+        {
+          showObject( anEntity, aCtx );
+        }
       }
     }
   }
@@ -600,6 +621,9 @@ void HYDROGUI_CalculationOp::createPreview()
     }
   }
 
+  // Get a boundary polyline if any
+  aSeq.Append( myEditedObject->GetBoundaryPolyline() );
+
   module()->removeViewShapes( HYDROGUI_Module::VMR_PreviewCaseZones );
 
   if ( !myActiveViewManager )