Salome HOME
Merge branch 'V8_3_BR' into ngr/python3_dev
[modules/smesh.git] / src / OBJECT / SMESH_ScalarBarActor.cxx
index 7b5eb231ee6db07c51c3a42ddcf8972e843ff914..a45696d7e9a4e6059276eb03d76a41930f92f374 100644 (file)
@@ -115,6 +115,9 @@ SMESH_ScalarBarActor::SMESH_ScalarBarActor() {
 
   // By default monocolor
   myDistributionColoringType = SMESH_MONOCOLOR_TYPE;
+
+  // By default scalar map is shown
+  myTitleOnlyVisibility = false;
   // rnv end
 }
 
@@ -194,19 +197,20 @@ int SMESH_ScalarBarActor::RenderOverlay(vtkViewport *viewport)
     {
     renderedSomething += this->TitleActor->RenderOverlay(viewport);
     }
-  this->ScalarBarActor->RenderOverlay(viewport);
-  this->myDistributionActor->RenderOverlay(viewport);
-  if( this->TextActors == NULL)
-    {
-     vtkWarningMacro(<<"Need a mapper to render a scalar bar");
-     return renderedSomething;
-    }
+  if (!myTitleOnlyVisibility) {
+    this->ScalarBarActor->RenderOverlay(viewport);
+    this->myDistributionActor->RenderOverlay(viewport);
+    if( this->TextActors == NULL)
+      {
+       vtkWarningMacro(<<"Need a mapper to render a scalar bar");
+       return renderedSomething;
+      }
   
-  for (i=0; i<this->NumberOfLabels; i++)
-    {
-    renderedSomething += this->TextActors[i]->RenderOverlay(viewport);
-    }
-
+    for (i=0; i<this->NumberOfLabels; i++)
+      {
+      renderedSomething += this->TextActors[i]->RenderOverlay(viewport);
+      }
+  }  
   renderedSomething = (renderedSomething > 0)?(1):(0);
 
   return renderedSomething;
@@ -321,8 +325,8 @@ int SMESH_ScalarBarActor::RenderOpaqueGeometry(vtkViewport *viewport)
     // rnv begin
     // Customization of the vtkScalarBarActor to show distribution histogram.
     bool distrVisibility =  (numColors == (int)this->myNbValues.size());
-    vtkPoints *distrPts;
-    vtkCellArray *distrPolys;
+    vtkPoints *distrPts = 0;
+    vtkCellArray *distrPolys = 0;
     vtkUnsignedCharArray *distColors = 0;
     int numDistrPts = 0, numPositiveVal=0, maxValue=0;
     if(!distrVisibility)
@@ -574,15 +578,18 @@ int SMESH_ScalarBarActor::RenderOpaqueGeometry(vtkViewport *viewport)
       
       // rnv begin
       // Customization of the vtkScalarBarActor to show distribution histogram.
-      if(myNbValues[i] && myDistributionColoringType == SMESH_MULTICOLOR_TYPE && GetDistributionVisibility() && distrVisibility)
-        {
-          rgb = distColors->GetPointer(3*dcCount); //write into array directly
-          rgb[0] = rgba[0];
-          rgb[1] = rgba[1];
-          rgb[2] = rgba[2];
-          dcCount++;
-        }
+      if ( myDistributionColoringType == SMESH_MULTICOLOR_TYPE &&
+           GetDistributionVisibility() &&
+           distrVisibility &&
+           myNbValues[i] > 0 )
+      {
+        rgb = distColors->GetPointer(3*dcCount); //write into array directly
+        rgb[0] = rgba[0];
+        rgb[1] = rgba[1];
+        rgb[2] = rgba[2];
+        dcCount++;
       }
+    }
 
     // Now position everything properly
     //
@@ -920,3 +927,11 @@ void SMESH_ScalarBarActor::SetDistributionColor (double rgb[3]) {
 void SMESH_ScalarBarActor::GetDistributionColor (double rgb[3]) {
   myDistributionActor->GetProperty()->GetColor(rgb);
 }
+
+void SMESH_ScalarBarActor::SetTitleOnlyVisibility( bool theTitleOnlyVisibility) {
+  myTitleOnlyVisibility = theTitleOnlyVisibility;
+}
+
+bool SMESH_ScalarBarActor::GetTitleOnlyVisibility() {
+  return myTitleOnlyVisibility;
+}