X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_VTKPrsBathymetry.cxx;h=49217c954aa77cfd0ca89a914d748738cfc7548e;hb=cd6ea20d9a76665a24a533d0340385a335961f05;hp=84d5b8e76ace726946fd409da2808b276605a7ca;hpb=a558c58ccc19713db2b13ada4d0f32dff61d0deb;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_VTKPrsBathymetry.cxx b/src/HYDROGUI/HYDROGUI_VTKPrsBathymetry.cxx index 84d5b8e7..49217c95 100644 --- a/src/HYDROGUI/HYDROGUI_VTKPrsBathymetry.cxx +++ b/src/HYDROGUI/HYDROGUI_VTKPrsBathymetry.cxx @@ -1,4 +1,4 @@ -// 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 @@ -6,7 +6,7 @@ // 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 @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include #include @@ -34,7 +34,6 @@ #include #include #include -#include #include @@ -68,13 +67,15 @@ HYDROGUI_VTKPrsBathymetry::~HYDROGUI_VTKPrsBathymetry() //================================================================ void HYDROGUI_VTKPrsBathymetry::compute() { + HYDROGUI_VTKPrs::compute(); + if ( !getObject().IsNull() ) { Handle(HYDROData_Bathymetry) aBathymetry = Handle(HYDROData_Bathymetry)::DownCast( getObject() ); if ( !aBathymetry.IsNull() ) { HYDROData_Bathymetry::AltitudePoints anAltPoints = aBathymetry->GetAltitudePoints(); - int aNbPoints = anAltPoints.length(); + int aNbPoints = anAltPoints.Length(); HYDROData_Bathymetry::AltitudePoint anAltPnt; vtkPoints* aPoints = vtkPoints::New(); @@ -88,22 +89,18 @@ void HYDROGUI_VTKPrsBathymetry::compute() vtkVertex* aVertex = vtkVertex::New(); - int aZ; + double aZ; int anInvalidZ = InvalidZValue(); - for (int i = 0; i < aNbPoints; i++ ) + for (int i = 1; i <= aNbPoints; i++ ) { - anAltPnt = anAltPoints.at( i ); + anAltPnt = anAltPoints.Value( i ); aZ = anAltPnt.Z(); if ( ValuesLessEquals( aZ, anInvalidZ ) ) { - aZ = Z_MAX; - } - else - { - aZ = -aZ; + aZ = Z_MAX; // If Z value is invalid then use Z_MAX } - aPoints->InsertPoint( i, anAltPnt.X(), anAltPnt.Y(), aZ ); - aVertex->GetPointIds()->SetId( 0, i ); + aPoints->InsertPoint( i - 1, anAltPnt.X(), anAltPnt.Y(), aZ ); + aVertex->GetPointIds()->SetId( 0, i - 1 ); aVertexGrid->InsertNextCell( aVertex->GetCellType(), aVertex->GetPointIds()); aZValues->InsertNextValue( aZ ); } @@ -116,10 +113,7 @@ void HYDROGUI_VTKPrsBathymetry::compute() // Update the lookup table range if this bathymetry is out of it if ( myLookupTable ) { - double* aRange = aZValues->GetRange(); - myInternalZRange[0] = -aRange[1]; - myInternalZRange[1] = -aRange[0]; - + aZValues->GetRange( myInternalZRange ); double* aGlobalRange = myLookupTable->GetRange(); // If the global range is not yet initialized or the current one is out of scope then update the global bool anIsUpdated = false; @@ -141,37 +135,19 @@ void HYDROGUI_VTKPrsBathymetry::compute() myLookupTable->Build(); } - myMapper->SetScalarRange( -aGlobalRange[1], -aGlobalRange[0] ); + myMapper->SetScalarRange( aGlobalRange ); myMapper->ScalarVisibilityOn(); myMapper->SetScalarModeToUsePointData(); - - - vtkLookupTable* aTable = vtkLookupTable::New(); - vtkLookupTable* aGlobalTable = vtkLookupTable::SafeDownCast( myLookupTable ); - double* aHueRange = aGlobalTable->GetHueRange(); - // Revert hue range to keep it the same as for appropriate positive Z values in scalar bar - aTable->SetHueRange( aHueRange[1], aHueRange[0] ); - aTable->SetSaturationRange( aGlobalTable->GetSaturationRange() ); - // Revert the Z values range from positive to negative to show them as depth - aTable->SetTableRange( -aGlobalRange[1], -aGlobalRange[0] ); - aTable->SetValueRange( aGlobalTable->GetValueRange() ); - aTable->SetAlphaRange( aGlobalTable->GetAlphaRange() ); - aTable->SetNumberOfColors( aGlobalTable->GetNumberOfColors() ); - aTable->Build(); - - myMapper->SetLookupTable( aTable ); - aTable->Delete(); -// myMapper->SetLookupTable( myLookupTable ); + myMapper->SetLookupTable( myLookupTable ); } myMapper->SetInputData( aVertexGrid ); - SALOME_Actor* anActor = SALOME_Actor::New(); + SALOME_Actor* anActor = getActor(this); anActor->SetMapper( myMapper.GetPointer() ); anActor->setIO( getIO() ); AddObject( anActor ); - anActor->Delete(); aVertexGrid->Delete(); aZValues->Delete(); }