From: guigues Date: Tue, 9 Dec 2008 12:54:02 +0000 (+0000) Subject: * Viewer2D now works !!! X-Git-Tag: v0.9.1~46 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=0a7afaadd37a67878b1dfe9166c1c7abd867e53f;p=bbtk.git * Viewer2D now works !!! * Status fixes --- diff --git a/kernel/src/bbtkBlackBox.cxx b/kernel/src/bbtkBlackBox.cxx index d0e93b5..04d146c 100644 --- a/kernel/src/bbtkBlackBox.cxx +++ b/kernel/src/bbtkBlackBox.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkBlackBox.cxx,v $ Language: C++ - Date: $Date: 2008/12/09 11:48:31 $ - Version: $Revision: 1.33 $ + Date: $Date: 2008/12/09 12:54:02 $ + Version: $Revision: 1.34 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -911,13 +911,8 @@ namespace bbtk bbtkError("no input called '"<second->SetConnection(c); - - // Check the status of the from.output of c - // to set the new status of the input - IOStatus s = MODIFIED; - if ( c->GetBlackBoxFrom()->bbGetOutputConnector(c->GetBlackBoxFromOutput()).GetStatus() == OUTOFDATE ) - s = OUTOFDATE; - bbSetStatusAndPropagate(i->second,s); + // The input *MUST* be set OUTOFDATE to update its input on next execution + bbSetStatusAndPropagate(i->second,OUTOFDATE); bbtkDebugMessage("connection",2, "<== BlackBox::bbConnectInput(\"" diff --git a/kernel/src/bbtkBlackBox.h b/kernel/src/bbtkBlackBox.h index b70ab75..7989748 100644 --- a/kernel/src/bbtkBlackBox.h +++ b/kernel/src/bbtkBlackBox.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkBlackBox.h,v $ Language: C++ - Date: $Date: 2008/12/08 12:53:47 $ - Version: $Revision: 1.17 $ + Date: $Date: 2008/12/09 12:54:02 $ + Version: $Revision: 1.18 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -195,6 +195,10 @@ namespace bbtk virtual void bbSetOutput( const std::string &name, Data data) = 0; + /// Gets the status of the input called + IOStatus bbGetInputStatus( const std::string &name ) const + { return mInputConnectorMap.find(name)->second->GetStatus(); } + /// Returns the input connectors map InputConnectorMapType& bbGetInputConnectorMap() { return mInputConnectorMap; } diff --git a/packages/vtk/src/bbvtkImageDataToString.cxx b/packages/vtk/src/bbvtkImageDataToString.cxx index 0b12340..c11a915 100644 --- a/packages/vtk/src/bbvtkImageDataToString.cxx +++ b/packages/vtk/src/bbvtkImageDataToString.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkImageDataToString.cxx,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:29 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/12/09 12:54:05 $ + Version: $Revision: 1.4 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -61,6 +61,11 @@ namespace bbstd template <> void ToString ::DoIt() { vtkImageData* im = bbGetInputIn(); + if (im==0) + { + bbSetOutputOut("NULL"); + return; + } int dim[3]; im->GetDimensions(dim); diff --git a/packages/vtk/src/bbvtkImagePlanes.cxx b/packages/vtk/src/bbvtkImagePlanes.cxx index b405d90..277d346 100644 --- a/packages/vtk/src/bbvtkImagePlanes.cxx +++ b/packages/vtk/src/bbvtkImagePlanes.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkImagePlanes.cxx,v $ Language: C++ - Date: $Date: 2008/12/03 13:35:32 $ - Version: $Revision: 1.15 $ + Date: $Date: 2008/12/09 12:54:05 $ + Version: $Revision: 1.16 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -208,7 +208,7 @@ namespace bbvtk // Create the widgets if not already done Init(); - if ( bbGetInputIn() != image) + if ( bbGetInputStatus("In") != bbtk::UPTODATE ) { // Input image has changed : reinitialize planes image = bbGetInputIn(); diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index 5d43509..a8c63ee 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/08 12:56:03 $ - Version: $Revision: 1.28 $ + Date: $Date: 2008/12/09 12:54:07 $ + Version: $Revision: 1.29 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -131,36 +131,24 @@ namespace bbwxvtk // std::cout << "Viewer2DWidget::UpdateView() "<bbGetFullName() << std::endl; // std::cout << "slice="<bbGetInputSlice()<bbGetInputConnectorMap().find("In")->second ; - if (c->GetStatus()==bbtk::MODIFIED) - { - std::cout << "===> MODIFIED"<GetStatus()==bbtk::UPTODATE) - { - std::cout << "===> UPTODATE"<bbGetInputIn() == NULL ) && ( backImageData != mDefaultImage ) ) { // - std::cout << "** Viewer2DWidget::UpdateView() : NULL Input (reset)" - <bbGetInputIn() != NULL ) && - // (true) ) // - (backImageData != mBox->bbGetInputIn()) ) + ( mBox->bbGetInputStatus("In") != bbtk::UPTODATE ) + ) + //(backImageData != mBox->bbGetInputIn()) ) { - std::cout << "** Viewer2DWidget::UpdateView() : Input changed" - <bbGetInputIn(); backImageData->Update(); imageViewer->SetInput( backImageData ); @@ -169,8 +157,8 @@ namespace bbwxvtk if (mUpdateCamera) { - std::cout << "** Viewer2DWidget::UpdateView() : Update Camera" - <GetSpacing(spx,spy,spz); diff --git a/packages/wxvtk/src/wxvtkImageViewer2.cxx b/packages/wxvtk/src/wxvtkImageViewer2.cxx index 587e022..81b0229 100644 --- a/packages/wxvtk/src/wxvtkImageViewer2.cxx +++ b/packages/wxvtk/src/wxvtkImageViewer2.cxx @@ -26,7 +26,7 @@ #include "vtkRenderWindowInteractor.h" #include "vtkRenderer.h" -vtkCxxRevisionMacro(wxvtkImageViewer2, "$Revision: 1.1 $"); +vtkCxxRevisionMacro(wxvtkImageViewer2, "$Revision: 1.2 $"); vtkStandardNewMacro(wxvtkImageViewer2); //---------------------------------------------------------------------------- @@ -342,15 +342,15 @@ void wxvtkImageViewer2::UpdateDisplayExtent() return; } - std::cout << "--- wxvtkImageViewer2::UpdateDisplayExtent()"<UpdateInformation(); int *w_ext = input->GetWholeExtent(); - std::cout << "ext = " - <SliceOrientation * 2]; @@ -649,19 +649,19 @@ void wxvtkImageViewer2::Render() // Initialize the size if not set yet vtkImageData *input = this->GetInput(); - if (//this->RenderWindow->GetSize()[0] == 0 && + if (this->RenderWindow->GetSize()[0] == 0 && input) { - /* + input->UpdateInformation(); int *w_ext = input->GetWholeExtent(); int xs = 0, ys = 0; - std::cout << "wxvtkImageViewer2::Render ext = " - <SliceOrientation) { @@ -697,7 +697,7 @@ void wxvtkImageViewer2::Render() xs < 150 ? 75 : (xs - 1 ) / 2.0); } this->FirstRender = 0; -*/ + } } if (this->GetInput()) @@ -727,7 +727,7 @@ int wxvtkImageViewer2::GetOffScreenRendering() //---------------------------------------------------------------------------- void wxvtkImageViewer2::SetInput(vtkImageData *in) { - std::cout << "### wxvtkImageViewer2::SetInput"<WindowLevel->SetInput(in); this->UpdateDisplayExtent(); // LG 03/12/08