X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkInteractorStyleBaseView.cxx;h=21f323355704a8f0f3dfa44691286b4d6c9ada41;hb=4dcdcabb81ce9f9e9b7ccdb86a64995d7b18ea23;hp=8cfed905075af35b7b3587986b68642d6637117c;hpb=b9d9021717d8036639d4e934f0392d2bc7e3fd3f;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView.cxx index 8cfed90..21f3233 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + #include "vtkInteractorStyleBaseView.h" #include "wxVtk3DBaseView.h" @@ -17,6 +42,9 @@ vtkInteractorStyleBaseView::vtkInteractorStyleBaseView() _refresh_waiting = false; _parent_refresh_waiting = false; _blockRefresh = false; + + //EED27Juillet2011 + SetMouseWheelMotionFactor(0.5); } //--------------------------------------------------------------------------- vtkInteractorStyleBaseView::~vtkInteractorStyleBaseView() @@ -75,11 +103,21 @@ void vtkInteractorStyleBaseView::OnRightDClick() // virtual { CallLstInteractorStyleMaracas( 12 ); } -//--------------------------------------------------------------------------- -void vtkInteractorStyleBaseView::OnMouseWheel() // virtual + + +void vtkInteractorStyleBaseView::OnMouseWheelForward() // virtual { - CallLstInteractorStyleMaracas( 14 ); + CallLstInteractorStyleMaracas( 15 ); } + +void vtkInteractorStyleBaseView::OnMouseWheelBackward() // virtual +{ + CallLstInteractorStyleMaracas( 16 ); +} + + + + //--------------------------------------------------------------------------- void vtkInteractorStyleBaseView::AddInteractorStyleMaracas(InteractorStyleMaracas* interactorStyleMaracas) { @@ -101,7 +139,7 @@ void vtkInteractorStyleBaseView::RemoveInteractorStyleMaracas(InteractorStyleMa removed = true; } else { iter++; - } + } } } //--------------------------------------------------------------------------- @@ -113,7 +151,6 @@ void vtkInteractorStyleBaseView::InsertInteractorStyleMaracas(int pos, Interacto //--------------------------------------------------------------------------- void vtkInteractorStyleBaseView::CallLstInteractorStyleMaracas(int type) { - InteractorStyleMaracas *intStyMar; int i,size=_lstInteractorStyleMaracas.size(); @@ -131,16 +168,13 @@ void vtkInteractorStyleBaseView::CallLstInteractorStyleMaracas(int type) for (i=0;iGetActive()==true){ -printf("EED %p vtkInteractorStyleBaseView C i=%d size=%d sizeLst%d\n", this, i, size, _lstInteractorStyleMaracas.size() ); if (type ==1) { // OnRightButtonDown if (intStyMar->OnRightButtonDown()==false) @@ -218,13 +252,23 @@ printf("EED %p vtkInteractorStyleBaseView C i=%d size=%d sizeLst%d\n", this, i, i=size; } } - if (type==14) - { // OnMouseWheel - if (intStyMar->OnMouseWheel()==false) + // 14 ... old OnMouseWheelFordward + if (type==15) + { // OnMouseWheelForward + if (intStyMar->OnMouseWheelForward()==false) + { + i=size; + } + } + if (type==16) + { // OnMouseWheelBackward + if (intStyMar->OnMouseWheelBackward()==false) { i=size; } } + + } // if active } // for @@ -239,25 +283,27 @@ void vtkInteractorStyleBaseView::OnChar() // virtual //--------------------------------------------------------------------------- void vtkInteractorStyleBaseView::TransformCoordinate(double &X, double &Y, double &Z) { - vtkImageViewer2 *imageViewer = ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2(); + if(((wxVtk2DBaseView*)GetWxVtk2DBaseView())->_imageViewer2XYZ){ + vtkImageViewer2 *imageViewer = ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2(); - imageViewer->GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z); - imageViewer->GetRenderer()->DisplayToWorld(); - double fP[4]; - imageViewer->GetRenderer()->GetWorldPoint( fP ); + imageViewer->GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z); + imageViewer->GetRenderer()->DisplayToWorld(); + double fP[4]; + imageViewer->GetRenderer()->GetWorldPoint( fP ); - if ( fP[3] ){ - fP[0] /= fP[3]; - fP[1] /= fP[3]; - fP[2] /= fP[3]; - } + if ( fP[3] ){ + fP[0] /= fP[3]; + fP[1] /= fP[3]; + fP[2] /= fP[3]; + } -// EEDx5 - ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->TransformCoordinate_spacing_ViewToModel(fP[0],fP[1],fP[2]); + // EEDx5 + ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->TransformCoordinate_spacing_ViewToModel(fP[0],fP[1],fP[2]); - X=fP[0]; - Y=fP[1]; - Z=fP[2]; + X=fP[0]; + Y=fP[1]; + Z=fP[2]; + } } //--------------------------------------------------------------------------- void vtkInteractorStyleBaseView::SetwxVtkBaseView(wxVtkBaseView *wxvtkbaseview) @@ -319,7 +365,6 @@ bool vtkInteractorStyleBaseView::GetParent_refresh_waiting() //--------------------------------------------------------------------------- void vtkInteractorStyleBaseView::EvaluateToRefresh() { - if ( _blockRefresh==false ) { if ( (_refresh_waiting==true) && (_parent_refresh_waiting==false)) @@ -331,9 +376,16 @@ void vtkInteractorStyleBaseView::EvaluateToRefresh() { _parent_refresh_waiting = false; wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh +//CPR 13/01/2010 this->_wxvtkbaseview->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); - } - } + int i; + int size = _lstParentToReport.size(); + for(i = 0; iProcessEvent(newevent1); + }//for + }//if + }//if _blockRefresh } //--------------------------------------------------------------------------- void vtkInteractorStyleBaseView::BlockRefresh() @@ -346,3 +398,18 @@ void vtkInteractorStyleBaseView::UnBlockRefresh() _blockRefresh=false; } +wxEvtHandler* vtkInteractorStyleBaseView::GetParentToReport(int i) +{ + wxEvtHandler* parentToReport = NULL; + if(i>=0 && i<_lstParentToReport.size()) + { + parentToReport = _lstParentToReport[i]; + } + return parentToReport; + +} + +void vtkInteractorStyleBaseView::AddParentToReport(wxEvtHandler* parentToReport) +{ + _lstParentToReport.push_back(parentToReport); +}