X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkCreateImage.cxx;h=2c75a26041084cd93d041a8fcc734e6aef1c948f;hb=edb8e9b8948e7216e06b3ef5228b16f18417ca52;hp=499d3364e26d89a9613e0af4f9a5be8ffa28b509;hpb=0c810ab19d1d6ee1fd14a54ea6e1ff3f4d9f89f0;p=bbtk.git diff --git a/packages/vtk/src/bbvtkCreateImage.cxx b/packages/vtk/src/bbvtkCreateImage.cxx index 499d336..2c75a26 100644 --- a/packages/vtk/src/bbvtkCreateImage.cxx +++ b/packages/vtk/src/bbvtkCreateImage.cxx @@ -53,12 +53,11 @@ void CreateImage::Process() // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') - int dim[3]; - dim[0] = bbGetInputDimensions()[0]; - dim[1] = bbGetInputDimensions()[1]; - dim[2] = bbGetInputDimensions()[2]; - - if (imageoutput!=NULL) + int dim[3]; + dim[0] = bbGetInputDimensions()[0]; + dim[1] = bbGetInputDimensions()[1]; + dim[2] = bbGetInputDimensions()[2]; + if (imageoutput!=NULL) { imageoutput->Delete(); imageoutput = NULL; @@ -68,9 +67,34 @@ void CreateImage::Process() { double spc[3]; int outputformat = VTK_UNSIGNED_SHORT; - spc[0] = bbGetInputSpacing()[0]; - spc[1] = bbGetInputSpacing()[1]; - spc[2] = bbGetInputSpacing()[2]; + + spc[0] = 1; + spc[1] = 1; + spc[2] = 1; + if ( bbGetInputSpacing().size()==3 ) + { + spc[0] = bbGetInputSpacing()[0]; + spc[1] = bbGetInputSpacing()[1]; + spc[2] = bbGetInputSpacing()[2]; + if ((spc[0]<=0)||(spc[1]<=0)||(spc[2]<=0)) + { + spc[0] = 1; + spc[1] = 1; + spc[2] = 1; + } + } // size spc 3 + if ( bbGetInputSpacing().size()==2 ) + { + spc[0] = bbGetInputSpacing()[0]; + spc[1] = bbGetInputSpacing()[1]; + if ((spc[0]<=0)||(spc[1]<=0)) + { + spc[0] = 1; + spc[1] = 1; + } + } // if size spc 2 + + 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 @@ -96,16 +120,11 @@ void CreateImage::Process() 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; + dim[0] = 1; + dim[1] = 1; + dim[2] = 1; } + imageoutput = vtkImageData::New(); imageoutput->Initialize(); imageoutput->SetSpacing( spc ); @@ -122,25 +141,20 @@ void CreateImage::Process() int i,j,k; long sizeBlock; - for (i=0; iSetScalarComponentFromDouble(i,0,0, 0, bbGetInputInitialValue() ); } // for i - sizeBlock= dim[0] * imageoutput->GetScalarSize(); for (j=1; jGetScalarPointer(0,j,0), imageoutput->GetScalarPointer() , sizeBlock ); } // for j - sizeBlock= dim[0] * dim[1] * imageoutput->GetScalarSize(); for (k=0; kGetScalarPointer(0,0,k) ,imageoutput->GetScalarPointer() , sizeBlock ); } // for k - - //EED 2017-01-01 Migration VTK7 #if (VTK_MAJOR_VERSION <= 5) imageoutput->Update(); @@ -150,9 +164,8 @@ void CreateImage::Process() #endif imageoutput->Modified(); } // if dim = 0 - bbSetOutputOut(imageoutput); -} +} //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)