X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkTemporalPicker.cxx;h=f1375acd4f72035fa4e944820350313708cbe377;hb=122b5e0ee34147925baa1a07216653cbeb5bff34;hp=de512515dfbc60118cdce2a615695cc02dab4e0b;hpb=ce796ef8e6c470b95b8f00cad76c25a9e4a88df1;p=bbtk.git diff --git a/packages/vtk/src/bbvtkTemporalPicker.cxx b/packages/vtk/src/bbvtkTemporalPicker.cxx index de51251..f1375ac 100644 --- a/packages/vtk/src/bbvtkTemporalPicker.cxx +++ b/packages/vtk/src/bbvtkTemporalPicker.cxx @@ -30,6 +30,9 @@ //===== #include "bbvtkTemporalPicker.h" #include "bbvtkPackage.h" + +#include "creaVtk_MACROS.h" + namespace bbvtk { @@ -38,22 +41,109 @@ BBTK_BLACK_BOX_IMPLEMENTATION(TemporalPicker,bbtk::AtomicBlackBox); //===== // 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 TemporalPicker::Process() + + +void TemporalPicker::Process_TemporaryPicker3DT() { + std::vector result; + if (bbGetInputInLst().size()>0) + { + int ext[6]; + int sizeX,sizeY,sizeZ,sizeT=bbGetInputInLst().size(); -// THE MAIN PROCESSING METHOD BODY -// Here we simply set the input 'In' value to the output 'Out' -// And print out the output value -// INPUT/OUTPUT ACCESSORS ARE OF THE FORM : -// void bbSet{Input|Output}NAME(const TYPE&) -// const TYPE& bbGet{Input|Output}NAME() const -// Where : -// * NAME is the name of the input/output -// (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') +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + bbGetInputInLst()[0]->GetWholeExtent(ext); +#else + bbGetInputInLst()[0]->GetExtent(ext); +#endif + + sizeX = ext[1]-ext[0]+1; + sizeY = ext[3]-ext[2]+1; + sizeZ = ext[5]-ext[4]+1; + + if (bbGetInputPoint().size()>=3) + { + int px = bbGetInputPoint()[0]; + int py = bbGetInputPoint()[1]; + int pz = bbGetInputPoint()[2]; + int minX = px-bbGetInputSizeRegion()-1; + int maxX = px+bbGetInputSizeRegion()-1; + int minY = py-bbGetInputSizeRegion()-1; + int maxY = py+bbGetInputSizeRegion()-1; + int minZ = pz-bbGetInputSizeRegion()-1; + int maxZ = pz+bbGetInputSizeRegion()-1; + + if ( (minX>=0) && + (maxX=0) && + (maxY=0) && + (maxZGetScalarPointer() ); + acum = 0; + numElem = 0; + + GETVALUE2_VTK_CREA(vIn,pIn,stIn,index) + numElem++; + acum = acum + vIn; +/* +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +printf("EED Warnning !!!!!! TemporalPicker::Process Clean this method region 3D calcule missing ...........\n"); +*/ + +/* + for(i=minX;i<=maxX;i++) + { + for(j=minY;j<=maxY;j++) + { +// if ((i>=0) && (i=0) && (jGetScalarComponentAsDouble(i, j, k, 0); + numElem++; +// }// if i j + }// for j + } // for i + +*/ + if (numElem>0) + { + result.push_back( acum/numElem ); /// ???????????? Aqui ???? + } else { + result.push_back( 0 ); + } // numElem + + } // for k + } // px py + } else {// bbGetInputPoint + printf("ERROR: Input:Point is not good defined in TemporalPicker Box..\n "); + } // bbGetInputPoint + } else {// bbGetInputIn + printf("ERROR: Missing Input:In vtkImageData* in TemporalPicker Box..\n "); + } // bbGetInputIn + bbSetOutputOut(result); +} - + +//-------------------------------------------------------------------------------------------- +void TemporalPicker::Process_TemporaryPicker2DT() +{ std::vector result; if (bbGetInputIn()!=NULL) { @@ -71,40 +161,69 @@ void TemporalPicker::Process() sizeY=ext[3]-ext[2]+1; sizeZ=ext[5]-ext[4]+1; + if (bbGetInputPoint().size()>=2) { int px=bbGetInputPoint()[0]; int py=bbGetInputPoint()[1]; - int pz=bbGetInputPoint()[2]; +//EED Eraseme int pz=bbGetInputPoint()[2]; + + int minX,maxX,minY,maxY; + minX = px-bbGetInputSizeRegion()-1; + maxX = px+bbGetInputSizeRegion()-1; + minY = py-bbGetInputSizeRegion()-1; + maxY = py+bbGetInputSizeRegion()-1; - if ((px>=0) && (px=0) && (py=0) && + (maxX=0) && + (maxY=0) && (i=0) && (j=0) && (i=0) && (jGetScalarComponentAsDouble(i, j, k, 0); numElem++; - }// i j +// }// if i j }// for j } // for i +*/ if (numElem>0) { - result.push_back( acum/numElem ); + result.push_back( acum/numElem ); /// Aqui ????? } else { result.push_back( 0 ); } // numElem @@ -117,9 +236,33 @@ void TemporalPicker::Process() } else {// bbGetInputIn printf("ERROR: Missing Input:In vtkImageData* in TemporalPicker Box..\n "); } // bbGetInputIn - bbSetOutputOut(result); } + +void TemporalPicker::Process() +{ + +// THE MAIN PROCESSING METHOD BODY +// Here we simply set the input 'In' value to the output 'Out' +// And print out the output value +// INPUT/OUTPUT ACCESSORS ARE OF THE FORM : +// void bbSet{Input|Output}NAME(const TYPE&) +// const TYPE& bbGet{Input|Output}NAME() const +// Where : +// * NAME is the name of the input/output +// (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') + + + if (bbGetInputInLst().size()>0) + { + Process_TemporaryPicker3DT(); + } else { + Process_TemporaryPicker2DT(); + } + +} //===== // 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) //=====