]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualInteractorWindowLevel.cxx
1
2 #include "manualInteractorWindowLevel.h"
3 #include "wxVtk2DBaseView.h"
4 //-------------------------------------------------------------------
5 //-------------------------------------------------------------------
6 //-------------------------------------------------------------------
7
8 manualInteractorWindowLevel::manualInteractorWindowLevel()
9 {
10         _stateWindowLevel       =       false;
11         _backPx                         =       0;
12         _backPy                         =       0;
13         _backWindow                     =       -1;
14         _backLevel                      =       -1;
15 }
16
17 //-------------------------------------------------------------------
18
19 manualInteractorWindowLevel::~manualInteractorWindowLevel()
20 {
21 }
22
23 //-------------------------------------------------------------------
24
25 bool manualInteractorWindowLevel::OnMouseMove()                 // virtual 
26 {
27
28         if (_stateWindowLevel==true)
29         {
30                 int tmpPx,tmpPy;
31                 wxVTKRenderWindowInteractor *wxVTKiren;
32                 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
33                 wxVTKiren->GetEventPosition( tmpPx , tmpPy );
34                 int colorWin=_backWindow - 2*( _backPx - tmpPx );
35                 int colorLev=_backLevel  + 2*( _backPy - tmpPy );       
36
37                 if (colorWin<0)
38                 { 
39                         colorWin=0;
40                 }
41                 if (colorWin>100000)
42                 { 
43                         colorWin=100000;
44                 }       
45
46                 if (colorLev<0)
47                 { 
48                         colorLev=0;
49                 }
50                 if (colorLev>100000)
51                 { 
52                         colorLev=100000;
53                 }
54                 vtkImageViewer2 *vtkimageviewer2;
55                 vtkimageviewer2=((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2();
56                 vtkimageviewer2->SetColorWindow(colorWin);
57                 vtkimageviewer2->SetColorLevel(colorLev);
58 //              vtkimageviewer2->Render();
59         }
60         return true;
61 }
62
63 //-------------------------------------------------------------------
64
65 bool manualInteractorWindowLevel::OnMiddleButtonDown()  // virtual 
66 {
67         if ((_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) &&
68                 (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ){
69
70                 _stateWindowLevel       = true;
71                 wxVTKRenderWindowInteractor *wxVTKiren;
72                 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
73                 wxVTKiren->GetEventPosition( _backPx , _backPy );
74
75                 _backWindow = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorWindow());
76                 _backLevel  = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorLevel());
77         }
78         return true;
79 }
80
81 //-------------------------------------------------------------------
82
83 bool manualInteractorWindowLevel::OnMiddleButtonUp()            // virtual
84 {
85         if (_stateWindowLevel==true)
86         {
87                 _stateWindowLevel=false;
88         }
89         return true;
90 }