]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp
Manual paint changes for tolerance range widget (Still not working) 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                 std::cout<<"Pechaaaaaannnnnnn!!!!"<<std::endl;
58         wxVtk2DBaseView             *wxvtk2Dbaseview    = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView();
59         wxVTKRenderWindowInteractor *wxVTKiren          = wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor();
60         int px,py;
61         wxVTKiren->GetEventPosition(px,py);
62
63 //        int     typeView = 1;
64         double  X        = (double)px;
65         double  Y        = (double)py;
66         double  Z        =  wxvtk2Dbaseview->GetActualSlice();
67 //        wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,true, typeView);
68         wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,true);
69
70         _manualPaintControler->PaintImage((int)X,(int)Y,(int)Z);
71         this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
72
73 /*
74         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->Modified();
75         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor()->Modified();
76         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor()->SetDisplayExtent(0, 50+_auxZ, 0, 50,_Z, _Z );
77         wxvtk2Dbaseview->Refresh();
78         wxvtk2Dbaseview->RefreshView();
79 //        wxvtk2Dbaseview->SetActualSlice(_Z+_auxZ);
80         _auxZ=(_auxZ+1)%2;
81         wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->Render();
82         this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
83 */
84         }// if _state
85         return true;
86 }
87
88