]> Creatis software - bbtk.git/commitdiff
#3539 Bug VectorFilterDouble Nearest Point vtk9itk5wx3-macos
authoreduardo.davila@creatis.insa-lyon.fr <eduardo.davila@creatis.insa-lyon.fr>
Sun, 19 Oct 2025 16:23:20 +0000 (18:23 +0200)
committereduardo.davila@creatis.insa-lyon.fr <eduardo.davila@creatis.insa-lyon.fr>
Sun, 19 Oct 2025 16:23:20 +0000 (18:23 +0200)
packages/itk/src/bbitkResampleImageFilter.cxx
packages/itk/src/bbitkResampleImageFilter.h
packages/itkvtk/src/bbitkvtkvtkImageData2itkImage.cxx
packages/itkvtk/src/bbitkvtkvtkImageData2itkImage.h
packages/std/src/bbstdMathOperation.h
packages/std/src/bbstdVectorFilterDouble.cxx
packages/std/src/bbstdWriteColumnsString.cxx

index 57bcc05e8b78cbc302039b5df6b89a6347fde4e6..47f54e7f26ef567dc78979a5e87b9fc75f87b99e 100644 (file)
   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_
 
index da653e691025635a64438390c83ad3f1a4404e86..ffead945cc9819131ca920335b3923d20703c16b 100644 (file)
@@ -33,9 +33,6 @@
   Version:   $Revision: 1.13 $
 =========================================================================*/
 
-
-
-
 #ifdef _USE_ITK_
 
 #include <math.h>
@@ -51,7 +48,6 @@
 
 namespace bbitk
 {
-
  
  //===================================================
    class /*BBTK_EXPORT*/ ResampleImageFilter
index 45bb40289c41e24133f37c25bc6f320995d7c9a1..b65f3e739dea7a3faed3adaed73e65c42cdb762a 100644 (file)
@@ -80,82 +80,66 @@ namespace bbitkvtk
      BBTK_TEMPLATE_VTK_IMAGE_DATA_SWITCH(bbGetInputIn(),Convert)
   }
 
-
    template<class T, unsigned int D>
    void vtkImageData2itkImage::Convert()
    {
-    bbtkDebugMessage("process",5,"==> ["<<bbGetFullName()<<"] : Convert<"
-                       <<bbtk::TypeName<T>()<<","<<D
-                       <<">()"<<std::endl);
-
-
+    bbtkDebugMessage("process",5,"==> ["<<bbGetFullName()<<"] : Convert<" <<bbtk::TypeName<T>()<<","<<D <<">()"<<std::endl);
     typedef itk::Image<T,D> itkImageType;
     typedef itk::VTKImageToImageFilter< itkImageType > VtkToItkConnection;
     typename VtkToItkConnection::Pointer conv;
 
     // No converter yet : create it and set its input
-    if (!mConverter) 
-      {
-       bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : No converter yet : creating it"<<std::endl);
-       conv = VtkToItkConnection::New();
-       mConverter = conv;
-       conv->SetInput( this->bbGetInputIn() );
-      }
-    else 
-      {
-       bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : Converter ok "<<std::endl);
-       // Input vtkImage type changed ? 
-       // Have to change the converter and set its input
-       conv = dynamic_cast<VtkToItkConnection*>
-                          ((itk::ProcessObject*)mConverter);
-       if (!conv) 
-         {
-          bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : Converter of wrong input type : reacreating it "<<std::endl);
-
-           mConverter->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,"    ["<<bbGetFullName()<<"] : No converter yet : creating it"<<std::endl);
+        conv        = VtkToItkConnection::New();
+        mConverter  = conv;
+        conv->SetInput( this->bbGetInputIn() );
+    } else {
+        bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : Converter ok "<<std::endl);
+        // Input vtkImage type changed ? 
+        // Have to change the converter and set its input
+        conv = dynamic_cast<VtkToItkConnection*> ((itk::ProcessObject*)mConverter);
+        if (!conv)
+        {
+            bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : Converter of wrong input type : reacreating it "<<std::endl);
+            mConverter->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,"    ["<<bbGetFullName()<<"] : Converter input changed : resetting it"<<std::endl);
-
            conv->SetInput( this->bbGetInputIn() );
-         }
-       else 
-         {
+    } else{
            bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : Nothing changed"<<std::endl);
-         }
-      }
+    }
+        
+    }
+       
     try
