X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=packages%2Fvtk%2Fsrc%2FbbvtkBinaryOperations.cxx;h=745b9c1ae80fc407f1b2bb132be4a5829e1372c6;hb=9ce7b1159290d46aa6e38c4706d3fe5435d80508;hp=e65289adea8929978a0afb1413f4b4124c909384;hpb=d8d037869b31569b3343b085c25d27d8069e58eb;p=bbtk.git diff --git a/packages/vtk/src/bbvtkBinaryOperations.cxx b/packages/vtk/src/bbvtkBinaryOperations.cxx index e65289a..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) { printf( "EED Warning!!! (%s) BinaryOperations::Process Set In1 at least", bbGetFullName().c_str() ); + bbSetOutputOut(NULL); return; } @@ -73,38 +75,51 @@ void BinaryOperations::Process() } 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; - 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(); }