]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStylePlane2D.cxx
40729bc4b63155f13f6f6750185fc1a8f8ee400b
[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
55         return true;
56 }
57
58 //---------------------------------------------------------------------------
59 bool vtkInteractorStylePlane2D::OnLeftButtonUp() // virtual
60 {
61         if (_stateRotate==true)
62         {
63                 _stateRotate = false;
64                 vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
65                 vtkplane2Dview->ResetBack();
66 //              this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
67         }
68
69         return true;
70 }
71
72 //---------------------------------------------------------------------------
73 bool  vtkInteractorStylePlane2D::OnRightButtonUp()  // virtual
74 {
75         if (_stateRotate==true){
76                 //vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView()); // JPRx
77
78 // EED Borrame
79 //              vtkplane2Dview->RotationEnd();
80
81                 _stateRotate = false;
82         }
83
84         return true;
85 }
86 //---------------------------------------------------------------------------
87 bool  vtkInteractorStylePlane2D::OnMouseMove () // virtual 
88 {
89         bool ok_v, ok_ang;
90         if (_stateRotate==true){
91                 ok_v=false;
92                 ok_ang=false;
93                 if (_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==1)
94                 {
95                         ok_v=true;
96                 }
97                 if (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==1)
98                 {
99                         ok_ang=true;
100                 }
101             int fx = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
102         int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
103                 vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
104                 vtkplane2Dview->RotationDrag( fx - _fordwareX , fy - _fordwareY , ok_v , ok_ang);
105                 this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
106         } 
107         return true;
108 }
109 //-------------------------------------------------------------------
110 bool vtkInteractorStylePlane2D::OnLeftDClick() // virtual
111 {
112         int fx = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
113         int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
114         double xx=fx;
115         double yy=fy;
116         double zz=0;
117
118         vtkPlane2DView *vtkplane2Dview = (vtkPlane2DView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
119         vtkMPRBaseData *vtkmprbasedata = vtkplane2Dview->GetVtkmprbasedata();
120
121         vtkplane2Dview->TransfromCoordViewWorld2(xx,yy,zz);
122
123         vtkmprbasedata->SetX( xx );
124         vtkmprbasedata->SetY( yy );
125         vtkmprbasedata->SetZ( zz );
126         this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
127
128         return true;
129 }
130