]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Fix for issue 0020114: EDF VISU 918(Impossible to create a new clipping plane on...
authorrnv <rnv@opencascade.com>
Thu, 15 Jan 2009 12:32:29 +0000 (12:32 +0000)
committerrnv <rnv@opencascade.com>
Thu, 15 Jan 2009 12:32:29 +0000 (12:32 +0000)
src/VISUGUI/VisuGUI_ClippingDlg.cxx

index 68168fe18dbafdb5b0c39fe659b922ce0701dfe8..fa46406cac8e9181e97083393c2909698b646e85 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "VISU_Prs3d_i.hh"
 #include "VISU_Result_i.hh"
+#include "VISU_ColoredPrs3dHolder_i.hh"
 
 #include "VISU_PipeLine.hxx"
 
@@ -614,7 +615,19 @@ void VisuGUI_ClippingDlg::onSelectionChanged()
     if (!anIO.IsNull()) 
       myIO = anIO;
 
-    SetPrs3d(dynamic_cast<VISU::Prs3d_i*>(aBase));
+    //----
+    // rnv: fix for issue 0020114 (EDF VISU 918 : Impossible to 
+    // create a new clipping plane on field presentation)
+    // set last visited presentation from holder as myPrs3d
+    VISU::ColoredPrs3dHolder_i* aHolder = dynamic_cast<VISU::ColoredPrs3dHolder_i*>(aBase);
+    VISU::Prs3d_i* aPrs3d = NULL;
+    if(aHolder) 
+      aPrs3d = aHolder->GetPrs3dDevice();
+    else
+      aPrs3d = dynamic_cast<VISU::Prs3d_i*>(aBase);
+    //----
+
+    SetPrs3d(aPrs3d);
     if (myPrs3d) {
       std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(false));
       myPlanes.clear();