]> Creatis software - bbtk.git/commitdiff
#3509 Bug BinaryOperation
authorEduardo DAVILA <davila@creatis.insa-lyon.fr>
Mon, 21 Aug 2023 10:52:56 +0000 (12:52 +0200)
committerEduardo DAVILA <davila@creatis.insa-lyon.fr>
Mon, 21 Aug 2023 10:52:56 +0000 (12:52 +0200)
kernel/src/bbtkBlackBox.cxx
packages/vtk/src/bbvtkBinaryOperations.cxx

index 3bd38f7bb40276dd126a9067e15f816f7b889708..b753c6f835dda85fe47d14a49a3cb9c8da5c1944 100644 (file)
@@ -748,15 +748,15 @@ namespace bbtk
                         )
                        {
                 
-//auto start = std::chrono::high_resolution_clock::now();
-//printf("EED BlackBox::bbRecursiveExecute bbProcess start %s \n", bbGetFullName().c_str() );
-                
-                               this->bbProcess();              
+printf("EED BlackBox::bbRecursiveExecute bbProcess start %s \n", bbGetFullName().c_str() );
+auto start = std::chrono::high_resolution_clock::now();
+
+                this->bbProcess();
                 
-//auto stop       = std::chrono::high_resolution_clock::now();
-//auto duration   = duration_cast<std::chrono::microseconds>(stop - start);
-//printf("EED BlackBox::bbRecursiveExecute bbProcess time= %ld  %s \n", duration.count() , bbGetFullName().c_str() );
-//printf("EED BlackBox::bbRecursiveExecute bbProcess end %s \n", bbGetFullName().c_str() );
+auto stop       = std::chrono::high_resolution_clock::now();
+auto duration   = duration_cast<std::chrono::microseconds>(stop - start);
+printf("EED BlackBox::bbRecursiveExecute bbProcess time= %ld  %s \n", duration.count() , bbGetFullName().c_str() );
+printf("EED BlackBox::bbRecursiveExecute bbProcess end %s \n", bbGetFullName().c_str() );
 
                    } // Manual analysis
                  
