From b5c0689eda6a07fe88850b7fc105b0ae99b2d5a8 Mon Sep 17 00:00:00 2001 From: jean-pierre roux Date: Fri, 17 Apr 2009 09:04:13 +0000 Subject: [PATCH] Don't update camera if only Slice changed --- packages/wxvtk/src/bbwxvtkViewer2D.cxx | 61 ++++++++++---------------- packages/wxvtk/src/bbwxvtkViewer2D.h | 30 ++++++------- 2 files changed, 37 insertions(+), 54 deletions(-) diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index 26a1f9f..c529961 100644 --- a/packages/wxvtk/src/bbwxvtkViewer2D.cxx +++ b/packages/wxvtk/src/bbwxvtkViewer2D.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxvtkViewer2D.cxx,v $ Language: C++ - Date: $Date: 2008/12/15 13:13:49 $ - Version: $Revision: 1.33 $ + Date: $Date: 2009/04/17 09:04:13 $ + Version: $Revision: 1.34 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -24,7 +24,6 @@ #ifdef USE_WXWIDGETS #ifdef USE_VTK - #include "bbwxvtkViewer2D.h" #include "bbwxvtkPackage.h" //#include @@ -35,14 +34,8 @@ #include #include - - namespace bbwxvtk { - - - - //-------------------------------------------------------------------------- class Viewer2DWidget : public wxPanel { @@ -51,6 +44,7 @@ namespace bbwxvtk ~Viewer2DWidget(); void UpdateView(); vtkRenderer *GetRenderer(); + private: bool mFirstTime; Viewer2D *mBox; @@ -93,7 +87,7 @@ namespace bbwxvtk for (int i=0;iSetScalarComponentFromFloat(i,j,k,0,0); + mDefaultImage->SetScalarComponentFromFloat(i,j,k,0,0); for (int i=0;i Add( wxvtkrenderwindowinteractor , 1, wxEXPAND, 0); - panel-> SetSizer(sizer); - panel-> SetAutoLayout(true); - panel-> Layout(); + sizer->Add( wxvtkrenderwindowinteractor, 1, wxEXPAND, 0); + panel->SetSizer(sizer); + panel->SetAutoLayout(true); + panel->Layout(); // wxvtkrenderwindowinteractor->Refresh(); @@ -154,40 +148,38 @@ namespace bbwxvtk delete wxvtkrenderwindowinteractor; // std::cout << "Viewer2DWidget::~Viewer2DWidget() OK" << std::endl; } - - //------------------------------------------------------------------------- - + //------------------------------------------------------------------------- void Viewer2DWidget::UpdateView() { // std::cout << "Viewer2DWidget::UpdateView() " << std::endl; - // std::cout << "slice="<bbGetInputSlice()<bbGetInputIn() != NULL ) && (( mBox->bbGetInputStatus("In") != bbtk::UPTODATE ) || ( mFirstTime)) ) //(backImageData != mBox->bbGetInputIn()) ) - { - - // std::cout << "** Viewer2DWidget::UpdateView() : Input changed" <bbGetInputIn(); - backImageData->Update(); - imageViewer->SetInput( backImageData ); - mUpdateCamera = true; + if (backImageData != mBox->bbGetInputIn()) // Don't update if just Slice changed + { + backImageData = mBox->bbGetInputIn(); + backImageData->Update(); + imageViewer->SetInput( backImageData ); + mUpdateCamera = true; + } } if (mUpdateCamera) @@ -241,7 +233,7 @@ namespace bbwxvtk int orientation = mBox->bbGetInputOrientation(); if (orientation<0 || orientation>2) { - bbtkMessage("Output", 2, "Viewer2D : Orientation was not 0< <2 "<bbIsShown() is necessary to be sure that the wxWindow is already @@ -288,9 +280,7 @@ namespace bbwxvtk imageViewer->SetSliceOrientation (orientation); imageViewer->SetSlice( z ); - } - - + } } @@ -310,7 +300,6 @@ namespace bbwxvtk BBTK_ADD_BLACK_BOX_TO_PACKAGE(wxvtk,Viewer2D); BBTK_BLACK_BOX_IMPLEMENTATION(Viewer2D,bbtk::WxBlackBox); - void Viewer2D::Process() { // std::cout << "Viewer2D::Process" << std::endl; @@ -321,8 +310,7 @@ namespace bbwxvtk { w->UpdateView(); } - bbSetOutputOut( bbGetInputSlice() ); - + bbSetOutputOut( bbGetInputSlice() ); } @@ -342,7 +330,6 @@ namespace bbwxvtk w->UpdateView(); bbSetOutputWidget(w); bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() ); - } diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.h b/packages/wxvtk/src/bbwxvtkViewer2D.h index cdb26f1..183527d 100644 --- a/packages/wxvtk/src/bbwxvtkViewer2D.h +++ b/packages/wxvtk/src/bbwxvtkViewer2D.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxvtkViewer2D.h,v $ Language: C++ - Date: $Date: 2008/12/11 15:30:17 $ - Version: $Revision: 1.15 $ + Date: $Date: 2009/04/17 09:04:13 $ + Version: $Revision: 1.16 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -29,11 +29,9 @@ * \brief */ - #ifdef USE_WXWIDGETS #ifdef USE_VTK - #ifndef __bbwxvtkViewer2D_h__ #define __bbwxvtkViewer2D_h__ @@ -44,11 +42,8 @@ #include "bbtkWxBlackBox.h" #include "wxVTKRenderWindowInteractor.h" - - namespace bbwxvtk { - //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ @@ -56,10 +51,12 @@ namespace bbwxvtk class /*BBTK_EXPORT*/ Viewer2D : public bbtk::WxBlackBox { BBTK_BLACK_BOX_INTERFACE(Viewer2D,bbtk::WxBlackBox); - BBTK_DECLARE_INPUT(Slice,int); - BBTK_DECLARE_INPUT(Orientation,int); - BBTK_DECLARE_INPUT(In,vtkImageData *); - BBTK_DECLARE_OUTPUT(Out,int); + + BBTK_DECLARE_INPUT(Slice, int); + BBTK_DECLARE_INPUT(Orientation, int); + BBTK_DECLARE_INPUT(In, vtkImageData *); + BBTK_DECLARE_OUTPUT(Out, int); + BBTK_DECLARE_OUTPUT(Renderer,vtkRenderer*); BBTK_PROCESS(Process); BBTK_CREATE_WIDGET(CreateWidget); @@ -78,15 +75,14 @@ namespace bbwxvtk BBTK_AUTHOR("eduardo.davila@creatis.insa-lyon.fr"); BBTK_DESCRIPTION("2D Viewer widget (vtk)"); BBTK_CATEGORY("viewer"); - BBTK_INPUT(Viewer2D,Slice,"Initial Slice number",int,""); - BBTK_INPUT(Viewer2D,Orientation,"Slicing orientation : 0:yz / 1:xz / 2:xy",int,""); - BBTK_INPUT(Viewer2D,In,"Input Image",vtkImageData *,""); - BBTK_OUTPUT(Viewer2D,Out,"Current Slice number",int,""); - BBTK_OUTPUT(Viewer2D,Renderer,"vtk Renderer",vtkRenderer*,""); + BBTK_INPUT(Viewer2D, Slice, "Initial Slice number", int, ""); + BBTK_INPUT(Viewer2D, Orientation, "Slicing orientation : 0:yz / 1:xz / 2:xy", int, ""); + BBTK_INPUT(Viewer2D, In, "Input Image", vtkImageData *, ""); + BBTK_OUTPUT(Viewer2D,Out, "Current Slice number", int, ""); + BBTK_OUTPUT(Viewer2D,Renderer, "vtk Renderer", vtkRenderer*, ""); BBTK_END_DESCRIBE_BLACK_BOX(Viewer2D); //================================================================= - }//namespace bbwxvtk #endif //__bbwxvtkViewer2D_h__ -- 2.45.0