X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbcreaImageIOItkImagesChooserDialogBox.cxx;h=6872d3785b942b580128e84a4f7ce530ea897e0e;hb=904a0f40b42aa61b7632fbaeca5441da76ce3970;hp=2d466515a29406b57e089245a5ca17b0a44b414e;hpb=a13d364535da892bef280e605549562f05e52d4e;p=creaImageIO.git diff --git a/bbtk/src/bbcreaImageIOItkImagesChooserDialogBox.cxx b/bbtk/src/bbcreaImageIOItkImagesChooserDialogBox.cxx index 2d46651..6872d37 100644 --- a/bbtk/src/bbcreaImageIOItkImagesChooserDialogBox.cxx +++ b/bbtk/src/bbcreaImageIOItkImagesChooserDialogBox.cxx @@ -16,36 +16,41 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ItkImagesChooserDialogBox,bbtk::AtomicBlackBox); void ItkImagesChooserDialogBox::Process() { - dlg = new creaImageIO::WxAnySimpleDlg(0,crea::std2wx(bbGetInputTitle()),"localdatabase_Descriptor.dscp","Local Database"); + dlg = new creaImageIO::WxAnySimpleDlg(0,crea::std2wx(bbGetInputTitle()),"localdatabase_Descriptor.dscp","Local Database"); dlg->ShowModal(); - bbtk::TypeInfo typ = bbitk::GetITKImagePtrTypeInfoFromPixelTypeInfoAndDimension(*dlg->getTypes().front(), dlg->getDims().front()); - BBTK_TEMPLATE_ITK_IMAGE_SWITCH(typ, Export); - bbSetOutputOutVImages(dlg->getVtkImagesSelected()); - delete dlg; + bbtk::TypeInfo typ = bbitk::GetITKImagePtrTypeInfoFromPixelTypeInfoAndDimension(*dlg->getTypes().front(), dlg->getDims().front()); + BBTK_TEMPLATE_ITK_IMAGE_SWITCH(typ, Export); + BBTK_TEMPLATE_ITK_IMAGE_SWITCH(typ, ExportVTK); + + delete dlg; } + template void ItkImagesChooserDialogBox::Export() { - if (dlg->getImagesSelected().size() == 1) - { + if (dlg->getImagesSelected().size() == 1) + { bbSetOutputOut( dlg->getTemplatedImagesSelected().front().GetPointer() ); - } - else if (dlg->getImagesSelected().size() > 1) - { - OutputImagesITKType temp; - //std::vector temp; - std::vector::iterator it = dlg->getTemplatedImagesSelected().begin(); - for(;it != dlg->getTemplatedImagesSelected().end(); ++it) - { - temp.push_back( (*it).GetPointer() ); - } - bbSetOutputOutIImages( temp); - } - else - { - bbSetOutputOut( NULL); - } + } + else if (dlg->getImagesSelected().size() > 1) + { + OutputImagesITKType outVect; + + typename std::vector tempImgs= dlg->getTemplatedImagesSelected(); + typename std::vector::iterator it = tempImgs.begin(); + for(;it != tempImgs.end(); ++it) + { + outVect.push_back( (*it).GetPointer() ); + } + bbSetOutputOutIImages( outVect); + } + else + { + // warning: passing NULL to non-pointer + //bbSetOutputOut( NULL); + bbSetOutputOut(0); // JPR + } // FCY To test the Output //typedef itk::Image ImageType; //typedef itk::ImageFileReader< ImageType > itkReaderType; @@ -56,14 +61,39 @@ void ItkImagesChooserDialogBox::Export() //reader->GetOutput()->Register(); // this->bbSetOutputOut(reader->GetOutput()); } +template +void ItkImagesChooserDialogBox::ExportVTK() +{ + // BBTK can support only a vector with same dimensions image. + if (dlg->getDims().front() < 4) + { + typename std::vector tempImgs= dlg->getTemplatedImagesSelected(); + typename std::vector::iterator it = tempImgs.begin(); + for(;it != tempImgs.end(); ++it) + { + dlg->split3Din3Dvtk( (*it) ); + } + bbSetOutputOutVImages( dlg->getVtkImagesSelected() ); + } + else if (dlg->getDims().front() == 4) + { + // To Test + // dlg->split4Din3Dvtk("d:/temp2"); + // bbSetOutputOutVImages( dlg->getVtkImagesSelected()); + } + else + { + // NOT IMPLEMENTED YET FOR DIMENSIONS > 4 + + } + +} //===== // 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 ItkImagesChooserDialogBox::bbUserSetDefaultValues() { - - } //===== // 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) @@ -81,5 +111,3 @@ void ItkImagesChooserDialogBox::bbUserFinalizeProcessing() } } // EO namespace bbcreaImageIO - -