X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOWxAnySimpleDlg.cpp;h=4a31cbe9de72e7d4cae819d5c03abaf8f7dc0afb;hb=26b4c3303c14bfef570ad5671627ba5e01519f83;hp=5a713352cac2f32494cb0499d842a421e32a44f6;hpb=1c453b31099ec7dadd6cf717f882905af27365a0;p=creaImageIO.git diff --git a/src/creaImageIOWxAnySimpleDlg.cpp b/src/creaImageIOWxAnySimpleDlg.cpp index 5a71335..4a31cbe 100644 --- a/src/creaImageIOWxAnySimpleDlg.cpp +++ b/src/creaImageIOWxAnySimpleDlg.cpp @@ -29,13 +29,19 @@ #include "creaImageIOWxAnySimpleDlg.h" #include "creaImageIOWxGimmickReaderDialog.h" -#include + +#if ITK_VERSION_MAJOR < 4 // : WARNING: deprecated in ITK 4.0 +# include +# include +#else // ITK_VERSION_MAJOR < 4 +# include +#endif // ITK_VERSION_MAJOR < 4 + #include #include #include #include #include -#include #include #include #include @@ -107,25 +113,28 @@ namespace creaImageIO std::string name = crea::wx2std(wxArray[i]); // FOR THE MOMENT ONLY short 3D et short 4D readImg(name); - } - } - else { + } // for + } else { // TO DO WARNING MESSAGES - } - } + } // if + } // if SetReturnCode( resultShowModal ); // Close(); EndModal( resultShowModal ); } + +///////////////////////////////////////////////////////////////////// +// // +////////////////////////////////////////////////////////////////////// void WxAnySimpleDlg::setExts(std::vector i_exts) { m_exts = i_exts; } - ///////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////// // // ////////////////////////////////////////////////////////////////////// - void WxAnySimpleDlg::OnReadDirectory(wxCommandEvent &event) { int resultShowModal; @@ -137,33 +146,55 @@ namespace creaImageIO if ( resultShowModal==wxID_OK ) { std::string path = crea::wx2std(dirDlg->GetPath()); + +/* typedef boost::filesystem::directory_iterator dir_it; dir_it itr(path); dir_it end_itr; - /*if (boost::filesystem::exists(path)) - {*/ +// if (boost::filesystem::exists(path)) +// { for(;itr != end_itr; ++itr) { - bvalid = m_exts.size() == 0? true : false; - std::vector::iterator it = m_exts.begin(); - std::string ext = itr->path().filename().string().substr(itr->path().filename().string().find_last_of(".")); - for(; it != m_exts.end(); it++) - { - if(ext == (*it) ) - { - bvalid = true; - break; - } - } +//EED +// All files have the same extention +// bvalid = m_exts.size() == 0? true : false; +// std::vector::iterator it = m_exts.begin(); +// std::string ext = itr->path().filename().string().substr(itr->path().filename().string().find_last_of(".")); +// for(; it != m_exts.end(); it++) +// { +// if(ext == (*it) ) +// { +// bvalid = true; +// break; +// } +// } // for +bvalid=true; if (!boost::filesystem::is_directory(itr->status()) && bvalid) { - readImg(itr->path().string().c_str()); - } - } - } +printf("EED WxAnySimpleDlg::OnReadDirectory Each file %s \n", itr->path().string().c_str() ); + readImg( itr->path().string().c_str() ); + } // if + } // for itr +*/ + + typedef vector vec; // store paths + vec v; // so we can sort them later + copy(boost::filesystem::directory_iterator(path), boost::filesystem::directory_iterator(), back_inserter(v)); + sort(v.begin(), v.end()); // sort, since directory iteration + // is not ordered on some file systems + for (vec::const_iterator it (v.begin()); it != v.end(); ++it) + { + readImg( it->string().c_str() ); + } // for + + + + + } // if OK SetReturnCode( resultShowModal ); // Close(); EndModal( resultShowModal ); + } ////////////////////////////////////////////////////////////////////// @@ -235,9 +266,11 @@ namespace creaImageIO return imageIO->GetNumberOfDimensions(); } + void WxAnySimpleDlg::readImg(const std::string &i_name) { size_t dims = getNumberOfDimensions(i_name); + //const std::type_info *type= &getType(i_name); switch(dims) { @@ -344,6 +377,7 @@ namespace creaImageIO } else { + printf("EED WxAnySimpleDlg::readImg Not type found for DIM 3 \n"); //????FCY, so what the type???? } break; @@ -486,6 +520,7 @@ namespace creaImageIO } else { + printf("EED WxAnySimpleDlg::readImg Not type found for DIM 4 \n"); //????FCY, so what the type???? } break; @@ -518,7 +553,11 @@ namespace creaImageIO { typedef itk::Image TImage; typedef itk::GDCMImageIO GDCMType; +#if ITK_VERSION_MAJOR < 4 typedef itk::DICOMSeriesFileNames dicnames; +#else // ITK_VERSION_MAJOR < 4 + typedef itk::GDCMSeriesFileNames dicnames; +#endif // ITK_VERSION_MAJOR < 4 GDCMType::Pointer gdcmIO = GDCMType::New(); dicnames::Pointer generator = dicnames::New();