X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fwxvtk%2Fsrc%2FbbwxvtkViewer2D.cxx;h=caa2d4029cf46bbe56be3c114681ab2996ddb1f2;hb=bec209359eec4fcd775cc4d81c39d9471989e0a4;hp=26a1f9fbd222d4c7b4b43e48b29399229aadf092;hpb=510cbb97551ad78ab9e2cb2ac1a956fbcc5020b0;p=bbtk.git diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index 26a1f9f..caa2d40 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/09/17 11:17:18 $ + Version: $Revision: 1.38 $ 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 @@ -34,15 +33,9 @@ #include "vtkRenderer.h" #include #include - - - +#include namespace bbwxvtk { - - - - //-------------------------------------------------------------------------- class Viewer2DWidget : public wxPanel { @@ -51,6 +44,7 @@ namespace bbwxvtk ~Viewer2DWidget(); void UpdateView(); vtkRenderer *GetRenderer(); + vtkImageActor *GetImageActor(); 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) @@ -234,16 +226,24 @@ namespace bbwxvtk << std::endl; */ } - + // std::cout << "OW = "<< mBox->bbGetWindow() << std::endl; // std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl; // std::cout << "Sh = "<< mBox->bbIsShown() << std::endl; + + bool interp = mBox->bbGetInputInterpolate(); + if ( interp ) + imageViewer->GetImageActor()->InterpolateOn(); + else + imageViewer->GetImageActor()->InterpolateOff(); + 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 // created and displayed. // Else when slice != 0 we get an X Window System error with wxGTK @@ -252,7 +252,6 @@ namespace bbwxvtk (mBox->bbIsShown())) { int z = mBox->bbGetInputSlice(); - // std::cout << "slice = "<GetWholeExtent(ext); /* @@ -288,9 +287,7 @@ namespace bbwxvtk imageViewer->SetSliceOrientation (orientation); imageViewer->SetSlice( z ); - } - - + } } @@ -310,7 +307,29 @@ namespace bbwxvtk BBTK_ADD_BLACK_BOX_TO_PACKAGE(wxvtk,Viewer2D); BBTK_BLACK_BOX_IMPLEMENTATION(Viewer2D,bbtk::WxBlackBox); - + + //----------------------------------------------------------------- + void Viewer2D::bbUserSetDefaultValues() + { + bbSetInputIn(NULL); + bbSetInputInterpolate(true); // JP + bbSetInputSlice(0); + bbSetOutputWidget(0); + bbSetOutputRenderer(0); + bbSetInputOrientation(2); + } + + //----------------------------------------------------------------- + void Viewer2D::bbUserInitializeProcessing() + { + } + + //----------------------------------------------------------------- + void Viewer2D::bbUserFinalizeProcessing() + { + } + + //-------------------------------------------------------------------------- void Viewer2D::Process() { // std::cout << "Viewer2D::Process" << std::endl; @@ -321,28 +340,19 @@ namespace bbwxvtk { w->UpdateView(); } - bbSetOutputOut( bbGetInputSlice() ); - + bbSetOutputOut( bbGetInputSlice() ); } - void Viewer2D::bbUserConstructor() - { - bbSetInputIn(NULL); - bbSetInputSlice(0); - bbSetOutputWidget(0); - bbSetOutputRenderer(0); - bbSetInputOrientation(2); - } + //-------------------------------------------------------------------------- void Viewer2D::CreateWidget(wxWindow* parent) { Viewer2DWidget* w = new Viewer2DWidget(this,parent); w->UpdateView(); bbSetOutputWidget(w); bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() ); - }