Salome HOME
refs #1501
authorisn <isn@opencascade.com>
Tue, 12 Dec 2017 14:21:33 +0000 (17:21 +0300)
committerisn <isn@opencascade.com>
Wed, 13 Dec 2017 18:38:04 +0000 (21:38 +0300)
src/HYDROGUI/HYDROGUI_OCCDisplayer.cxx

index a52182d5abff1ac25343418a3599daaf4eb5cf14..7d609e2860c92b341fb07daa61892fd336a1ec97 100644 (file)
@@ -420,14 +420,33 @@ void HYDROGUI_OCCDisplayer::UpdateColorScale( const OCCViewer_Viewer* theViewer
   OCCViewer_ViewWindow* aWnd = dynamic_cast<OCCViewer_ViewWindow*>( theViewer->getViewManager()->getActiveView() );
   Handle(V3d_View) aView = aWnd->getViewPort()->getView();
       
+
+  HYDROGUI_Module* aModule = module();
   int aViewerId = (size_t)theViewer;//TODO: check if viewer id is correct
-  bool isLandCoverColoringOn = module()->isLandCoversScalarMapModeOn( aViewerId );
+  bool isLandCoverColoringOn = aModule->isLandCoversScalarMapModeOn( aViewerId );
     
-  QList<HYDROGUI_Shape*> aLandCoverMapShapes = module()->getObjectShapes( aViewerId, KIND_LAND_COVER_MAP );
-  QList<HYDROGUI_Shape*> aBathShapes = module()->getObjectShapes( aViewerId, KIND_BATHYMETRY );
-
-  bool isDisplayColorScale = !aBathShapes.empty() || isLandCoverColoringOn;
+  QList<HYDROGUI_Shape*> aLandCoverMapShapes = aModule->getObjectShapes( aViewerId, KIND_LAND_COVER_MAP );
+  QList<HYDROGUI_Shape*> aBathShapes = aModule->getObjectShapes( aViewerId, KIND_BATHYMETRY );
 
+  bool isDisplayColorScale = false;
+  foreach (HYDROGUI_Shape* shape, aLandCoverMapShapes)
+  {
+    if (aModule->isObjectVisible(aViewerId, shape->getObject()))
+    {
+      isDisplayColorScale = true;
+      break;
+    }
+  }
+  if (!isDisplayColorScale)
+    foreach (HYDROGUI_Shape* shape, aBathShapes)
+    {
+      if (aModule->isObjectVisible(aViewerId, shape->getObject()))
+      {
+        isDisplayColorScale = true;
+        break;
+      }
+    }
+  
   Standard_Real aColorScaleMin = 0, aColorScaleMax = 1;
 
   // Get range