X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fwxvtk%2Fsrc%2FbbwxvtkViewer2D.cxx;h=79904f8df1c9d1ffe509ad7bdc865707e840d945;hb=70db75992e0ccf5ad1fab5ccf9cec013877ea3d5;hp=929147e12b02085c35ee26a838b39b21adee96ed;hpb=dcd0daa8375b06efaf723f38ee9e074b5f9bb306;p=bbtk.git diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index 929147e..79904f8 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/03 13:35:35 $ - Version: $Revision: 1.27 $ + Date: $Date: 2008/12/11 15:30:17 $ + Version: $Revision: 1.32 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -21,7 +21,8 @@ */ -#ifdef _USE_WXWIDGETS_ +#ifdef USE_WXWIDGETS +#ifdef USE_VTK #include "bbwxvtkViewer2D.h" @@ -39,13 +40,34 @@ namespace bbwxvtk { - BBTK_ADD_BLACK_BOX_TO_PACKAGE(wxvtk,Viewer2D); + + //-------------------------------------------------------------------------- + class Viewer2DWidget : public wxPanel + { + public: + Viewer2DWidget(Viewer2D* box, wxWindow *parent); + ~Viewer2DWidget(); + void UpdateView(); + vtkRenderer *GetRenderer(); + private: + bool mFirstTime; + Viewer2D *mBox; + wxvtkImageViewer2 *imageViewer; + vtkImageData *backImageData; + vtkImageData *mDefaultImage; + wxVTKRenderWindowInteractor *wxvtkrenderwindowinteractor; + bool mUpdateCamera; + + vtkImplicitPlaneWidget * maPlane1, * maPlane2, * mbPlane1, * mbPlane2; + }; + Viewer2DWidget::Viewer2DWidget(Viewer2D* box, wxWindow *parent) : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL), + mFirstTime(true), mBox(box) { wxPanel *panel = this; @@ -53,7 +75,7 @@ namespace bbwxvtk wxvtkrenderwindowinteractor = new wxVTKRenderWindowInteractor(panel,-1); wxvtkrenderwindowinteractor->UseCaptureMouseOn(); - imageViewer = vtkImageViewer2::New(); + imageViewer = wxvtkImageViewer2::New(); imageViewer->SetSlice( 1 ); imageViewer->SetupInteractor ( wxvtkrenderwindowinteractor ); @@ -128,20 +150,28 @@ namespace bbwxvtk void Viewer2DWidget::UpdateView() { - // std::cout << "Viewer2DWidget::UpdateView() "<bbGetFullName() << std::endl; + // std::cout << "Viewer2DWidget::UpdateView() " << std::endl; // std::cout << "slice="<bbGetInputSlice()<bbGetInputIn() == NULL ) && ( backImageData != mDefaultImage ) ) { + // + // std::cout << "** Viewer2DWidget::UpdateView() : NULL Input (reset)" <bbGetInputIn() != NULL ) && - // (true) ) // - (backImageData != mBox->bbGetInputIn()) ) + (( mBox->bbGetInputStatus("In") != bbtk::UPTODATE ) || + ( mFirstTime)) + ) + //(backImageData != mBox->bbGetInputIn()) ) { + + // std::cout << "** Viewer2DWidget::UpdateView() : Input changed" <bbGetInputIn(); backImageData->Update(); imageViewer->SetInput( backImageData ); @@ -150,6 +180,8 @@ namespace bbwxvtk if (mUpdateCamera) { + // std::cout << "** Viewer2DWidget::UpdateView() : Update Camera" + // <GetSpacing(spx,spy,spz); @@ -238,10 +270,10 @@ namespace bbwxvtk bbtkMessage("Output", 2, "Viewer2D : Orientation was not 0< <2 (shouldn't arrive here!"<Refresh(); + wxvtkrenderwindowinteractor->Render(); bbtkDebugMessage("Output",3,"Viewer2D : slice = "<SetSliceOrientation (orientation); - wxvtkrenderwindowinteractor->Render(); imageViewer->SetSlice( z ); } @@ -263,18 +295,19 @@ 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; + // std::cout << "In="<UpdateView(); - bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() ); } bbSetOutputOut( bbGetInputSlice() ); @@ -286,32 +319,24 @@ namespace bbwxvtk bbSetInputIn(NULL); bbSetInputSlice(0); bbSetOutputWidget(0); + bbSetOutputRenderer(0); bbSetInputOrientation(2); } - /** - * \brief Create wxWidget . - * - * - */ + void Viewer2D::CreateWidget(wxWindow* parent) { - Viewer2DWidget* w = new Viewer2DWidget(this,parent);//bbGetWxParent()); + Viewer2DWidget* w = new Viewer2DWidget(this,parent); + w->UpdateView(); bbSetOutputWidget(w); + bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() ); + } - // This callback is *no more* - // necessary to get actual processing of the view - // when window is shown - void Viewer2D::OnShowWidget() - { - // ((Viewer2DWidget*)bbGetOutputWidget())->Update(); - // ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView(); - } - }//namespace bbtk #endif +#endif