2 #include "manualInteractorWindowLevel.h"
3 #include "wxVtk2DBaseView.h"
4 //-------------------------------------------------------------------
5 //-------------------------------------------------------------------
6 //-------------------------------------------------------------------
8 manualInteractorWindowLevel::manualInteractorWindowLevel()
10 _stateWindowLevel = false;
17 //-------------------------------------------------------------------
19 manualInteractorWindowLevel::~manualInteractorWindowLevel()
23 //-------------------------------------------------------------------
25 bool manualInteractorWindowLevel::OnMouseMove() // virtual
27 if (_stateWindowLevel==true)
30 wxVTKRenderWindowInteractor *wxVTKiren;
31 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
32 wxVTKiren->GetEventPosition( tmpPx , tmpPy );
37 vtkImageData* imgrange = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->GetVtkBaseData()->GetImageData();
40 double* scalarrange = imgrange->GetScalarRange();
41 double scalarr = scalarrange[1] - scalarrange[0];
42 //std::cout<<"scalar r="<<scalarr<<std::endl;
44 ((wxWindow*)wxVTKiren)->GetSize(&w, &h);
47 double dx = (scalarr*( _backPx - tmpPx ))/dw;
48 double dy = (scalarr*( _backPy - tmpPy ))/dh;
50 //colorWin=_backWindow - (scalarr)*( _backPx - tmpPx );
51 colorWin=_backWindow - dx;
52 colorLev=_backLevel + dy;
54 colorWin=_backWindow - 2*( _backPx - tmpPx );
55 colorLev=_backLevel + 2*( _backPy - tmpPy );
67 //EED 2 Nov 2012 This lets see negative values with the interaction of Window-Level Color
78 wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView();
79 vtkBaseData *vtkbasedata = wxvtk2Dbaseview->GetVtkBaseData();
82 // vtkImageViewer2 *vtkimageviewer2 = wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2();
83 // vtkimageviewer2->SetColorWindow(colorWin);
84 // vtkimageviewer2->SetColorLevel(colorLev);
86 vtkbasedata->SetColorWindow(colorWin);
87 vtkbasedata->SetColorLevel(colorLev);
89 this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
91 // vtkimageviewer2->Render();
96 //-------------------------------------------------------------------
98 bool manualInteractorWindowLevel::OnMiddleButtonDown() // virtual
100 if ((_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) &&
101 (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ){
102 _stateWindowLevel = true;
103 wxVTKRenderWindowInteractor *wxVTKiren;
104 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
105 wxVTKiren->GetEventPosition( _backPx , _backPy );
106 _backWindow = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorWindow();
107 _backLevel = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorLevel();
112 //-------------------------------------------------------------------
114 bool manualInteractorWindowLevel::OnMiddleButtonUp() // virtual
116 if (_stateWindowLevel==true)
118 _stateWindowLevel=false;