]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkBinaryOperations.cxx
Clean code
[bbtk.git] / packages / vtk / src / bbvtkBinaryOperations.cxx
index cedf22e6a39f99a8b59294475ca0ba9ea93f99a2..745b9c1ae80fc407f1b2bb132be4a5829e1372c6 100644 (file)
@@ -1,3 +1,30 @@
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  This software is governed by the CeCILL-B license under French law and
+ #  abiding by the rules of distribution of free software. You can  use,
+ #  modify and/ or redistribute the software under the terms of the CeCILL-B
+ #  license as circulated by CEA, CNRS and INRIA at the following URL
+ #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ #  or in the file LICENSE.txt.
+ #
+ #  As a counterpart to the access to the source code and  rights to copy,
+ #  modify and redistribute granted by the license, users are provided only
+ #  with a limited warranty  and the software's author,  the holder of the
+ #  economic rights,  and the successive licensors  have only  limited
+ #  liability.
+ #
+ #  The fact that you are presently reading this means that you have had
+ #  knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
+
 #include "bbvtkBinaryOperations.h"
 #include "bbvtkPackage.h"
 namespace bbvtk
@@ -8,7 +35,6 @@ 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
@@ -21,54 +47,80 @@ void BinaryOperations::Process()
 //    * TYPE is the C++ type of the input/output
 //      (the one provided in the attribute 'type' of the tag 'input')
 
+    
        if (bbGetInputIn1() == NULL)
        {
-               std::cout << "Set In1 at least" << std::endl;
+               printf( "EED Warning!!!  (%s)  BinaryOperations::Process  Set In1 at least", bbGetFullName().c_str() );
+        bbSetOutputOut(NULL);
                return;
        }
 
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5) 
        ope->SetInput1((vtkDataObject*)bbGetInputIn1());
+#endif
+#if (VTK_MAJOR_VERSION >= 6) 
+       ope->SetInput1Data((vtkDataObject*)bbGetInputIn1());
+#endif
 
        if (bbGetInputIn2() != NULL)
        {
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5) 
                ope->SetInput2((vtkDataObject*)bbGetInputIn2());
-
-       }
-       else
-       {
-           std::cout << "Set In2" << std::endl;
+#endif
+#if (VTK_MAJOR_VERSION >= 6) 
+               ope->SetInput2Data((vtkDataObject*)bbGetInputIn2());
+#endif
+
+       } else {
+        printf( "EED Warning!!!  (%s)  BinaryOperations::Process  Set In2 at least", bbGetFullName().c_str() );
+        bbSetOutputOut(NULL);
         return;
        }
-
-
-
-       switch (bbGetInputOperation())
-       {
-               case 0:
-                               ope->SetOperationToAdd();
-               break;
-               case 1:
-                               ope->SetOperationToSubtract();
-
-               break;
-               case 2:
-                               ope->SetOperationToMultiply();
-               break;
-               case 3:
-                               ope->SetOperationToDivide();
-               break;
-               default:
-                       std::cout << "Invalid Operation" << std::endl;
-                       return;
-               break;
-       }
-
-       ope->Update();
-       vtkImageData* salida = ope->GetOutput();
-
-       bbSetOutputOut(salida);
-       bbSignalOutputModification();
-
+    
+    if ( (bbGetInputOperation()>=0) &&  (bbGetInputOperation()<=5) )
+    {
+        switch (bbGetInputOperation())
+        {
+            case 0:
+                ope->SetOperationToAdd();
+                break;
+            case 1:
+                ope->SetOperationToSubtract();
+                break;
+            case 2:
+                ope->SetOperationToMultiply();
+                break;
+            case 3:
+                ope->SetOperationToDivide();
+                break;
+            case 4:
+                ope->SetOperationToMax();
+                break;
+            case 5:
+                ope->SetOperationToMin();
+                break;
+            default:
+                std::cout << "Invalid Operation" << std::endl;
+                return;
+                break;
+        }
+        ope->Modified();
+        ope->Update();
+        bbSetOutputOut( ope->GetOutput() );
+    }  // if operation 0..5
+
+    if ( bbGetInputOperation()==6 )
+    {
+        bbSetOutputOut( bbGetInputIn1() );
+    }
+    if ( bbGetInputOperation()==7 )
+    {
+        bbSetOutputOut( bbGetInputIn2() );
+    }
+
+//     bbSignalOutputModification();
 }