]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkBinaryOperations.cxx
#3509 Bug BinaryOperation
[bbtk.git] / packages / vtk / src / bbvtkBinaryOperations.cxx
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