#include "HYDROGUI_ShapeLandCoverMap.h"
#include "HYDROGUI_OCCDisplayer.h"
#include "HYDROGUI_LandCoverMapPrs.h"
+#include "HYDROGUI_Tool.h"
+#include "HYDROGUI_Module.h"
+
+#include <LightApp_Application.h>
+#include <OCCViewer_ViewManager.h>
+#include <OCCViewer_ViewModel.h>
+#include <OCCViewer_ViewWindow.h>
+#include <OCCViewer_ViewPort3d.h>
#include <HYDROData_LandCoverMap.h>
setShape( aLandCoverMapShape, false, false );
}
- /* TODO
- if ( !myIsScalarMapMode ) {
- QColor aFillingColor = aLandCoverMapObj->GetFillingColor();
- QColor aBorderColor = aLandCoverMapObj->GetBorderColor();
-
- setFillingColor( aFillingColor, false, false );
- setBorderColor( aBorderColor, false, false );
- } else {
- updateShape( false, false );
- }*/
-
Handle(HYDROGUI_LandCoverMapPrs) aLandCoverMapPrs = Handle(HYDROGUI_LandCoverMapPrs)::DownCast( getAISObject() );
if ( !aLandCoverMapPrs.IsNull() )
aLandCoverMapPrs->UpdateColors();
void HYDROGUI_ShapeLandCoverMap::setScalarMapModeEnabled( const bool theIsToEnable )
{
myIsScalarMapMode = theIsToEnable;
+ update( false, false );
}
void HYDROGUI_ShapeLandCoverMap::setVisible( const bool theState,
{
Handle(HYDROData_LandCoverMap) aLandCoverMap = Handle(HYDROData_LandCoverMap)::DownCast( getObject() );
if ( !aLandCoverMap.IsNull() )
- return new HYDROGUI_LandCoverMapPrs( aLandCoverMap );
+ {
+ Handle(HYDROGUI_LandCoverMapPrs) aLandCoverMapPrs = new HYDROGUI_LandCoverMapPrs( aLandCoverMap );
+ if ( myIsScalarMapMode )
+ {
+ LightApp_Application* anApp = myDisplayer->module()->getApp();
+ OCCViewer_ViewManager* aViewManager = ::qobject_cast<OCCViewer_ViewManager*>(
+ anApp->getViewManager( OCCViewer_Viewer::Type(), true ) );
+ if ( aViewManager )
+ {
+ if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() )
+ {
+ int aViewerId = (size_t)aViewer;
+
+ // Set Strickler table
+ Handle(HYDROData_StricklerTable) aTable =
+ myDisplayer->module()->getLandCoverColoringTable( aViewerId );
+ if( !aTable.IsNull() )
+ 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 );
+ }
+ }
+ }
+ }
+ return aLandCoverMapPrs;
+ }
return NULL;
}