1 /*# ---------------------------------------------------------------------
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
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
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.
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
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 # ------------------------------------------------------------------------ */
27 #include "vtkInteractorStyleSphere.h"
29 #include "wxSphereView.h"
31 vtkInteractorStyleSphere::vtkInteractorStyleSphere()
37 //---------------------------------------------------------------------------
38 vtkInteractorStyleSphere::~vtkInteractorStyleSphere()
42 //--------------------------------------------------------------------------
43 bool vtkInteractorStyleSphere::OnRightButtonDown()
45 if ((_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) && (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) )
48 //_fordwareX = this->Interactor->GetEventPosition()[0];
49 _fordwareY = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
50 wxSphereView *wxsphereview = (wxSphereView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
51 _radio = wxsphereview->GetRadio();
56 //---------------------------------------------------------------------------
57 bool vtkInteractorStyleSphere::OnRightButtonUp()
59 if (_stateRadio==true)
61 wxSphereView *wxsphereview = (wxSphereView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
62 wxsphereview->SetDeltaVoxel(1);
63 double radio=wxsphereview->GetRadio();
64 wxsphereview->GetIdOfImage(radio+0.1);
65 wxsphereview->GetIdOfImage(radio+0.2);
66 wxsphereview->GetIdOfImage(radio-0.1);
67 wxsphereview->GetIdOfImage(radio-0.2);
68 wxsphereview->RefreshView();
74 //---------------------------------------------------------------------------
75 bool vtkInteractorStyleSphere::OnLeftButtonDown()
78 _fordwareX = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
79 _fordwareY = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
83 //---------------------------------------------------------------------------
84 bool vtkInteractorStyleSphere::OnLeftButtonUp()
86 wxSphereView *wxsphereview = (wxSphereView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
87 if (_stateRotate==true){
88 int fx = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
89 int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
91 if ((_fordwareX==fx)&&(_fordwareY==fy)){
93 _vtkInteractorStyleBaseView->TransformCoordinate(x,y,z);
94 wxsphereview->SetXYZtoParent(x,y);
95 wxCommandEvent newevent(wxEVT_COMMAND_MENU_SELECTED,12121);
96 //EED 2017-09-16 Migration wxWidgets 2.8 to 3.0
97 #if wxMAJOR_VERSION <= 2
98 wxsphereview->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent);
100 wxsphereview->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessWindowEvent(newevent);
104 wxsphereview->RotationEnd();
106 wxsphereview->RefreshView();
107 _stateRotate = false;
113 //---------------------------------------------------------------------------
114 bool vtkInteractorStyleSphere::OnMouseMove ()
116 wxSphereView *wxsphereview = (wxSphereView*)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView());
118 if (_stateRotate==true)
123 if (_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==1)
127 if (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==1)
131 int fx = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0];
132 int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
133 wxsphereview->RotationStart( fx - _fordwareX , -(fy - _fordwareY) , ok_v, ok_ang);
134 wxsphereview->RefreshView();
136 if (_stateRadio==true)
139 //int fx = this->Interactor->GetEventPosition()[0];
140 int fy = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1];
141 double dif=(fy-_fordwareY) / 10.0;
142 wxsphereview->SetRadio( _radio + dif );
143 wxsphereview->SetDeltaVoxel(3);
145 wxsphereview->RefreshView();