X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FThresholdImageView%2FLayerImageBase.cxx;h=c295169ae16fc898a8eb0fab5bb0708ab31cde3e;hb=f9901e756bb82bd333310b47607875331616bb29;hp=f2ebd6f981d0099dcfbbb481bcefa969de89ec17;hpb=cef231b63d21ad7ac9914306a0a012666c24f00a;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx index f2ebd6f..c295169 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx @@ -32,7 +32,7 @@ #include "wxMPRBaseData.h" #include "wxVtk2DBaseView.h" -#include "wxVTKRenderWindowInteractor.h" +#include "creawxVTKRenderWindowInteractor.h" #include "vtkTextProperty.h" @@ -94,9 +94,10 @@ private: LayerImageBase::LayerImageBase() { _actorPresent = false; - _X = 0; - _Y = 0; - _Z = 0; + _X = -1; + _Y = -1; + _Z = -1; + _opacity = 1; _thresholdTable = NULL; _thresholdMapper = NULL; _scalarbarActor = NULL; @@ -191,8 +192,15 @@ void LayerImageBase::SetImage(vtkImageData* image) spcBase[5]=0; _image = image; + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _image->Update(); _image->GetWholeExtent(ext); +#else + _image->GetExtent(ext); +#endif + dimensionOriginalLayer[0] = ext[1]-ext[0]+1; dimensionOriginalLayer[1] = ext[3]-ext[2]+1; dimensionOriginalLayer[2] = ext[5]-ext[4]+1; @@ -205,22 +213,40 @@ void LayerImageBase::SetImage(vtkImageData* image) vtkImageData *imagebase = GetwxVtkBaseView()->GetVtkBaseData()->GetImageData(); if (imagebase!=NULL) { + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 imagebase->GetWholeExtent(ext); +#else + imagebase->GetExtent(ext); +#endif + dimBase[0]=ext[1]-ext[0]+1; dimBase[1]=ext[3]-ext[2]+1; dimBase[2]=ext[5]-ext[4]+1; SetDimensionBase(dimBase); imagebase->GetSpacing(spcBase); SetSpcBase(spcBase); - SetX( dimBase[0]*spcBase[0]/2 ); - SetY( dimBase[1]*spcBase[1]/2 ); - SetZ( dimBase[2]*spcBase[2]/2 ); + + if ((_X<0) || (_X>dimBase[0])) { SetX( dimBase[0]/2 ); } + if ((_Y<0) || (_Y>dimBase[1])) { SetY( dimBase[1]/2 ); } + if ((_Z<0) || (_Z>dimBase[2])) { SetZ( dimBase[2]/2 ); } + + } // if imagebase } // if wxvtkbaseview _image->GetScalarRange( _range ); - _thresholdTable = vtkLookupTable::New(); +// _thresholdTable = vtkLookupTable::New(); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _imageChangeInformation->SetInput(_image); +#else + _imageChangeInformation->SetInputData(_image); + _imageChangeInformation->Update(); +#endif + } //------------------------------------------------------------------------------ @@ -234,9 +260,9 @@ void LayerImageBase::SetSpcOriginalLayer(double spc[3]) //------------------------------------------------------------------------------ void LayerImageBase::SetNewSpacingLayer(double spc[3]) { - _newSpcLayer[0]=spc[0]; - _newSpcLayer[1]=spc[1]; - _newSpcLayer[2]=spc[2]; + _newSpcLayer[0] = spc[0]; + _newSpcLayer[1] = spc[1]; + _newSpcLayer[2] = spc[2]; _imageChangeInformation->SetOutputSpacing( _newSpcLayer ); } @@ -406,12 +432,10 @@ void LayerImageBase::onThreshold() double y=GetY(); double z=GetZ(); - x = x*_spcBase[0]; y = y*_spcBase[1]; z = z*_spcBase[2]; - CleanXYZ(x,y,z); vtkCamera *camera = _baseView->GetRenderer()->GetActiveCamera(); @@ -446,8 +470,10 @@ void LayerImageBase::onThreshold() } else { _scalarbarActor->SetDisplayPosition(0,0); } + _scalarbarActor->SetHeight(0.4); //default 0.8 + _scalarbarActor->SetWidth(0.08); //default 0.17 - _thresholdActor->SetOpacity( 0 ); + _thresholdActor->SetOpacity( 1 ); _thresholdActor->InterpolateOn( ); if (directionViewer==0) @@ -471,7 +497,14 @@ void LayerImageBase::onThreshold() } // !GetActorPresent() ConfigLookupTable(); // virtual method + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _imageReslicer->SetInput( GetImage() ); +#else + _imageReslicer->SetInputData( GetImage() ); +#endif + _imageReslicer->SetInformationInput( GetImage() ); if (directionViewer==0) @@ -497,26 +530,43 @@ void LayerImageBase::onThreshold() _imageReslicer->SetInterpolationModeToNearestNeighbor(); _imageReslicer->Modified(); - +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + // .. +#else + _imageReslicer->Update(); +#endif vtkImageData *img = _imageReslicer->GetOutput(); // img->Update(); // img->UpdateInformation(); - // _thresholdTable->Update(); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _thresholdMapper->SetInput( img ); +#else + _thresholdMapper->SetInputData( img ); +#endif + _thresholdMapper->SetLookupTable( _thresholdTable ); + + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _thresholdActor->SetInput( _thresholdMapper->GetOutput() ); +#else + _thresholdMapper->Update(); + _thresholdActor->SetInputData( _thresholdMapper->GetOutput() ); +#endif + _thresholdActor->SetOpacity(_opacity); _scalarbarActor->SetLookupTable( _thresholdTable ); // _scalarbarActor->SetLookupTable( _thresholdMapper->GetLookupTable() ); _scalarbarActor->SetTitle("Value"); _scalarbarActor->SetNumberOfLabels(4); int fontsize = _scalarbarActor->GetLabelTextProperty()->GetFontSize(); _scalarbarActor->GetLabelTextProperty()->SetFontSize(fontsize/2); - // _scalarbarActor->SetTextPad(4); ?? - - } // _image } @@ -554,6 +604,8 @@ void LayerImageBase::onThresholdChangeOpacity (int opacity) { _thresholdActor->SetOpacity(opacity/100.0); } +// EED 2017-12-17 + _opacity = (double)opacity/100.0; } //---------------------------------------------------------------------------- @@ -564,15 +616,8 @@ void LayerImageBase::onThresholdRemove() wxVtkBaseView * baseView = _baseView; baseView->GetRenderer()->RemoveActor( _thresholdActor ); baseView->GetRenderer()->RemoveActor( _scalarbarActor ); - _actorPresent = false; - } -} - -//---------------------------------------------------------------------------- -vtkLookupTable *LayerImageBase::GetvtkLookupTable() -{ - return _thresholdTable; + } // if _actorPresent } //---------------------------------------------------------------------------- @@ -591,7 +636,10 @@ void LayerImageBase::GetImageScalarRange() _range[1]=max; } - +vtkScalarsToColors* LayerImageBase::GetLookupTable() +{ + return _thresholdTable; +} // EOF