From 6bbabb32cba07ce95376c2cdcb804ee97050d453 Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Thu, 19 Jun 2008 09:46:41 +0000 Subject: [PATCH] *** empty log message *** --- kernel/src/bbtkBlackBox.cxx | 21 +++++---- kernel/src/bbtkBlackBox.h | 10 +++-- kernel/src/bbtkWxGUIConsole.cxx | 6 +-- packages/itk/src/bbitkImageProperties.cxx | 9 ++-- packages/wx/src/bbwxLayoutLine.cxx | 19 +++++++- packages/wx/src/bbwxLayoutLine.h | 5 ++- packages/wx/src/bbwxLayoutSplit.cxx | 15 ++++++- packages/wx/src/bbwxLayoutSplit.h | 5 ++- packages/wx/src/bbwxLayoutTab.cxx | 23 ++++++++-- packages/wx/src/bbwxLayoutTab.h | 7 +-- packages/wxvtk/src/bbwxvtkViewer2D.cxx | 55 ++++++++++++++++------- packages/wxvtk/src/bbwxvtkViewer2D.h | 15 ++++--- 12 files changed, 137 insertions(+), 53 deletions(-) diff --git a/kernel/src/bbtkBlackBox.cxx b/kernel/src/bbtkBlackBox.cxx index 0d15072..d213775 100644 --- a/kernel/src/bbtkBlackBox.cxx +++ b/kernel/src/bbtkBlackBox.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkBlackBox.cxx,v $ Language: C++ -Date: $Date: 2008/06/10 19:19:42 $ -Version: $Revision: 1.20 $ +Date: $Date: 2008/06/19 09:46:41 $ +Version: $Revision: 1.21 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See doc/license.txt or @@ -1167,13 +1167,6 @@ namespace bbtk } - //========================================================================= - // Static members initialization -/*EED - bool BlackBox::bbmgSomeBoxExecuting = false; - bool BlackBox::bbmgFreezeExecution = false; - std::set BlackBox::bbmgExecutionList; -*/ //========================================================================= //========================================================================= @@ -1184,6 +1177,16 @@ namespace bbtk } //========================================================================= + void BlackBox::bbUserOnShowWidget(std::string nameInput) + { + bbtk::BlackBoxInputConnector *cc; + cc = this->bbGetInputConnectorMap().find( nameInput.c_str() )->second; + if (cc->GetConnection()!=NULL) + { + cc->GetConnection()->GetBlackBoxFrom()->bbUserOnShow(); + } + } + } // EO namespace bbtk diff --git a/kernel/src/bbtkBlackBox.h b/kernel/src/bbtkBlackBox.h index ba86ed6..3f9fe82 100644 --- a/kernel/src/bbtkBlackBox.h +++ b/kernel/src/bbtkBlackBox.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkBlackBox.h,v $ Language: C++ - Date: $Date: 2008/05/15 08:02:36 $ - Version: $Revision: 1.10 $ + Date: $Date: 2008/06/19 09:46:41 $ + Version: $Revision: 1.11 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See doc/license.txt or @@ -237,6 +237,10 @@ bool reaction = true); virtual void Check(bool recursive = true); + virtual void bbUserOnShow() { } + void bbUserOnShowWidget(std::string nameInput); + + protected: //================================================================== // PROTECTED PART : ACCESSIBLE TO THE BlackBox DEVELOPER @@ -338,7 +342,7 @@ bool reaction = true); /// (called after bbProcess during bbExecute) /// Does nothing here but overloaded in WxBlackBox and WxContainerBlackBox virtual void bbShowWindow(Connection::Pointer caller) { } - + virtual void bbHideWindow() {} virtual void bbCloseWindow() { } //================================================================== diff --git a/kernel/src/bbtkWxGUIConsole.cxx b/kernel/src/bbtkWxGUIConsole.cxx index 8d04582..e19fb0e 100644 --- a/kernel/src/bbtkWxGUIConsole.cxx +++ b/kernel/src/bbtkWxGUIConsole.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIConsole.cxx,v $ Language: C++ - Date: $Date: 2008/05/15 08:02:36 $ - Version: $Revision: 1.12 $ + Date: $Date: 2008/06/19 09:46:41 $ + Version: $Revision: 1.13 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -371,7 +371,7 @@ namespace bbtk std::string strcommand0 = "cd "+bbdoc_path+" && mkdir tmp && cd tmp"; std::string strcommand1 = "cd "+bbdoc_path+"/tmp"; - std::string strcommand2 = "\""+bin_path+"/bbi\" -n "+make_index_path; + std::string strcommand2 = "\""+bin_path+"/bbi\" -N "+make_index_path; #ifdef WIN32 std::string strcommand3 = "move index*.html ../."; #else diff --git a/packages/itk/src/bbitkImageProperties.cxx b/packages/itk/src/bbitkImageProperties.cxx index 223950e..3975620 100644 --- a/packages/itk/src/bbitkImageProperties.cxx +++ b/packages/itk/src/bbitkImageProperties.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbitkImageProperties.cxx,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:50 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/06/19 09:46:44 $ + Version: $Revision: 1.4 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -24,6 +24,8 @@ #include "bbitkImageProperties.h" #include "bbitkPackage.h" + + namespace bbitk { BBTK_BLACK_BOX_IMPLEMENTATION(ImageProperties,bbtk::AtomicBlackBox); @@ -50,7 +52,8 @@ namespace bbitk <() <<">()"<(); + + itkImageType* im = bbGetInputIn().get(); unsigned int dim = im->GetImageDimension(); bbSetOutputTypeName(bbtk::TypeName()); diff --git a/packages/wx/src/bbwxLayoutLine.cxx b/packages/wx/src/bbwxLayoutLine.cxx index d2289d7..c6c59c0 100644 --- a/packages/wx/src/bbwxLayoutLine.cxx +++ b/packages/wx/src/bbwxLayoutLine.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutLine.cxx,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:52 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/06/19 09:46:46 $ + Version: $Revision: 1.4 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -90,6 +90,21 @@ namespace bbwx bbSetOutputWidget( w ); } + // This callback is necessary to get actual processing of the view + // when window is shown + void LayoutLine::bbUserOnShow() + { + bbUserOnShowWidget("Widget1"); + bbUserOnShowWidget("Widget2"); + bbUserOnShowWidget("Widget3"); + bbUserOnShowWidget("Widget4"); + bbUserOnShowWidget("Widget5"); + bbUserOnShowWidget("Widget6"); + bbUserOnShowWidget("Widget7"); + bbUserOnShowWidget("Widget8"); + bbUserOnShowWidget("Widget9"); + } + }//namespace bbwx #endif // _USE_WXWIDGETS_ diff --git a/packages/wx/src/bbwxLayoutLine.h b/packages/wx/src/bbwxLayoutLine.h index 952941d..ba0fe17 100644 --- a/packages/wx/src/bbwxLayoutLine.h +++ b/packages/wx/src/bbwxLayoutLine.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutLine.h,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:53 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/06/19 09:46:46 $ + Version: $Revision: 1.4 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -65,6 +65,7 @@ namespace bbwx void Process(); void CreateWidget(); + void bbUserOnShow(); protected: virtual void bbUserConstructor(); diff --git a/packages/wx/src/bbwxLayoutSplit.cxx b/packages/wx/src/bbwxLayoutSplit.cxx index 1f9e079..efec39b 100644 --- a/packages/wx/src/bbwxLayoutSplit.cxx +++ b/packages/wx/src/bbwxLayoutSplit.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutSplit.cxx,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:53 $ - Version: $Revision: 1.2 $ + Date: $Date: 2008/06/19 09:46:46 $ + Version: $Revision: 1.3 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -72,6 +72,17 @@ namespace bbwx bbSetOutputWidget( w ); } + + // This callback is necessary to get actual processing of the view + // when window is shown + void LayoutSplit::bbUserOnShow() + { + bbUserOnShowWidget("Widget1"); + bbUserOnShowWidget("Widget2"); + } + + + }//namespace bbwx #endif // _USE_WXWIDGETS_ diff --git a/packages/wx/src/bbwxLayoutSplit.h b/packages/wx/src/bbwxLayoutSplit.h index 9e21471..b174a5a 100644 --- a/packages/wx/src/bbwxLayoutSplit.h +++ b/packages/wx/src/bbwxLayoutSplit.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutSplit.h,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:53 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/06/19 09:46:46 $ + Version: $Revision: 1.4 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -56,6 +56,7 @@ namespace bbwx void Process(); void CreateWidget(); + void bbUserOnShow(); protected: virtual void bbUserConstructor(); diff --git a/packages/wx/src/bbwxLayoutTab.cxx b/packages/wx/src/bbwxLayoutTab.cxx index d6cd1de..e72b1b9 100644 --- a/packages/wx/src/bbwxLayoutTab.cxx +++ b/packages/wx/src/bbwxLayoutTab.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutTab.cxx,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:53 $ - Version: $Revision: 1.2 $ + Date: $Date: 2008/06/19 09:46:46 $ + Version: $Revision: 1.3 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -58,6 +58,7 @@ namespace bbwx { widgetchild->Reparent(book); book->AddPage(widgetchild, widgetchild->GetName() ); + widgetchild->Show(); } } @@ -86,11 +87,27 @@ namespace bbwx TryInsertWindow(w,bbGetInputWidget7()); TryInsertWindow(w,bbGetInputWidget8()); TryInsertWindow(w,bbGetInputWidget9()); - + + bbSetOutputWidget( w ); } + // This callback is necessary to get actual processing of the view + // when window is shown + void LayoutTab::bbUserOnShow() + { + bbGetOutputWidget()->Show(); + bbUserOnShowWidget("Widget1"); + bbUserOnShowWidget("Widget2"); + bbUserOnShowWidget("Widget3"); + bbUserOnShowWidget("Widget4"); + bbUserOnShowWidget("Widget5"); + bbUserOnShowWidget("Widget6"); + bbUserOnShowWidget("Widget7"); + bbUserOnShowWidget("Widget8"); + bbUserOnShowWidget("Widget9"); + } }//namespace bbwx diff --git a/packages/wx/src/bbwxLayoutTab.h b/packages/wx/src/bbwxLayoutTab.h index 5049b9b..4b247a3 100644 --- a/packages/wx/src/bbwxLayoutTab.h +++ b/packages/wx/src/bbwxLayoutTab.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutTab.h,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:53 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/06/19 09:46:46 $ + Version: $Revision: 1.4 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -65,7 +65,8 @@ namespace bbwx void Process(); void CreateWidget(); - + void bbUserOnShow(); + protected: virtual void bbUserConstructor(); void TryInsertWindow(wxNotebook *book, wxWindow *widgetchild); diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index 9db6a27..3f0e696 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/06/17 11:12:03 $ - Version: $Revision: 1.8 $ + Date: $Date: 2008/06/19 09:46:49 $ + Version: $Revision: 1.9 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -31,7 +31,8 @@ #include "vtkInteractorStyleImage.h" #include "vtkCamera.h" #include "vtkRenderer.h" - +#include +#include @@ -53,19 +54,30 @@ namespace bbwxvtk wxvtkrenderwindowinteractor->UseCaptureMouseOn(); imageViewer = vtkImageViewer2::New(); + imageViewer->SetSlice( 1 ); imageViewer->SetupInteractor ( wxvtkrenderwindowinteractor ); mDefaultImage = vtkImageData::New(); int dim[3]; - dim[0] = dim[1] = dim[2] = 1; + dim[0] = dim[1] = 32 ; + dim[2] = 2; mDefaultImage->SetDimensions ( dim ); mDefaultImage->SetSpacing(1,1,1); + mDefaultImage->SetExtent(0,dim[0]-1,0,dim[1]-1,0,dim[2]-1); + mDefaultImage->SetWholeExtent(0,dim[0]-1,0,dim[1]-1,0,dim[2]-1); mDefaultImage->SetScalarTypeToUnsignedChar(); mDefaultImage->AllocateScalars(); for (int i=0;iSetScalarComponentFromFloat(i,j,0,0,0); + for (int k=0;kSetScalarComponentFromFloat(i,j,k,0,0); + + for (int i=0;iSetScalarComponentFromFloat(dim[0]-i-1,i,0,0,255); + mDefaultImage->SetScalarComponentFromFloat(i,i,1,0,255); + } backImageData = mDefaultImage; imageViewer->SetInput( backImageData ); @@ -112,6 +124,7 @@ namespace bbwxvtk // std::cout << "Viewer2DWidget::UpdateView() "<bbGetFullName() << std::endl; // std::cout << "slice="<bbGetInputSlice()<bbGetInputIn() == NULL ) && ( backImageData != mDefaultImage ) ) { @@ -140,9 +153,9 @@ namespace bbwxvtk vtkCamera *camera = imageViewer->GetRenderer()->GetActiveCamera(); - camera->SetViewUp ( spx*0, -spy*1, spz*0); - camera->SetPosition( spx*(x1+x2)/2, spy*(y1+y2)/2, -spz*10000000); - camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0); + camera->SetViewUp ( spx*0, -spy*1, spz*0 ); + camera->SetPosition( spx*(x1+x2)/2, spy*(y1+y2)/2, -spz*10000000 ); + camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 ); camera->ComputeViewPlaneNormal(); camera->SetParallelScale( spx*(x2-x1)/2.0 ); @@ -155,13 +168,15 @@ namespace bbwxvtk // std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl; // std::cout << "Sh = "<< mBox->bbIsShown() << std::endl; + + // mBox->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 if ( (backImageData!=NULL)&& (mBox->bbIsShown())) - { + { int z = mBox->bbGetInputSlice(); // std::cout << "slice = "<=ext[5]) { z=ext[5]-1; } + if (z>ext[5]) { z=ext[5]; } #if (VTK_MAJOR_VERSION >= 5) @@ -178,15 +193,22 @@ namespace bbwxvtk #else imageViewer->SetZSlice( z ); #endif - wxvtkrenderwindowinteractor->Render(); - } + //imageViewer->UpdateDisplayExtent(); + //wxvtkrenderwindowinteractor->Render(); + imageViewer->GetRenderer()->ResetCameraClippingRange(); + } - - } + +} + vtkRenderer * Viewer2DWidget::GetRenderer() + { + return imageViewer->GetRenderer(); + } + //-------------------------------------------------------------------------- @@ -209,12 +231,15 @@ namespace bbwxvtk ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView(); bbSetOutputOut( bbGetInputSlice() ); + bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() ); + } void Viewer2D::bbUserConstructor() { - bbSetInputIn(0); + bbSetInputIn(NULL); + bbSetInputSlice(0); } /** diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.h b/packages/wxvtk/src/bbwxvtkViewer2D.h index b5e92ae..c2092af 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/06/17 11:12:03 $ - Version: $Revision: 1.5 $ + Date: $Date: 2008/06/19 09:46:49 $ + Version: $Revision: 1.6 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -58,15 +58,16 @@ namespace bbwxvtk Viewer2DWidget(Viewer2D* box, wxWindow *parent); ~Viewer2DWidget(); void UpdateView(); + vtkRenderer *GetRenderer(); private: Viewer2D *mBox; - vtkImageViewer2 *imageViewer; - vtkImageData *backImageData; - vtkImageData *mDefaultImage; + vtkImageViewer2 *imageViewer; + vtkImageData *backImageData; + vtkImageData *mDefaultImage; wxVTKRenderWindowInteractor *wxvtkrenderwindowinteractor; bool mUpdateCamera; - vtkImplicitPlaneWidget * maPlane1, * maPlane2, * mbPlane1, * mbPlane2; + vtkImplicitPlaneWidget * maPlane1, * maPlane2, * mbPlane1, * mbPlane2; }; //------------------------------------------------------------------------ @@ -80,6 +81,7 @@ namespace bbwxvtk BBTK_DECLARE_INPUT(Orientation,int); BBTK_DECLARE_INPUT(In,vtkImageData *); BBTK_DECLARE_OUTPUT(Out,int); + BBTK_DECLARE_OUTPUT(Renderer,vtkRenderer*); BBTK_PROCESS(Process); void Process(); BBTK_CREATE_WIDGET(CreateWidget); @@ -99,6 +101,7 @@ namespace bbwxvtk BBTK_INPUT(Viewer2D,Orientation,"Slicing orientation : 0:yz / 1:xz / 2:xy",int,""); BBTK_INPUT(Viewer2D,In,"Input Image",vtkImageData *,""); BBTK_OUTPUT(Viewer2D,Out,"Position of the slider",int,""); + BBTK_OUTPUT(Viewer2D,Renderer,"vtk Renderer",vtkRenderer*,""); BBTK_END_DESCRIBE_BLACK_BOX(Viewer2D); //================================================================= -- 2.45.0