X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkGrayLevel.cxx;h=4f8ca61e3747575e0783ff8d31ab43d245813d6b;hb=b2426b967d278b6ef83d202be0d9f4dbe2aa9d8e;hp=959c59c07ea56d4eff6eb8a54ed0762ba077277a;hpb=4f2b02449cf03ee45a0ee6773f31dad2c85e14bc;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx index 959c59c..4f8ca61 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx @@ -25,27 +25,67 @@ void GrayLevel::Process() // (the one provided in the attribute 'name' of the tag 'input') // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') - vtkImageData *m_image = vtkImageData::New(); - m_image = bbGetInputImage(); - int grayLevel = 0; - std::vector coord = bbGetInputCoordinate(); - - grayLevel = m_image->GetScalarComponentAsDouble(coord[0],coord[1],coord[2],0); +// vtkImageData *m_image = vtkImageData::New(); +// m_image = bbGetInputImage(); + double grayLevel = -9999; + std::vector coord = bbGetInputCoordinate(); + double px,py,pz; + if (bbGetInputImage()!=NULL) + { + double spc[3]; + bbGetInputImage()->GetSpacing(spc); + if (coord.size()>=2) + { + if (bbGetInputWithSpacing()==true) + { + px = round(coord[0]/spc[0]); + py = round(coord[1]/spc[1]); + pz = round(coord[2]/spc[2]); + } else { + px = round(coord[0]); + py = round(coord[1]); + pz = round(coord[2]); + }// if + grayLevel = bbGetInputImage()->GetScalarComponentAsDouble( px,py,pz,0); + } // coord + std::vector lstGL; + std::vector lstX = bbGetInputLstPointsX(); + std::vector lstY = bbGetInputLstPointsY(); + std::vector lstZ = bbGetInputLstPointsZ(); + if ( (lstX.size()==lstY.size()) && (lstY.size()==lstZ.size()) ) + { + long int i,size=lstX.size(); + for (i=0;iGetScalarComponentAsDouble( px,py,pz,0) ); + }// for + bbSetOutputLstGrayLevel(lstGL); + } // if size of Lst + } // InputImage bbSetOutputGrayLevel(grayLevel); - } + //===== // 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) //===== void GrayLevel::bbUserSetDefaultValues() { - // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX // Here we initialize the input 'In' to 0 bbSetInputImage(NULL); - + bbSetInputWithSpacing(false); } //===== // 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)