]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp
ManualPaint RangeSlider 50% DFCH
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / vtkInteractorManualPaint.cpp
1
2 #include "vtkInteractorManualPaint.h"
3
4
5 #include "wxVtk2DBaseView.h"
6 #include "wxVTKRenderWindowInteractor.h"
7
8
9 vtkInteractorManualPaint::vtkInteractorManualPaint(ManualPaintControler* mpc)
10 {
11     _manualPaintControler   = mpc;
12         _state                  = false;
13         _stateKey               = false;
14 }
15
16 //---------------------------------------------------------------------------
17 vtkInteractorManualPaint::~vtkInteractorManualPaint()
18 {
19 }
20
21 //---------------------------------------------------------------------------
22 bool vtkInteractorManualPaint::OnChar()
23 {
24         vtkRenderWindowInteractor *interactor = _vtkInteractorStyleBaseView->GetInteractor();
25         
26         if  (interactor->GetKeyCode()==97)
27         {
28                 _stateKey=!_stateKey;
29         }
30         return true;
31 }
32         
33 //---------------------------------------------------------------------------
34 bool vtkInteractorManualPaint::OnLeftButtonDown()
35 {
36         vtkRenderWindowInteractor *interactor = _vtkInteractorStyleBaseView->GetInteractor();   
37         if ( interactor->GetControlKey()==1 ){
38         _state  =   true;
39 //        wxVtk2DBaseView             *wxvtk2Dbaseview    = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView();
40 //        _Z      =   wxvtk2Dbaseview->GetActualSlice();
41         }
42         return true;
43 }
44
45 //---------------------------------------------------------------------------
46 bool vtkInteractorManualPaint::OnLeftButtonUp()
47 {
48         _state = false;
49         return true;
50 }
51
52 //---------------------------------------------------------------------------
53 bool vtkInteractorManualPaint::OnMouseMove ()
54 {
55         if ((_state==true) || (_stateKey==true))
56         {
57         wxVtk2DBaseView             *wxvtk2Dbaseview    = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView();
58         wxVTKRenderWindowInteractor *wxVTKiren          = wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor();
59         int px,py;
60         wxVTKiren->GetEventPosition(px,py);
61
62 //        int     typeView = 1;
63         double  X        = (double)px;
64         double  Y        = (double)py;
65         double  Z        =  wxvtk2Dbaseview->GetActualSlice();
66 //        wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,true, typeView);
67         wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,true);
68
69         _manualPaintControler->PaintImage((int)X,(int)Y,(int)Z);
70         this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
71
72 /*
73         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->Modified();
74         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor()->Modified();
75         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor()->SetDisplayExtent(0, 50+_auxZ, 0, 50,_Z, _Z );
76         wxvtk2Dbaseview->Refresh();
77         wxvtk2Dbaseview->RefreshView();
78 //        wxvtk2Dbaseview->SetActualSlice(_Z+_auxZ);
79         _auxZ=(_auxZ+1)%2;
80         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->Render();
81         this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
82 */
83         }// if _state
84         return true;
85 }
86
87