-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
HYDROGUI_OCCDisplayer::HYDROGUI_OCCDisplayer( HYDROGUI_Module* theModule )
: HYDROGUI_AbstractDisplayer( theModule )
{
+ myToUpdateColorScale = false;
}
HYDROGUI_OCCDisplayer::~HYDROGUI_OCCDisplayer()
if( theObject->IsKind( STANDARD_TYPE( HYDROData_Image ) ) )
aResShape = new HYDROGUI_ShapeImage( theContext, Handle_HYDROData_Image::DownCast( theObject ) );
else if( theObject->IsKind( STANDARD_TYPE( HYDROData_Bathymetry ) ) )
- aResShape = new HYDROGUI_ShapeBathymetry( theContext, Handle_HYDROData_Bathymetry::DownCast( theObject ) );
+ aResShape = new HYDROGUI_ShapeBathymetry( this, theContext, Handle_HYDROData_Bathymetry::DownCast( theObject ) );
else
aResShape = new HYDROGUI_Shape( theContext, theObject );
aRes = true;
}
- UpdateColorScale( theViewer );
return aRes;
}
}
}
+void HYDROGUI_OCCDisplayer::SetToUpdateColorScale()
+{
+ myToUpdateColorScale = true;
+}
+
void HYDROGUI_OCCDisplayer::UpdateColorScale( const OCCViewer_Viewer* theViewer )
{
+ if( !myToUpdateColorScale )
+ return;
+
OCCViewer_ViewWindow* aWnd = dynamic_cast<OCCViewer_ViewWindow*>( theViewer->getViewManager()->getActiveView() );
Handle(V3d_View) aView = aWnd->getViewPort()->getView();
foreach( HYDROGUI_Shape* aShape, aShapes )
{
HYDROGUI_ShapeBathymetry* aBathShape = dynamic_cast<HYDROGUI_ShapeBathymetry*>( aShape );
- if( !aBathShape )
+ if( !aBathShape || !aBathShape->isVisible() )
continue;
aBathShape->GetRange( aMin, aMax );
foreach( HYDROGUI_Shape* aShape, aShapes )
{
HYDROGUI_ShapeBathymetry* aBathShape = dynamic_cast<HYDROGUI_ShapeBathymetry*>( aShape );
- if( !aBathShape )
+ if( !aBathShape || !aBathShape->isVisible() )
continue;
aBathShape->UpdateWithColorScale( aColorScale );
if( aView->ColorScaleIsDisplayed() )
aView->ColorScaleErase();
}
+
+ myToUpdateColorScale = false;
}