X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualInteractorWindowLevel.cxx;h=19b4cd00ecbc204214912f23403a49fc681af759;hb=4dcdcabb81ce9f9e9b7ccdb86a64995d7b18ea23;hp=20615fbcaae11f17729da6a3630210c86449a133;hpb=de28ababf60ed57a0f4381c159a2ee8c7515b213;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx index 20615fb..19b4cd0 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.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 "manualInteractorWindowLevel.h" #include "wxVtk2DBaseView.h" @@ -24,7 +49,6 @@ manualInteractorWindowLevel::~manualInteractorWindowLevel() bool manualInteractorWindowLevel::OnMouseMove() // virtual { - if (_stateWindowLevel==true) { int tmpPx,tmpPy; @@ -32,10 +56,8 @@ bool manualInteractorWindowLevel::OnMouseMove() // virtual wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition( tmpPx , tmpPy ); - - int colorWin; - int colorLev; - + double colorWin; + double colorLev; vtkImageData* imgrange = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->GetVtkBaseData()->GetImageData(); @@ -45,8 +67,11 @@ bool manualInteractorWindowLevel::OnMouseMove() // virtual //std::cout<<"scalar r="<GetSize(&w, &h); - int dx = (scalarr*( _backPx - tmpPx ))/w; - int dy = (scalarr*( _backPy - tmpPy ))/h; + + double dw=w,dh=h; + double dx = (scalarr*( _backPx - tmpPx ))/dw; + double dy = (scalarr*( _backPy - tmpPy ))/dh; + //colorWin=_backWindow - (scalarr)*( _backPx - tmpPx ); colorWin=_backWindow - dx; colorLev=_backLevel + dy; @@ -63,19 +88,31 @@ bool manualInteractorWindowLevel::OnMouseMove() // virtual { colorWin=100000; } - - if (colorLev<0) - { - colorLev=0; - } + +//EED 2 Nov 2012 This lets see negative values with the interaction of Window-Level Color +// if (colorLev<0) +// { +// colorLev=0; +// } + if (colorLev>100000) { colorLev=100000; } - vtkImageViewer2 *vtkimageviewer2; - vtkimageviewer2=((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2(); - vtkimageviewer2->SetColorWindow(colorWin); - vtkimageviewer2->SetColorLevel(colorLev); + + wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); + vtkBaseData *vtkbasedata = wxvtk2Dbaseview->GetVtkBaseData(); + +//EED Borrame +// vtkImageViewer2 *vtkimageviewer2 = wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2(); +// vtkimageviewer2->SetColorWindow(colorWin); +// vtkimageviewer2->SetColorLevel(colorLev); + + vtkbasedata->SetColorWindow(colorWin); + vtkbasedata->SetColorLevel(colorLev); + + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); + // vtkimageviewer2->Render(); } return true; @@ -87,14 +124,12 @@ bool manualInteractorWindowLevel::OnMiddleButtonDown() // virtual { if ((_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) && (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ){ - _stateWindowLevel = true; wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition( _backPx , _backPy ); - - _backWindow = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorWindow()); - _backLevel = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorLevel()); + _backWindow = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorWindow(); + _backLevel = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorLevel(); } return true; }