From: Eduardo DAVILA Date: Fri, 24 Jan 2020 15:23:36 +0000 (+0100) Subject: #3349 creaVtkFeature New Normal - box NIFFImageReader X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=ea2984212ef14c42f12ffb8d00b415e816dae108;p=creaVtk.git #3349 creaVtkFeature New Normal - box NIFFImageReader --- diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkNIFTIImageReader.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkNIFTIImageReader.cxx new file mode 100644 index 0000000..fbb3ebb --- /dev/null +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkNIFTIImageReader.cxx @@ -0,0 +1,114 @@ +//===== +// 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 "bbcreaVtkNIFTIImageReader.h" +#include "bbcreaVtkPackage.h" + +#include +#include + +namespace bbcreaVtk +{ + +BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,NIFTIImageReader) +BBTK_BLACK_BOX_IMPLEMENTATION(NIFTIImageReader,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 NIFTIImageReader::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') +// bbSetOutputOut( bbGetInputIn() ); +// std::cout << "Output value = " < lstImages; + + if (bbGetInputType()==0) + { + vtkNIFTIImageReader* reader=vtkNIFTIImageReader::New(); + if ( bbGetInputFileNames().size()==1) + { + reader->SetFileName( bbGetInputFileNames()[0].c_str() ); + reader->Update(); + } else { + vtkStringArray *lstFileNames=vtkStringArray::New(); + int i,size=bbGetInputFileNames().size(); + for (i=0;iInsertNextValue( bbGetInputFileNames()[i].c_str() ); + } // for i + reader->SetFileNames( lstFileNames ); + reader->Update(); + } // FileNames + lstImages.push_back( reader->GetOutput() ); + } // Type 0 + + if (bbGetInputType()==1) + { + int i,size=bbGetInputFileNames().size(); + for (i=0;iSetFileName( bbGetInputFileNames()[i].c_str() ); + reader->Update(); + lstImages.push_back( reader->GetOutput() ); + } // for i + } // Type 1 + + + if (lstImages.size()>=1) { bbSetOutputOut( lstImages[0] ); } else {bbSetOutputOut( NULL ); } + bbSetOutputOutVector( lstImages ); +} +//===== +// 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 NIFTIImageReader::bbUserSetDefaultValues() +{ + +// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX +// Here we initialize the input 'In' to 0 + bbSetInputType(0); + +} +//===== +// 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 NIFTIImageReader::bbUserInitializeProcessing() +{ + +// THE INITIALIZATION METHOD BODY : +// Here does nothing +// but this is where you should allocate the internal/output pointers +// if any + + +} +//===== +// 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 NIFTIImageReader::bbUserFinalizeProcessing() +{ + +// THE FINALIZATION METHOD BODY : +// Here does nothing +// but this is where you should desallocate the internal/output pointers +// if any + +} +} +// EO namespace bbcreaVtk + + diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkNIFTIImageReader.h b/bbtk_creaVtk_PKG/src/bbcreaVtkNIFTIImageReader.h new file mode 100644 index 0000000..f32a71d --- /dev/null +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkNIFTIImageReader.h @@ -0,0 +1,52 @@ +//===== +// 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) +//===== +#ifndef __bbcreaVtkNIFTIImageReader_h_INCLUDED__ +#define __bbcreaVtkNIFTIImageReader_h_INCLUDED__ + +#include "bbcreaVtk_EXPORT.h" +#include "bbtkAtomicBlackBox.h" +#include "iostream" + +#include "vtkImageData.h" + +namespace bbcreaVtk +{ + +class bbcreaVtk_EXPORT NIFTIImageReader + : + public bbtk::AtomicBlackBox +{ + BBTK_BLACK_BOX_INTERFACE(NIFTIImageReader,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) +//===== + BBTK_DECLARE_INPUT(Type,int); + BBTK_DECLARE_INPUT(FileNames,std::vector < std::string >); + BBTK_DECLARE_OUTPUT(Out, vtkImageData*); + BBTK_DECLARE_OUTPUT(OutVector, std::vector< vtkImageData* >); + BBTK_PROCESS(Process); + void Process(); +//===== +// 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) +//===== +}; + +BBTK_BEGIN_DESCRIBE_BLACK_BOX(NIFTIImageReader,bbtk::AtomicBlackBox); + BBTK_NAME("NIFTIImageReader"); + BBTK_AUTHOR("Info-Dev"); + BBTK_DESCRIPTION("No Description."); + BBTK_CATEGORY("empty"); + BBTK_INPUT(NIFTIImageReader,Type,"(default 0) 0:Use FileNames by slice 1:Use FileNames by volumes",int,""); + BBTK_INPUT(NIFTIImageReader,FileNames,"List of file names",std::vector,""); + BBTK_OUTPUT(NIFTIImageReader,Out,"Output image",vtkImageData*,""); + BBTK_OUTPUT(NIFTIImageReader,OutVector,"Vector of image",std::vector,""); +BBTK_END_DESCRIBE_BLACK_BOX(NIFTIImageReader); +//===== +// 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) +//===== +} +// EO namespace bbcreaVtk + +#endif // __bbcreaVtkNIFTIImageReader_h_INCLUDED__ +