From: Eduardo DAVILA Date: Mon, 17 Jun 2019 14:21:23 +0000 (+0200) Subject: #3263 creaMaracasVisu Feature New Normal - ViewerNV sync ParallelScale Camera X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=255f774ce4100c0b84e6b5efa5c64d0db77f8a61;p=creaMaracasVisu.git #3263 creaMaracasVisu Feature New Normal - ViewerNV sync ParallelScale Camera --- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx index 48b3a4d..8ecfd9e 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualInteractorWindowLevel.cxx @@ -49,24 +49,6 @@ manualInteractorWindowLevel::~manualInteractorWindowLevel() bool manualInteractorWindowLevel::OnMouseMove() // virtual { - -printf("EED Warning manualInteractorWindowLevel::OnMouseMove Clean this put in a specific class for camera Interaction ....\n"); -printf("EED Warning manualInteractorWindowLevel::OnMouseMove Clean this put in a specific class for camera Interaction ....\n"); -printf("EED Warning manualInteractorWindowLevel::OnMouseMove Clean this put in a specific class for camera Interaction ....\n"); -printf("EED Warning manualInteractorWindowLevel::OnMouseMove Clean this put in a specific class for camera Interaction ....\n"); -printf("EED Warning manualInteractorWindowLevel::OnMouseMove Clean this put in a specific class for camera Interaction ....\n"); -printf("EED Warning manualInteractorWindowLevel::OnMouseMove Clean this put in a specific class for camera Interaction ....\n"); -printf("EED Warning manualInteractorWindowLevel::OnMouseMove Clean this put in a specific class for camera Interaction ....\n"); - -// EED Mising in the wheal event and the ctrl+MouseRight Event - wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); - vtkBaseData *vtkbasedata = wxvtk2Dbaseview->GetVtkBaseData(); - double parallelscaling=wxvtk2Dbaseview->GetRenderer()->GetActiveCamera()->GetParallelScale(); - vtkbasedata->SetCameraParallelScale( parallelscaling ); - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); -//----------------- - - if (_stateWindowLevel==true) { int tmpPx,tmpPy; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.cxx index 940b06f..36b64db 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.cxx @@ -45,6 +45,11 @@ vtkInteractorStyleBaseView2D::vtkInteractorStyleBaseView2D() // // _vtkInteractorScrollZ = new vtkInteractorScrollZ(); // AddInteractorStyleMaracas(_vtkInteractorScrollZ); + // + //_vtkInteractorZoomCamera = interactorZoomcamera; + //AddInteractorStyleMaracas(_vtkInteractorZoomCamera); + // + // //////////// } //--------------------------------------------------------------------------- @@ -66,6 +71,15 @@ void vtkInteractorStyleBaseView2D::SetInteractorWindowLevel(manualInteractorWin AddInteractorStyleMaracas(_manualinteractorwindowlevel); } + +//--------------------------------------------------------------------------- +void vtkInteractorStyleBaseView2D::SetInteractorZoomCamera(vtkInteractorZoomCamera* interactorZoomcamera) +{ + _vtkInteractorZoomCamera = interactorZoomcamera; + AddInteractorStyleMaracas(_vtkInteractorZoomCamera); +} + + //--------------------------------------------------------------------------- void vtkInteractorStyleBaseView2D::OnRightButtonDown() // virtual { diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.h index 4d10e9c..674628c 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView2D.h @@ -27,6 +27,7 @@ #define VTKINTERACTORSTYLEBASEVIEW2D_H_ #include "vtkInteractorScrollZ.h" +#include "vtkInteractorZoomCamera.h" #include "manualInteractorWindowLevel.h" //------------------------------------------------------------------ @@ -42,6 +43,8 @@ public: // RaC 04-2010 Look for the description of new changes in vtkInteractorStyleBaseView2D constructor. void SetInteractorScrollZ(vtkInteractorScrollZ* interactorScroll); void SetInteractorWindowLevel(manualInteractorWindowLevel* interactorWindowLevel); + void SetInteractorZoomCamera(vtkInteractorZoomCamera* interactorZoomcamera); + virtual void OnMouseMove(); virtual void OnLeftButtonDown(); @@ -59,6 +62,7 @@ protected: private: manualInteractorWindowLevel *_manualinteractorwindowlevel; vtkInteractorScrollZ *_vtkInteractorScrollZ; + vtkInteractorZoomCamera *_vtkInteractorZoomCamera; }; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorZoomCamera.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorZoomCamera.cxx new file mode 100644 index 0000000..17eb250 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorZoomCamera.cxx @@ -0,0 +1,84 @@ +/*# --------------------------------------------------------------------- +# +# 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 "vtkInteractorZoomCamera.h" +#include "wxVtk2DBaseView.h" +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- + +vtkInteractorZoomCamera::vtkInteractorZoomCamera() +{ +} + +//--------------------------------------------------------------------------- +vtkInteractorZoomCamera::~vtkInteractorZoomCamera() +{ +} + +//--------------------------------------------------------------------------- +bool vtkInteractorZoomCamera::OnRightButtonDown() +{ + return true; +} + +//--------------------------------------------------------------------------- +bool vtkInteractorZoomCamera::OnRightButtonUp() +{ + return true; +} + +//--------------------------------------------------------------------------- +bool vtkInteractorZoomCamera::OnMouseMove () +{ + SetZoomCamera(); + return true; +} + +//--------------------------------------------------------------------------- +bool vtkInteractorZoomCamera::OnMouseWheelForward() +{ + SetZoomCamera(); + return true; +} + +//--------------------------------------------------------------------------- +bool vtkInteractorZoomCamera::OnMouseWheelBackward() +{ + SetZoomCamera(); + return true; +} + +//--------------------------------------------------------------------------- +void vtkInteractorZoomCamera::SetZoomCamera() +{ + wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); + vtkBaseData *vtkbasedata = wxvtk2Dbaseview->GetVtkBaseData(); + double parallelscaling=wxvtk2Dbaseview->GetRenderer()->GetActiveCamera()->GetParallelScale(); + vtkbasedata->SetCameraParallelScale( parallelscaling ); + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorZoomCamera.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorZoomCamera.h new file mode 100644 index 0000000..1e1f9c0 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorZoomCamera.h @@ -0,0 +1,49 @@ +/*# --------------------------------------------------------------------- +# +# 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. +# ------------------------------------------------------------------------ */ + +#ifndef VTKINTERACTORZOOMCAMERA_H_ +#define VTKINTERACTORZOOMCAMERA_H_ + +#include "InteractorStyleMaracas.h" + +class vtkInteractorZoomCamera : public InteractorStyleMaracas { +public: + vtkInteractorZoomCamera(); + virtual ~vtkInteractorZoomCamera(); + virtual bool OnMouseMove(); + virtual bool OnRightButtonDown(); + virtual bool OnRightButtonUp(); + virtual bool OnMouseWheelForward(); + virtual bool OnMouseWheelBackward(); + + void SetZoomCamera(); + + +protected: +private: + +}; + +#endif /*VTKINTERACTORSCROLLZ_H_*/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx index 4ade168..5337c80 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx @@ -141,6 +141,11 @@ printf("//EED wxVtk2DBaseView::ResetView %d %d %d %d %d %d \n",x1,x2,y1,y vtkInteractorScrollZ *_vtkInteractorScrollZ = new vtkInteractorScrollZ(); style2D->SetInteractorScrollZ(_vtkInteractorScrollZ); + vtkInteractorZoomCamera *_vtkInteractorZoomCamera = new vtkInteractorZoomCamera(); + style2D->SetInteractorZoomCamera(_vtkInteractorZoomCamera); + + + SetInteractorStyleImage( style2D ); // RaC @@ -200,6 +205,9 @@ void wxVtk2DBaseView::Configure(bool okimage) vtkInteractorScrollZ *_vtkInteractorScrollZ = new vtkInteractorScrollZ(); style2D->SetInteractorScrollZ(_vtkInteractorScrollZ); + vtkInteractorZoomCamera *_vtkInteractorZoomCamera = new vtkInteractorZoomCamera(); + style2D->SetInteractorZoomCamera(_vtkInteractorZoomCamera); + SetInteractorStyleImage( style2D ); // RaC