From 9155aa82faa81612fbfe56671f80c10103e69595 Mon Sep 17 00:00:00 2001 From: Eduardo DAVILA Date: Sat, 9 Dec 2017 23:32:49 +0100 Subject: [PATCH] #3157 BBTK Feature New Normal - InvertCropBox Active --- packages/vtk/src/bbvtkCreateImage.cxx | 76 +++++++++++++-------------- packages/vtk/src/bbvtkInversCrop.cxx | 4 +- 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/packages/vtk/src/bbvtkCreateImage.cxx b/packages/vtk/src/bbvtkCreateImage.cxx index 074e9de..8940726 100644 --- a/packages/vtk/src/bbvtkCreateImage.cxx +++ b/packages/vtk/src/bbvtkCreateImage.cxx @@ -53,13 +53,9 @@ void CreateImage::Process() // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') - - - double spc[6]; + double spc[3]; int dim[3]; int outputformat = VTK_UNSIGNED_SHORT; - - if (bbGetInputOutputFormat()=="VTK_BIT") outputformat = VTK_BIT; // 1 else if (bbGetInputOutputFormat()=="VTK_CHAR") outputformat = VTK_CHAR; // 2 else if (bbGetInputOutputFormat()=="MET_CHAR") outputformat = VTK_CHAR; // 2 @@ -82,49 +78,53 @@ void CreateImage::Process() else if (bbGetInputOutputFormat()=="MET_FLOAT") outputformat = VTK_FLOAT; // 10 else if (bbGetInputOutputFormat()=="VTK_DOUBLE") outputformat = VTK_DOUBLE; // 11 else if (bbGetInputOutputFormat()=="MET_DOUBLE") outputformat = VTK_DOUBLE; // 11 - - - spc[0] = bbGetInputSpacing()[0]; spc[1] = bbGetInputSpacing()[1]; spc[2] = bbGetInputSpacing()[2]; - dim[0] = bbGetInputDimensions()[0]; dim[1] = bbGetInputDimensions()[1]; dim[2] = bbGetInputDimensions()[2]; - + if ((dim[0]<=0)||(dim[1]<=0)||(dim[2]<=0)) + { + dim[0]=1; + dim[1]=1; + dim[2]=1; + } + if ((spc[0]<=0)||(spc[1]<=0)||(spc[2]<=0)) + { + spc[0]=1; + spc[1]=1; + spc[2]=1; + } +//EED 2017-12-7 + if (imageoutput==NULL) + { + imageoutput = vtkImageData::New(); + } imageoutput->Initialize(); imageoutput->SetScalarType( outputformat ); imageoutput->SetSpacing( spc ); imageoutput->SetDimensions( dim[0], dim[1], dim[2] ); imageoutput->AllocateScalars(); - - - int i,j,k; - long sizeBlock; - - for (i=0; iSetScalarComponentFromDouble(i,0,0, 0, bbGetInputInitialValue() ); - } - - sizeBlock= dim[0] * imageoutput->GetScalarSize(); - for (j=1; jGetScalarPointer(0,j,0), imageoutput->GetScalarPointer() , sizeBlock ); - } - - sizeBlock= dim[0] * dim[1] * imageoutput->GetScalarSize(); - for (k=0; kGetScalarPointer(0,0,k) ,imageoutput->GetScalarPointer() , sizeBlock ); - } // for k - - imageoutput->Update(); - imageoutput->Modified(); - bbSetOutputOut(imageoutput); - - + int i,j,k; + long sizeBlock; + for (i=0; iSetScalarComponentFromDouble(i,0,0, 0, bbGetInputInitialValue() ); + } + sizeBlock= dim[0] * imageoutput->GetScalarSize(); + for (j=1; jGetScalarPointer(0,j,0), imageoutput->GetScalarPointer() , sizeBlock ); + } + sizeBlock= dim[0] * dim[1] * imageoutput->GetScalarSize(); + for (k=0; kGetScalarPointer(0,0,k) ,imageoutput->GetScalarPointer() , sizeBlock ); + } // for k + imageoutput->Update(); + imageoutput->Modified(); + bbSetOutputOut(imageoutput); } //===== @@ -161,7 +161,7 @@ void CreateImage::bbUserInitializeProcessing() // but this is where you should allocate the internal/output pointers // if any - imageoutput = vtkImageData::New(); +//EED 2017-12-7 imageoutput = vtkImageData::New(); } diff --git a/packages/vtk/src/bbvtkInversCrop.cxx b/packages/vtk/src/bbvtkInversCrop.cxx index 28c097a..1170d5c 100644 --- a/packages/vtk/src/bbvtkInversCrop.cxx +++ b/packages/vtk/src/bbvtkInversCrop.cxx @@ -28,7 +28,7 @@ void InversCrop::Process() if (bbGetInputActive()==true) { -printf("EED InversCrop::Process %d %d %d\n", bbGetInputOrigin()[0], bbGetInputOrigin()[1], bbGetInputOrigin()[2]); +printf("EED %p InversCrop::Process %d %d %d\n", this,bbGetInputOrigin()[0], bbGetInputOrigin()[1], bbGetInputOrigin()[2]); if ( (bbGetInputImageFix()!=NULL) && (bbGetInputImageMove()!=NULL) ) { if ( bbGetInputImageFix()->GetScalarType()==bbGetInputImageMove()->GetScalarType() ) @@ -104,6 +104,8 @@ printf("EED InversCrop::Process %d %d %d\n", bbGetInputOrigin()[0], bbGetInputOr } // If Image Fixe Move the same GetScalarType else { printf ("ERROR: InversCrop both ImageFixe and ImageMove need the same format.\n"); + printf (" type ImageFix:%d type ImageMove:%d\n", bbGetInputImageFix()->GetScalarType(), bbGetInputImageMove()->GetScalarType() ); + } } // If Image Fixe Move != NULL else { -- 2.47.1