X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualInteractorWindowLevel.cxx;h=db587e3f890180f89e9967235996e0835487afbf;hb=5a27c495a6c3899102f76eb029b6aadcee4121c1;hp=0be3029cf1920c451920411944d2a0932e77fbbd;hpb=a4ee3758aa0477f677fb981e2c4d6e29995e8db8;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx index 0be3029..db587e3 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx @@ -31,8 +31,30 @@ bool manualInteractorWindowLevel::OnMouseMove() // virtual wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition( tmpPx , tmpPy ); - int colorWin=_backWindow - 2*( _backPx - tmpPx ); - int colorLev=_backLevel + 2*( _backPy - tmpPy ); + + double colorWin; + double colorLev; + + vtkImageData* imgrange = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->GetVtkBaseData()->GetImageData(); + + if(imgrange != NULL){ + double* scalarrange = imgrange->GetScalarRange(); + double scalarr = scalarrange[1] - scalarrange[0]; + //std::cout<<"scalar r="<GetSize(&w, &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; + }else{ + colorWin=_backWindow - 2*( _backPx - tmpPx ); + colorLev=_backLevel + 2*( _backPy - tmpPy ); + } if (colorWin<0) { @@ -66,14 +88,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; }