X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkBinaryOperations.cxx;h=745b9c1ae80fc407f1b2bb132be4a5829e1372c6;hb=9ce7b1159290d46aa6e38c4706d3fe5435d80508;hp=106ceb27eb8c33530d01012d2f4e9c746fa2c363;hpb=ce796ef8e6c470b95b8f00cad76c25a9e4a88df1;p=bbtk.git diff --git a/packages/vtk/src/bbvtkBinaryOperations.cxx b/packages/vtk/src/bbvtkBinaryOperations.cxx index 106ceb2..745b9c1 100644 --- a/packages/vtk/src/bbvtkBinaryOperations.cxx +++ b/packages/vtk/src/bbvtkBinaryOperations.cxx @@ -35,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 @@ -48,9 +47,11 @@ 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; } @@ -73,46 +74,53 @@ void BinaryOperations::Process() #endif } else { - std::cout << "Set In2" << std::endl; + 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; - case 4: - ope->SetOperationToMax(); - break; - case 5: - ope->SetOperationToMin(); - break; - default: - std::cout << "Invalid Operation" << std::endl; - return; - break; - } - - ope->Modified(); - 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(); }