Salome HOME
Merge remote-tracking branch 'origin/BR_1321_ECW' into BR_DEMO
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ShapeLandCoverMap.cxx
index de07a5b555496cf2dde81591a3fec57647b5b384..66e56301c5ae14eaaaacca2fab8a15bd25b1940e 100644 (file)
@@ -34,7 +34,7 @@
 
 HYDROGUI_ShapeLandCoverMap::HYDROGUI_ShapeLandCoverMap( HYDROGUI_OCCDisplayer* theDisplayer,
                                                         const Handle(AIS_InteractiveContext)& theContext,
-                                                        const Handle_HYDROData_LandCoverMap&  theLandCoverMap,
+                                                        const Handle(HYDROData_LandCoverMap)& theLandCoverMap,
                                                         const int                             theZLayer,
                                                         const bool                            theIsScalarMode )
 : HYDROGUI_Shape( theContext, theLandCoverMap, theZLayer ),
@@ -60,13 +60,19 @@ void HYDROGUI_ShapeLandCoverMap::update( bool theIsUpdateViewer, bool isDeactiva
     setShape( aLandCoverMapShape, false, false );
   }
 
-  Handle(HYDROGUI_LandCoverMapPrs) aLandCoverMapPrs = Handle(HYDROGUI_LandCoverMapPrs)::DownCast( getAISObject() );
+  Handle(HYDROGUI_LandCoverMapPrs) aLandCoverMapPrs = 
+    Handle(HYDROGUI_LandCoverMapPrs)::DownCast( getAISObjects()[0] );
   if ( !aLandCoverMapPrs.IsNull() )
     aLandCoverMapPrs->UpdateColors();
 
   HYDROGUI_Shape::update( theIsUpdateViewer, isDeactivateSelection );
 }
 
+bool HYDROGUI_ShapeLandCoverMap::isScalarMapModeEnabled() const
+{
+  return myIsScalarMapMode;
+}
+
 void HYDROGUI_ShapeLandCoverMap::setScalarMapModeEnabled( const bool theIsToEnable )
 {
   myIsScalarMapMode = theIsToEnable;
@@ -86,8 +92,10 @@ void HYDROGUI_ShapeLandCoverMap::displayShape( const bool theIsUpdateViewer )
   myDisplayer->SetToUpdateColorScale();
 }
 
-Handle_AIS_InteractiveObject HYDROGUI_ShapeLandCoverMap::createShape() const
+QList<Handle(AIS_InteractiveObject)> HYDROGUI_ShapeLandCoverMap::createShape() const
 {
+  QList<Handle(AIS_InteractiveObject)> shapes;
+
   Handle(HYDROData_LandCoverMap) aLandCoverMap = Handle(HYDROData_LandCoverMap)::DownCast( getObject() );
   if ( !aLandCoverMap.IsNull() )
   {
@@ -110,19 +118,13 @@ Handle_AIS_InteractiveObject HYDROGUI_ShapeLandCoverMap::createShape() const
             aLandCoverMapPrs->SetTable( aTable );
 
           // Set color scale
-          OCCViewer_ViewWindow* aWnd = dynamic_cast<OCCViewer_ViewWindow*>( aViewer->getViewManager()->getActiveView() );
-          Handle(V3d_View) aView = aWnd->getViewPort()->getView();
-          if( !aView.IsNull() )
-          {
-            Handle(Aspect_ColorScale) aColorScale = aView->ColorScale();
-            aLandCoverMapPrs->SetColorScale( aColorScale );
-          }
+          aLandCoverMapPrs->SetColorScale( myDisplayer->GetColorScale( aViewerId) );
         }
       }
     }
-    return aLandCoverMapPrs;
+    shapes.append( aLandCoverMapPrs );
   }
-  return NULL;
+  return shapes;
 }
 
 void HYDROGUI_ShapeLandCoverMap::display( const bool theIsUpdateViewer )