Salome HOME
bug #237: fatal error on profile
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_VTKPrsDisplayer.cxx
index 22912ce372de41eb7ad5ff7359aa97236bc01e1c..8b373317e81242cbaae2fafeddba21582cf7f389 100644 (file)
@@ -26,6 +26,7 @@
 #include "HYDROGUI_Module.h"
 #include "HYDROGUI_VTKPrs.h"
 #include "HYDROGUI_VTKPrsBathymetryDriver.h"
+#include "HYDROGUI_VTKPrsShapeDriver.h"
 #include "HYDROGUI_Tool.h"
 
 #include "HYDROData_Tool.h"
@@ -39,6 +40,7 @@
 
 #include <vtkLookupTable.h>
 #include <vtkRenderer.h>
+#include <vtkTextProperty.h>
 #include <vtkWindow.h>
 #include <vtkActor2DCollection.h>
 
 //#define SATURATION_START 1.0 
 //#define SATURATION_END   0.4
 
-#define HUE_START 0.0
-#define HUE_END   0.7 
+#define HUE_START 0.7
+#define HUE_END   0.0 
 #define SATURATION_START 1.0 
 #define SATURATION_END   1.0
 
 HYDROGUI_VTKPrsDisplayer::HYDROGUI_VTKPrsDisplayer( HYDROGUI_Module* theModule )
-: HYDROGUI_AbstractDisplayer( theModule ), myDriver( NULL )
+: HYDROGUI_AbstractDisplayer( theModule ), myDriver( NULL ), myShapeDriver( NULL )
 {
 }
 
@@ -304,6 +306,14 @@ HYDROGUI_VTKPrsDriver* HYDROGUI_VTKPrsDisplayer::getDriver( const int theViewId,
     }
     aDriver = myDriver;
   }
+  else
+  {
+    if ( !myShapeDriver )
+    {
+      myShapeDriver = new HYDROGUI_VTKPrsShapeDriver( myScalarBars[ theViewId ] );
+    }
+    aDriver = myShapeDriver;
+  }
 
   return aDriver;
 }
@@ -339,6 +349,9 @@ void HYDROGUI_VTKPrsDisplayer::createScalarBar( const int theViewId )
     aTable->Build();
     vtkSmartPointer<vtkScalarBarActor> aScalarBar = vtkScalarBarActor::New();
     aScalarBar->SetLookupTable( aTable );
+    aScalarBar->SetNumberOfLabels( NB_COLORS * 0.75 );
+    aScalarBar->SetWidth( aScalarBar->GetWidth() / 1.5 );
+    aScalarBar->SetTextureGridWidth( aScalarBar->GetTextureGridWidth() * 4. );
     aTable->Delete();
     myScalarBars.insert( theViewId, aScalarBar );
   }