X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkMPR3DDataViewer.cxx;h=cdfc9918532601438b1690cc80ac92c0ccc0e42b;hb=b80b4dcc301c1c2c63c0f76cd06b0a434350f7a7;hp=25f66eddeb88da0fa22d32ecd32bef63ebafed70;hpb=199d5048b6c5ac6663b8671f55289e4a0820f9cc;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx index 25f66ed..cdfc991 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + #include "vtkMPR3DDataViewer.h" @@ -7,37 +32,37 @@ vtkMPR3DDataViewer::vtkMPR3DDataViewer() _visiblePosition[0]=false; _visiblePosition[1]=false; _visiblePosition[2]=false; - _ctfun = NULL; - _vtkmprbasedata=NULL; - - _ctfun=NULL; - _saggitalColors=NULL; - _saggital=NULL; - _axialColors=NULL; - _axial=NULL; - _coronalColors=NULL; - _coronal=NULL; - _mapOutline=NULL; - _outline=NULL; - _outlineData=NULL; + _ctfun = NULL; + _vtkmprbasedata = NULL; + + _ctfun = NULL; + _saggitalColors = NULL; + _saggital = NULL; + _axialColors = NULL; + _axial = NULL; + _coronalColors = NULL; + _coronal = NULL; + _mapOutline = NULL; + _outline = NULL; + _outlineData = NULL; } //------------------------------------------------------------------- vtkMPR3DDataViewer::~vtkMPR3DDataViewer() { - _outlineData-> Delete(); - _mapOutline-> Delete(); - _outline-> Delete(); - -// if (_bwLut) _bwLut->Delete(); -// if (_hueLut) _hueLut->Delete(); -// if (_satLut) _satLut->Delete(); - if (_ctfun) _ctfun->Delete(); + if(_outlineData) {_outlineData-> Delete();} + if(_mapOutline) {_mapOutline-> Delete();} + if(_outline) {_outline-> Delete();} + +// if (_bwLut) _bwLut->Delete(); +// if (_hueLut) _hueLut->Delete(); +// if (_satLut) _satLut->Delete(); + if (_ctfun) _ctfun->Delete(); if (_saggitalColors) _saggitalColors ->Delete(); - if (_saggital) _saggital->Delete(); - if (_axialColors) _axialColors->Delete(); - if (_axial) _axial->Delete(); - if (_coronalColors) _coronalColors->Delete(); - if (_coronal) _coronal->Delete(); + if (_saggital) _saggital->Delete(); + if (_axialColors) _axialColors->Delete(); + if (_axial) _axial->Delete(); + if (_coronalColors) _coronalColors->Delete(); + if (_coronal) _coronal->Delete(); } //------------------------------------------------------------------- @@ -49,17 +74,21 @@ vtkActor* vtkMPR3DDataViewer::GetOutlineActor() vtkImageActor* vtkMPR3DDataViewer::GetImageActor(int id) { vtkImageActor *tmpVtkActor=NULL; - if (id==0){ + if (id==0) + { tmpVtkActor = GetvtkActor_saggital(); } - if (id==1){ + if (id==1) + { tmpVtkActor = GetvtkActor_coronal(); } - if (id==2){ + if (id==2) + { tmpVtkActor = GetvtkActor_axial(); } return tmpVtkActor; } + //------------------------------------------------------------------- void vtkMPR3DDataViewer::Refresh() { @@ -110,6 +139,14 @@ std::vector* vtkMPR3DDataViewer::GetctFunVectorBlue() return &_ctFunVectorBlue; } +//------------------------------------------------------------------- +void vtkMPR3DDataViewer::SetImage() +{ + _saggitalColors->SetInput( _vtkmprbasedata->GetImageData() ); + _axialColors->SetInput( _vtkmprbasedata->GetImageData() ); + _coronalColors->SetInput( _vtkmprbasedata->GetImageData() ); +} + //------------------------------------------------------------------- void vtkMPR3DDataViewer::Configure() { @@ -140,19 +177,19 @@ void vtkMPR3DDataViewer::Configure() double range[2]; - double max; + double delta; - if(_vtkmprbasedata->GetImageData()){ + if(_vtkmprbasedata->GetImageData()) + { _vtkmprbasedata->GetImageData()->GetScalarRange(range); - max = range[1]; - - + delta = range[1]-range[0]; + _ctFunVectorPoint.clear(); - _ctFunVectorPoint.push_back(max*0/4); - _ctFunVectorPoint.push_back(max*1/4); - _ctFunVectorPoint.push_back(max*2/4); - _ctFunVectorPoint.push_back(max*3/4); - _ctFunVectorPoint.push_back(max*4/4); + _ctFunVectorPoint.push_back( range[0] + delta*0/4 ); + _ctFunVectorPoint.push_back( range[0] + delta*1/4 ); + _ctFunVectorPoint.push_back( range[0] + delta*2/4 ); + _ctFunVectorPoint.push_back( range[0] + delta*3/4 ); + _ctFunVectorPoint.push_back( range[0] + delta*4/4 ); _ctFunVectorRed.clear(); _ctFunVectorRed.push_back(0.0); @@ -175,8 +212,8 @@ void vtkMPR3DDataViewer::Configure() _ctFunVectorBlue.push_back(0.0); _ctFunVectorBlue.push_back(0.0); - - if(_ctfun==NULL){ + if(_ctfun==NULL) + { _ctfun = vtkColorTransferFunction::New(); } _ctfun->RemoveAllPoints(); @@ -316,27 +353,40 @@ vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_axial() } //------------------------------------------------------------------------ -void vtkMPR3DDataViewer::SetPositionX(int pos){ +void vtkMPR3DDataViewer::SetPositionX(int pos) +{ int x1,x2,y1,y2,z1,z2; _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); - if(_saggital){ + if(_saggital) + { _saggital->SetDisplayExtent( pos , pos , y1 ,y2 , z1 , z2 ); +//EED 2016/02/19 + _saggital->SetInterpolate( GetVtkMPRBaseData()->GetInterpolate() ); } } + //------------------------------------------------------------------------ -void vtkMPR3DDataViewer::SetPositionY(int pos){ +void vtkMPR3DDataViewer::SetPositionY(int pos) +{ int x1,x2,y1,y2,z1,z2; _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); - if(_coronal){ + if(_coronal) + { _coronal->SetDisplayExtent(x1,x2, pos,pos, z1,z2); +//EED 2016/02/19 + _coronal->SetInterpolate( GetVtkMPRBaseData()->GetInterpolate() ); } } //------------------------------------------------------------------------ -void vtkMPR3DDataViewer::SetPositionZ(int pos){ +void vtkMPR3DDataViewer::SetPositionZ(int pos) +{ int x1,x2,y1,y2,z1,z2; _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); - if(_axial){ + if(_axial) + { _axial->SetDisplayExtent(x1,x2, y1,y2, pos,pos); +//EED 2016/02/19 + _axial->SetInterpolate( GetVtkMPRBaseData()->GetInterpolate() ); } } //------------------------------------------------------------------- @@ -351,7 +401,8 @@ bool vtkMPR3DDataViewer::GetVisiblePosition(int idPosition) } void vtkMPR3DDataViewer::setColorTransferFunction(vtkColorTransferFunction* colortable){ - if(_saggitalColors){ + if(_saggitalColors) + { _saggitalColors->SetLookupTable(colortable); _coronalColors->SetLookupTable(colortable); _axialColors->SetLookupTable(colortable);