X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkTemporalPicker.cxx;h=f1375acd4f72035fa4e944820350313708cbe377;hb=ab91e25f4ca81c10788da1fdd681a87f1f17641e;hp=a5af484804c25a75a32085755328035a8f7b92d3;hpb=5421fa5cb36954edfe43b9cd542d367d98ce8946;p=bbtk.git diff --git a/packages/vtk/src/bbvtkTemporalPicker.cxx b/packages/vtk/src/bbvtkTemporalPicker.cxx index a5af484..f1375ac 100644 --- a/packages/vtk/src/bbvtkTemporalPicker.cxx +++ b/packages/vtk/src/bbvtkTemporalPicker.cxx @@ -1,8 +1,38 @@ -//===== +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + +//===== // 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) //===== #include "bbvtkTemporalPicker.h" #include "bbvtkPackage.h" + +#include "creaVtk_MACROS.h" + namespace bbvtk { @@ -11,80 +41,228 @@ 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) { int ext[6]; int sizeX,sizeY,sizeZ; + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 bbGetInputIn()->GetWholeExtent(ext); +#else + bbGetInputIn()->GetExtent(ext); +#endif + sizeX=ext[1]-ext[0]+1; sizeY=ext[3]-ext[2]+1; sizeZ=ext[5]-ext[4]+1; + if (bbGetInputPoint().size()>=2) { int px=bbGetInputPoint()[0]; - int py=bbGetInputPoint()[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 } // 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() +{ + +// 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) //=====