]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStylePlane2D.cxx
#3012 creaMaracasVisu Bug New Normal - Update Image in ViewerNV
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / vtkInteractorStylePlane2D.cxx
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26
27
28 #include "vtkInteractorStylePlane2D.h"
29 #include "vtkPlane2DView.h"
30
31 vtkInteractorStylePlane2D::vtkInteractorStylePlane2D()
32 {
33         _stateRotate=false;
34 }
35 //---------------------------------------------------------------------------
36 vtkInteractorStylePlane2D::~vtkInteractorStylePlane2D()
37 {
38 }
39
40 //---------------------------------------------------------------------------
41 bool vtkInteractorStylePlane2D::GetStateRotate()
42 {
43         return _stateRotate;
44 }
45
46 //---------------------------------------------------------------------------
47 bool  vtkInteractorStylePlane2D::OnLeftButtonDown()  // vitual
48 {
49         _stateRotate = true;
50         _fordwareX = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
51         _fordwareY = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
52         vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
53         vtkplane2Dview->RotationStart();
54         return true;
55 }
56
57 //---------------------------------------------------------------------------
58 bool vtkInteractorStylePlane2D::OnLeftButtonUp() // virtual
59 {
60         if (_stateRotate==true)
61         {
62                 _stateRotate = false;
63                 vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
64                 vtkplane2Dview->ResetBack();
65 //              this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
66         }
67         return true;
68 }
69
70 //---------------------------------------------------------------------------
71 bool  vtkInteractorStylePlane2D::OnRightButtonUp()  // virtual
72 {
73         if (_stateRotate==true){
74                 //vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView()); // JPRx
75
76 // EED Borrame
77 //              vtkplane2Dview->RotationEnd();
78
79                 _stateRotate = false;
80         }
81
82         return true;
83 }
84 //---------------------------------------------------------------------------
85 bool  vtkInteractorStylePlane2D::OnMouseMove () // virtual 
86 {
87         bool ok_v, ok_ang;
88         if (_stateRotate==true){
89                 ok_v=false;
90                 ok_ang=false;
91                 if (_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==1)
92                 {
93                         ok_v=true;
94                 }
95                 if (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==1)
96                 {
97                         ok_ang=true;
98                 }
99             int fx = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
100         int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
101                 vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
102                 vtkplane2Dview->RotationDrag( fx - _fordwareX , fy - _fordwareY , ok_v , ok_ang);
103                 this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
104         } 
105         return true;
106 }
107 //-------------------------------------------------------------------
108 bool vtkInteractorStylePlane2D::OnLeftDClick() // virtual
109 {
110         int fx = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
111         int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
112         double xx=fx;
113         double yy=fy;
114         double zz=0;
115
116         vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
117         vtkMPRBaseData *vtkmprbasedata = vtkplane2Dview->GetVtkmprbasedata();
118
119         vtkplane2Dview->TransfromCoordViewWorld2(xx,yy,zz);
120
121         vtkmprbasedata->SetX( xx );
122         vtkmprbasedata->SetY( yy );
123         vtkmprbasedata->SetZ( zz );
124         this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
125
126         return true;
127 }
128