]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkBinaryOperations.cxx
Clean code
[bbtk.git] / packages / vtk / src / bbvtkBinaryOperations.cxx
index 748357bcad6c345ba6bfebfb95d2a66c0d2e765a..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,82 +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();
-
-}
-void BinaryOperations::crearPredeterminado()
-{
-       int ext[6];
-       vtkImageData* inicial = bbGetInputIn1();
-
-
-       if (constante == NULL)
-       {
-               inicial->GetExtent(ext);
-               constante = vtkImageData::New();
-               constante->SetExtent(ext);
-               constante->SetScalarType(inicial->GetScalarType());
-               constante->AllocateScalars();
-               constante->Update();
-       }
-
-       for (int i=ext[0]; i<=ext[1]; i++)
-       {
-               for (int j=ext[2]; j<=ext[3]; j++)
-               {
-                       for (int k=ext[4]; k<=ext[5]; k++)
-                       {
-                               unsigned short* value = (unsigned short*)constante->GetScalarPointer(i,j,k);
-                               *value = bbGetInputInConstant();
-                       }
-               }
-       }
+    
+    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();
 }
 
 
@@ -108,10 +132,11 @@ void BinaryOperations::bbUserSetDefaultValues()
    bbSetInputIn1(NULL);
    bbSetInputIn2(NULL);
    bbSetOutputOut(NULL);
-   bbSetInputInConstant(0);
+   bbSetInputOperation(0);
    ope = vtkImageMathematics::New();
-   constante = NULL;
 }
+
+
 void BinaryOperations::bbUserInitializeProcessing()
 {
 
@@ -120,8 +145,9 @@ void BinaryOperations::bbUserInitializeProcessing()
 //    but this is where you should allocate the internal/output pointers
 //    if any
 
-
 }
+
+
 void BinaryOperations::bbUserFinalizeProcessing()
 {