-      {
-       
-       bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : Trying update"<<std::endl);  
-
-       conv->Update();
-
-       itkImageType* out = const_cast<itkImageType*>(conv->GetOutput());
-       bbSetOutputOut(out);
-      }
-    catch( itk::ExceptionObject & e) 
-      {
-       bbtkError("vtkImageData2itkImage<"
-                 <<bbtk::TypeName<T>()<<","<<D
-                 <<">::Convert() : "<<e);
-      } 
-    bbtkDebugMessage("process",5,"<== ["<<bbGetFullName()<<"] : Convert<"
-                    <<bbtk::TypeName<T>()<<","<<D
-                    <<">() *DONE*"<<std::endl);
+    {
+        bbtkDebugMessage("process",5,"    ["<<bbGetFullName()<<"] : Trying update"<<std::endl);
+        conv->Update();
+        itkImageType* out = const_cast<itkImageType*>(conv->GetOutput());
+        bbSetOutputOut(out);
+    } catch( itk::ExceptionObject & e) {
+        bbtkError("vtkImageData2itkImage<" <<bbtk::TypeName<T>()<<","<<D <<">::Convert() : "<<e);
+    }
+    bbtkDebugMessage("process",5,"<== ["<<bbGetFullName()<<"] : Convert<" <<bbtk::TypeName<T>()<<","<<D <<">() *DONE*"<<std::endl);
 }
 
-
   void vtkImageData2itkImage::bbUserSetDefaultValues()
   {
     //    bbSetOutputOut(NULL);
-    mConverter = 0;
+    mConverter = NULL;
   }
 
   void vtkImageData2itkImage::bbUserInitializeProcessing()
@@ -166,9 +150,7 @@ namespace bbitkvtk
   {
   }
 
-
-}
-// eo namespace bbtk
+}// eo namespace bbtk
 
 #endif
 // _USE_VTK_
index 470bae92f5ddbe774af646d4378a9eee4fa37892..d8fdbb8e6c5554817d8f43a256eb72468afd02b9 100644 (file)
@@ -82,11 +82,8 @@ namespace bbitkvtk
   BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
   BBTK_DESCRIPTION("Converts a vtkImageData* to a generic itkImage pointer");
   BBTK_DEFAULT_ADAPTOR();
-  BBTK_INPUT(vtkImageData2itkImage,In,
-            "Input vtkImageData",vtkImageData*,"");
-  BBTK_OUTPUT(vtkImageData2itkImage,Out,
-             "Output itkImage",
-             bbitk::anyImagePointer,"");
+  BBTK_INPUT(vtkImageData2itkImage,In,"Input vtkImageData",vtkImageData*,"");
+  BBTK_OUTPUT(vtkImageData2itkImage,Out,"Output itkImage",bbitk::anyImagePointer,"");
   BBTK_END_DESCRIBE_BLACK_BOX(vtkImageData2itkImage);
   //=================================================================
 
index a6dc725ac6b1ee5e561ba3e63e11a9d563cac201..0b2a2ddaa1d9b1c4792052823e302a5f61184f48 100644 (file)
@@ -42,7 +42,7 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(MathOperation,bbtk::AtomicBlackBox);
   BBTK_CATEGORY("empty");
   BBTK_INPUT(MathOperation,In1,"First input",double,"");
   BBTK_INPUT(MathOperation,In2,"Second input",double,"");
-  BBTK_INPUT(MathOperation,Type,"Type (defalult 0): 0  adition (default), 1 sustraction In1-In2, 2 multiplication In1*In2, 3 divisiuon 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 In1<In2, 21 greaterThan In1>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 In1<In2, 21 greaterThan In1>In2, 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);
index 3d467ca3641ec31f3e5860dded5fdeb6a5ac42f5..ee0f1f4601d40ccd87194adfe07f9d4b3acf14bd 100644 (file)
@@ -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<size;j++)
                        {
-                               if ((*pLstVecOut[k])[j] <= (*pLstVecOut[k])[i] )    ///  <<<  k element to be order
+                               if ((*pLstVecOut[k])[j] < (*pLstVecOut[k])[i] )    ///  <<<  k element to be order
                                {
                                        for (ii=0;ii<sizeII;ii++)
                                        {
@@ -281,6 +282,7 @@ void VectorFilterDouble::Process()
                        } // for j
                } // for i
        } // Type 8
+    
        if (bbGetInputType()==9)   // Invert vectors
        {
                double tmp;
index 6c0845c9b38500b37691ed072a5c57f9295c67f8..534b3006274bbd5b26b0c4ac9c2d39b029a324d5 100644 (file)
@@ -47,7 +47,6 @@ void WriteColumnsString::Process()
        int i,size      = values.size();
        for ( i=0 ; i<size-1 ; i++ )
        {
-        printf("EED WriteColumnsString::Process %d    %d   \n", values[i].size()  , values[i+1].size()  );
                if ( values[i].size() != values[i+1].size() )
                {
                        ok=false;