X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkBinaryOperations.cxx;h=745b9c1ae80fc407f1b2bb132be4a5829e1372c6;hb=9ce7b1159290d46aa6e38c4706d3fe5435d80508;hp=0e2a523f2b5b4d4193843cb410395b7f8193b10f;hpb=7778b66d794d0ae910cf48147fd0edbd5a4fe2e8;p=bbtk.git diff --git a/packages/vtk/src/bbvtkBinaryOperations.cxx b/packages/vtk/src/bbvtkBinaryOperations.cxx index 0e2a523..745b9c1 100644 --- a/packages/vtk/src/bbvtkBinaryOperations.cxx +++ b/packages/vtk/src/bbvtkBinaryOperations.cxx @@ -47,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 << "EED BinaryOperations::Process Set In1 at least" << std::endl; + printf( "EED Warning!!! (%s) BinaryOperations::Process Set In1 at least", bbGetFullName().c_str() ); + bbSetOutputOut(NULL); return; } @@ -72,39 +74,52 @@ void BinaryOperations::Process() #endif } else { - std::cout << "EED BinaryOperations::Process 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); + + 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(); }