index 745b9c1ae80fc407f1b2bb132be4a5829e1372c6..194b3984c530a1b141a601321eee8972cdc54f11 100644 (file)
@@ -35,53 +35,60 @@ BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,BinaryOperations)
 BBTK_BLACK_BOX_IMPLEMENTATION(BinaryOperations,bbtk::AtomicBlackBox);
 void BinaryOperations::Process()
 {
-// THE MAIN PROCESSING METHOD BODY
-//   Here we simply set the input 'In' value to the output 'Out'
-//   And print out the output value
-// INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
-//    void bbSet{Input|Output}NAME(const TYPE&)
-//    const TYPE& bbGet{Input|Output}NAME() const
-//    Where :
-//    * NAME is the name of the input/output
-//      (the one provided in the attribute 'name' of the tag 'input')
-//    * TYPE is the C++ type of the input/output
-//      (the one provided in the attribute 'type' of the tag 'input')
-
+    // THE MAIN PROCESSING METHOD BODY
+    //   Here we simply set the input 'In' value to the output 'Out'
+    //   And print out the output value
+    // INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
+    //    void bbSet{Input|Output}NAME(const TYPE&)
+    //    const TYPE& bbGet{Input|Output}NAME() const
+    //    Where :
+    //    * NAME is the name of the input/output
+    //      (the one provided in the attribute 'name' of the tag 'input')
+    //    * TYPE is the C++ type of the input/output
+    //      (the one provided in the attribute 'type' of the tag 'input')
+    
     
-       if (bbGetInputIn1() == NULL)
-       {
-               printf( "EED Warning!!!  (%s)  BinaryOperations::Process  Set In1 at least", bbGetFullName().c_str() );
+    if (bbGetInputIn1() == NULL)
+    {
+        printf( "EED Warning!!!  (%s)  BinaryOperations::Process  Set In1 at least", bbGetFullName().c_str() );
         bbSetOutputOut(NULL);
-               return;
-       }
+        return;
+    }
+    
+    if (ope!=NULL)
+    {
+        ope->Delete();
+        ope = NULL;
+    } // if
+    ope = vtkImageMathematics::New();
 
-//EED 2017-01-01 Migration VTK7
+    
+    //EED 2017-01-01 Migration VTK7
 #if (VTK_MAJOR_VERSION <= 5) 
-       ope->SetInput1((vtkDataObject*)bbGetInputIn1());
+    ope->SetInput1((vtkDataObject*)bbGetInputIn1());
 #endif
 #if (VTK_MAJOR_VERSION >= 6) 
-       ope->SetInput1Data((vtkDataObject*)bbGetInputIn1());
+    ope->SetInput1Data((vtkDataObject*)bbGetInputIn1());
 #endif
-
-       if (bbGetInputIn2() != NULL)
-       {
-//EED 2017-01-01 Migration VTK7
+    
+    if (bbGetInputIn2() != NULL)
+    {
+        //EED 2017-01-01 Migration VTK7
 #if (VTK_MAJOR_VERSION <= 5) 
-               ope->SetInput2((vtkDataObject*)bbGetInputIn2());
+        ope->SetInput2((vtkDataObject*)bbGetInputIn2());
 #endif
 #if (VTK_MAJOR_VERSION >= 6) 
-               ope->SetInput2Data((vtkDataObject*)bbGetInputIn2());
+        ope->SetInput2Data((vtkDataObject*)bbGetInputIn2());
 #endif
-
-       } else {
+    } else {
         printf( "EED Warning!!!  (%s)  BinaryOperations::Process  Set In2 at least", bbGetFullName().c_str() );
         bbSetOutputOut(NULL);
         return;
-       }
+    }
     
     if ( (bbGetInputOperation()>=0) &&  (bbGetInputOperation()<=5) )
     {
-        switch (bbGetInputOperation())
+        switch ( bbGetInputOperation() )
         {
             case 0:
                 ope->SetOperationToAdd();
@@ -110,7 +117,7 @@ void BinaryOperations::Process()
         ope->Update();
         bbSetOutputOut( ope->GetOutput() );
     }  // if operation 0..5
-
+    
     if ( bbGetInputOperation()==6 )
     {
         bbSetOutputOut( bbGetInputIn1() );
@@ -119,45 +126,39 @@ void BinaryOperations::Process()
     {
         bbSetOutputOut( bbGetInputIn2() );
     }
-
-//     bbSignalOutputModification();
+    // bbSignalOutputModification();
 }
 
 
 void BinaryOperations::bbUserSetDefaultValues()
 {
-
-//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
-//    Here we initialize the input 'In' to 0
-   bbSetInputIn1(NULL);
-   bbSetInputIn2(NULL);
-   bbSetOutputOut(NULL);
-   bbSetInputOperation(0);
-   ope = vtkImageMathematics::New();
+    //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
+    //    Here we initialize the input 'In' to 0
+    bbSetInputIn1(NULL);
+    bbSetInputIn2(NULL);
+    bbSetOutputOut(NULL);
+    bbSetInputOperation(0);
+    ope = NULL;
 }
 
 
 void BinaryOperations::bbUserInitializeProcessing()
 {
-
-//  THE INITIALIZATION METHOD BODY :
-//    Here does nothing
-//    but this is where you should allocate the internal/output pointers
-//    if any
-
+    //  THE INITIALIZATION METHOD BODY :
+    //    Here does nothing
+    //    but this is where you should allocate the internal/output pointers
+    //    if any
 }
 
 
 void BinaryOperations::bbUserFinalizeProcessing()
 {
-
-//  THE FINALIZATION METHOD BODY :
-//    Here does nothing
-//    but this is where you should desallocate the internal/output pointers
-//    if any
-
+    //  THE FINALIZATION METHOD BODY :
+    //    Here does nothing
+    //    but this is where you should desallocate the internal/output pointers
+    //    if any
 }
-}
-// EO namespace bbvtk
+
+}// EO namespace bbvtk