X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkUnaryOperations.cxx;fp=packages%2Fvtk%2Fsrc%2FbbvtkUnaryOperations.cxx;h=706949fe06a2c00025ac4e0ea0d301489264561e;hb=427d8c0ac838ab789a57b28f62a7f9ff243e7b60;hp=dd9b65a8c6a6d2210179a918b4721c65b75ecfa7;hpb=c2d2ccbc4bac635e5d0b802d9830efd94b060dab;p=bbtk.git diff --git a/packages/vtk/src/bbvtkUnaryOperations.cxx b/packages/vtk/src/bbvtkUnaryOperations.cxx index dd9b65a..706949f 100644 --- a/packages/vtk/src/bbvtkUnaryOperations.cxx +++ b/packages/vtk/src/bbvtkUnaryOperations.cxx @@ -57,66 +57,58 @@ void UnaryOperations::Process() ope->SetInput1((vtkDataObject*)bbGetInputIn1()); - ope->SetConstantK(bbGetInputInConstant()); - ope->SetConstantC(bbGetInputInConstant()); - switch (bbGetInputOperation()) { case 0: + ope->SetConstantC( bbGetInputInConstant() ); ope->SetOperationToAddConstant(); break; case 1: -//EED Borrame crearPredeterminado(); - ope->SetInput2((vtkDataSet*) constante); - ope->SetOperationToSubtract(); + ope->SetConstantC( -1.0 * bbGetInputInConstant() ); + ope->SetOperationToAddConstant(); break; case 2: - ope->SetInput2((vtkDataSet*) constante); - ope->SetOperationToMultiply(); + ope->SetConstantK( bbGetInputInConstant() ); + ope->SetOperationToMultiplyByK(); +printf("EED UnaryOperations::Process() 2 \n"); break; case 3: - - ope->SetOperationToDivide(); + ope->SetConstantK( 1.0/bbGetInputInConstant() ); + ope->SetOperationToMultiplyByK(); +printf("EED UnaryOperations::Process() 3 \n"); break; case 4: ope->SetOperationToInvert(); break; - case 9: - ope->SetOperationToAbsoluteValue(); - break; case 5: - ope->SetOperationToSin(); break; case 6: - ope->SetOperationToCos(); break; case 7: - ope->SetOperationToExp(); break; case 8: - ope->SetOperationToLog(); break; - - -/* EED 21Juin 2011 Borrame + case 9: + ope->SetOperationToAbsoluteValue(); + break; case 10: - substractWithMinimum(); - bbSetOutputOut(constante); - return; + ope->SetOperationToSquareRoot(); break; case 11: - MultiplyBy(); - bbSetOutputOut(constante); - return; + ope->SetConstantC( bbGetInputInConstant() ); + ope->SetConstantK( bbGetInputNewValue() ); + ope->SetOperationToReplaceCByK(); break; -*/ + + + default: std::cout << "Invalid Operation" << std::endl; @@ -124,6 +116,7 @@ void UnaryOperations::Process() break; } + ope->Modified(); ope->Update(); vtkImageData* salida = ope->GetOutput(); @@ -132,73 +125,6 @@ void UnaryOperations::Process() } -/* Borrame Eduardo - Juan Pablo -void UnaryOperations::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(); - } - } - } -} -*/ - - -void UnaryOperations::substractWithMinimum() -{ - int ext[6]; - double spc[3]; - vtkImageData* inicial = bbGetInputIn1(); - - - if (constante == NULL) - { - inicial->GetExtent(ext); - inicial->GetSpacing(spc); - constante = vtkImageData::New(); - constante->SetExtent(ext); - constante->SetSpacing(spc); - constante->SetOrigin(inicial->GetOrigin()); - 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++) - { - double temp1 = lector.getPixelValue(i,j,k,inicial); - double temp = temp1 - bbGetInputInConstant(); - if (temp < 0) - temp = 0; - lector.setPixelValue(i,j,k,constante,temp); - } - } - } -} void UnaryOperations::bbUserSetDefaultValues() @@ -209,6 +135,7 @@ void UnaryOperations::bbUserSetDefaultValues() bbSetInputIn1(NULL); bbSetOutputOut(NULL); bbSetInputInConstant(0); + bbSetInputNewValue(0); bbSetInputOperation(0); ope = vtkImageMathematics::New(); constante = NULL;