X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkCreateImage.cxx;fp=packages%2Fvtk%2Fsrc%2FbbvtkCreateImage.cxx;h=074e9de8a37d013d7a1f10b8ae6963035ab529ff;hb=427d8c0ac838ab789a57b28f62a7f9ff243e7b60;hp=9aa9a467c413ea15e34ad2f2c5dd5814904d5768;hpb=c2d2ccbc4bac635e5d0b802d9830efd94b060dab;p=bbtk.git diff --git a/packages/vtk/src/bbvtkCreateImage.cxx b/packages/vtk/src/bbvtkCreateImage.cxx index 9aa9a46..074e9de 100644 --- a/packages/vtk/src/bbvtkCreateImage.cxx +++ b/packages/vtk/src/bbvtkCreateImage.cxx @@ -54,22 +54,37 @@ void CreateImage::Process() // (the one provided in the attribute 'type' of the tag 'input') + double spc[6]; int dim[3]; int outputformat = VTK_UNSIGNED_SHORT; - if (bbGetInputOutputFormat()=="VTK_BIT") outputformat = VTK_BIT; - else if (bbGetInputOutputFormat()=="VTK_CHAR") outputformat = VTK_CHAR; - else if (bbGetInputOutputFormat()=="VTK_SIGNED_CHAR") outputformat = VTK_SIGNED_CHAR; - else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_CHAR") outputformat = VTK_UNSIGNED_CHAR; - else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_SHORT") outputformat = VTK_UNSIGNED_SHORT; - else if (bbGetInputOutputFormat()=="VTK_INT") outputformat = VTK_INT; - else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_INT") outputformat = VTK_UNSIGNED_INT; - else if (bbGetInputOutputFormat()=="VTK_LONG") outputformat = VTK_LONG; - else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_LONG") outputformat = VTK_UNSIGNED_LONG; - else if (bbGetInputOutputFormat()=="VTK_FLOAT") outputformat = VTK_FLOAT; - else if (bbGetInputOutputFormat()=="VTK_DOUBLE") outputformat = VTK_DOUBLE; - + + 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 + else if (bbGetInputOutputFormat()=="VTK_SIGNED_CHAR") outputformat = VTK_SIGNED_CHAR; // 15 + else if (bbGetInputOutputFormat()=="MET_UCHAR") outputformat = VTK_UNSIGNED_CHAR; // 3 + else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_CHAR") outputformat = VTK_UNSIGNED_CHAR; // 3 + else if (bbGetInputOutputFormat()=="VTK_SHORT") outputformat = VTK_SHORT; // 4 + else if (bbGetInputOutputFormat()=="MET_SHORT") outputformat = VTK_SHORT; // 4 + else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_SHORT") outputformat = VTK_UNSIGNED_SHORT; // 5 + else if (bbGetInputOutputFormat()=="MET_USHORT") outputformat = VTK_UNSIGNED_SHORT; // 5 + else if (bbGetInputOutputFormat()=="VTK_INT") outputformat = VTK_INT; // 6 + else if (bbGetInputOutputFormat()=="MET_INT") outputformat = VTK_INT; // 6 + else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_INT") outputformat = VTK_UNSIGNED_INT; // 7 + else if (bbGetInputOutputFormat()=="MEY_UINT") outputformat = VTK_UNSIGNED_INT; // 7 + else if (bbGetInputOutputFormat()=="VTK_LONG") outputformat = VTK_LONG; // 8 + else if (bbGetInputOutputFormat()=="MET_LONG") outputformat = VTK_LONG; // 8 + else if (bbGetInputOutputFormat()=="VTK_UNSIGNED_LONG") outputformat = VTK_UNSIGNED_LONG; // 9 + else if (bbGetInputOutputFormat()=="MET_ULONG") outputformat = VTK_UNSIGNED_LONG; // 9 + else if (bbGetInputOutputFormat()=="VTK_FLOAT") outputformat = VTK_FLOAT; // 10 + 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]; @@ -84,21 +99,32 @@ void CreateImage::Process() imageoutput->SetDimensions( dim[0], dim[1], dim[2] ); imageoutput->AllocateScalars(); - + int i,j,k; + long sizeBlock; + for (i=0; iSetScalarComponentFromDouble(i,j,k, 0, bbGetInputInitialValue() ); - } // for k - } // for j - } // for i + imageoutput->SetScalarComponentFromDouble(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); + } //===== @@ -114,9 +140,9 @@ void CreateImage::bbUserSetDefaultValues() dim.push_back(250); dim.push_back(250); std::vector spc; - dim.push_back(1.0); - dim.push_back(1.0); - dim.push_back(1.0); + spc.push_back(1.0); + spc.push_back(1.0); + spc.push_back(1.0); bbSetInputDimensions(dim); bbSetInputSpacing(spc); @@ -150,9 +176,8 @@ void CreateImage::bbUserFinalizeProcessing() // but this is where you should desallocate the internal/output pointers // if any imageoutput->Delete(); - } -} -// EO namespace bbvtk + +}// EO namespace bbvtk