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
28 if (_stateWindowLevel==true)
31 wxVTKRenderWindowInteractor *wxVTKiren;
32 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
33 wxVTKiren->GetEventPosition( tmpPx , tmpPy );
40 vtkImageData* imgrange = ((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->GetVtkBaseData()->GetImageData();
43 double* scalarrange = imgrange->GetScalarRange();
44 double scalarr = scalarrange[1] - scalarrange[0];
45 //std::cout<<"scalar r="<<scalarr<<std::endl;
47 ((wxWindow*)wxVTKiren)->GetSize(&w, &h);
48 int dx = (scalarr*( _backPx - tmpPx ))/w;
49 int dy = (scalarr*( _backPy - tmpPy ))/h;
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 );
75 vtkImageViewer2 *vtkimageviewer2;
76 vtkimageviewer2=((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2();
77 vtkimageviewer2->SetColorWindow(colorWin);
78 vtkimageviewer2->SetColorLevel(colorLev);
79 // vtkimageviewer2->Render();
84 //-------------------------------------------------------------------
86 bool manualInteractorWindowLevel::OnMiddleButtonDown() // virtual
88 if ((_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) &&
89 (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ){
91 _stateWindowLevel = true;
92 wxVTKRenderWindowInteractor *wxVTKiren;
93 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
94 wxVTKiren->GetEventPosition( _backPx , _backPy );
96 _backWindow = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorWindow());
97 _backLevel = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorLevel());
102 //-------------------------------------------------------------------
104 bool manualInteractorWindowLevel::OnMiddleButtonUp() // virtual
106 if (_stateWindowLevel==true)
108 _stateWindowLevel=false;