From 24b4620ba7f5214867c51fa8e18dbffaa21b5d3f Mon Sep 17 00:00:00 2001 From: "eduardo.davila@creatis.insa-lyon.fr" Date: Sun, 19 Oct 2025 18:23:20 +0200 Subject: [PATCH] #3539 Bug VectorFilterDouble Nearest Point --- packages/itk/src/bbitkResampleImageFilter.cxx | 8 +- packages/itk/src/bbitkResampleImageFilter.h | 4 - .../src/bbitkvtkvtkImageData2itkImage.cxx | 104 ++++++++---------- .../src/bbitkvtkvtkImageData2itkImage.h | 7 +- packages/std/src/bbstdMathOperation.h | 2 +- packages/std/src/bbstdVectorFilterDouble.cxx | 4 +- packages/std/src/bbstdWriteColumnsString.cxx | 1 - 7 files changed, 50 insertions(+), 80 deletions(-) diff --git a/packages/itk/src/bbitkResampleImageFilter.cxx b/packages/itk/src/bbitkResampleImageFilter.cxx index 57bcc05..47f54e7 100644 --- a/packages/itk/src/bbitkResampleImageFilter.cxx +++ b/packages/itk/src/bbitkResampleImageFilter.cxx @@ -33,21 +33,15 @@ Version: $Revision: 1.5 $ =========================================================================*/ - - - #ifdef _USE_ITK_ #include "bbitkResampleImageFilter.h" #include "bbitkPackage.h" namespace bbitk { - BBTK_BLACK_BOX_IMPLEMENTATION(ResampleImageFilter,bbtk::AtomicBlackBox); BBTK_ADD_BLACK_BOX_TO_PACKAGE(itk,ResampleImageFilter); -} - -// EO namespace bbitk +} // EO namespace bbitk #endif //_USE_ITK_ diff --git a/packages/itk/src/bbitkResampleImageFilter.h b/packages/itk/src/bbitkResampleImageFilter.h index da653e6..ffead94 100644 --- a/packages/itk/src/bbitkResampleImageFilter.h +++ b/packages/itk/src/bbitkResampleImageFilter.h @@ -33,9 +33,6 @@ Version: $Revision: 1.13 $ =========================================================================*/ - - - #ifdef _USE_ITK_ #include @@ -51,7 +48,6 @@ namespace bbitk { - //=================================================== class /*BBTK_EXPORT*/ ResampleImageFilter diff --git a/packages/itkvtk/src/bbitkvtkvtkImageData2itkImage.cxx b/packages/itkvtk/src/bbitkvtkvtkImageData2itkImage.cxx index 45bb402..b65f3e7 100644 --- a/packages/itkvtk/src/bbitkvtkvtkImageData2itkImage.cxx +++ b/packages/itkvtk/src/bbitkvtkvtkImageData2itkImage.cxx @@ -80,82 +80,66 @@ namespace bbitkvtk BBTK_TEMPLATE_VTK_IMAGE_DATA_SWITCH(bbGetInputIn(),Convert) } - template void vtkImageData2itkImage::Convert() { - bbtkDebugMessage("process",5,"==> ["<()<<","<()"< ["<()<<","<()"< itkImageType; typedef itk::VTKImageToImageFilter< itkImageType > VtkToItkConnection; typename VtkToItkConnection::Pointer conv; // No converter yet : create it and set its input - if (!mConverter) - { - bbtkDebugMessage("process",5," ["<SetInput( this->bbGetInputIn() ); - } - else - { - bbtkDebugMessage("process",5," ["< - ((itk::ProcessObject*)mConverter); - if (!conv) - { - bbtkDebugMessage("process",5," ["<UnRegister(); - conv = VtkToItkConnection::New(); - mConverter = conv; - conv->SetInput( this->bbGetInputIn() ); - } - // Input image type did not change but input image pointer did: - // set new input + + //EED 2025 ups + mConverter=NULL; + + if (!mConverter) + { + bbtkDebugMessage("process",5," ["<SetInput( this->bbGetInputIn() ); + } else { + bbtkDebugMessage("process",5," ["< ((itk::ProcessObject*)mConverter); + if (!conv) + { + bbtkDebugMessage("process",5," ["<UnRegister(); + conv = VtkToItkConnection::New(); + mConverter = conv; + conv->SetInput( this->bbGetInputIn() ); + } + // Input image type did not change but input image pointer did: + // set new input else if ( this->bbGetInputIn() != conv->GetExporter()->GetInput()) - { + { bbtkDebugMessage("process",5," ["<SetInput( this->bbGetInputIn() ); - } - else - { + } else{ bbtkDebugMessage("process",5," ["<Update(); - - itkImageType* out = const_cast(conv->GetOutput()); - bbSetOutputOut(out); - } - catch( itk::ExceptionObject & e) - { - bbtkError("vtkImageData2itkImage<" - <()<<","<::Convert() : "<()<<","<() *DONE*"<Update(); + itkImageType* out = const_cast(conv->GetOutput()); + bbSetOutputOut(out); + } catch( itk::ExceptionObject & e) { + bbtkError("vtkImageData2itkImage<" <()<<","<::Convert() : "<()<<","<() *DONE*"<In2, 22 round In1, 23 rint In1, 24 floor In1, 25 ceil In1, 26 trunc In1, 30 equal In1=In2",int,""); + BBTK_INPUT(MathOperation,Type,"Type (defalult 0): 0 adition (default), 1 sustraction In1-In2, 2 multiplication In1*In2, 3 division In1/In2, 4 sqrt In1, 5 log In1, 6 exp In1, 7 incremental int [In1..In2], 8 random int [In1..In2], 9 sin In1-rad, 10 cos In1-rad, 11 tan In1-rad, 12 asin In 1, 13 acos In1, 14 atan In1, 15 atan2 In1 In2 , 16 min, 17 max, 18 abs In1, 19 module In1%In2 , 20 lessThan In1In2, 22 round In1, 23 rint In1, 24 floor In1, 25 ceil In1, 26 trunc In1, 30 equal In1=In2",int,""); BBTK_OUTPUT(MathOperation,Out,"Output",double,""); BBTK_END_DESCRIBE_BLACK_BOX(MathOperation); diff --git a/packages/std/src/bbstdVectorFilterDouble.cxx b/packages/std/src/bbstdVectorFilterDouble.cxx index 3d467ca..ee0f1f4 100644 --- a/packages/std/src/bbstdVectorFilterDouble.cxx +++ b/packages/std/src/bbstdVectorFilterDouble.cxx @@ -250,6 +250,7 @@ void VectorFilterDouble::Process() Out2[j]=In2[iBack]; } // for i } // Type 7 + if (bbGetInputType()==8) // order all vectors using as base the vector InK { int k=0; @@ -269,7 +270,7 @@ void VectorFilterDouble::Process() { for (j=i;j