From: jpr Date: Sat, 30 Jul 2005 18:13:24 +0000 (+0000) Subject: Add SerieHelper::IsCoherent() method to allow checking that the files with same X-Git-Tag: Version1.2.bp~249 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=a08cf53dc69fa5e4b9e2dd4fbbfc3d476b963aa0;p=gdcm.git Add SerieHelper::IsCoherent() method to allow checking that the files with same Serie UID have the same sizes and pixel type. --- diff --git a/src/gdcmSerieHelper.cxx b/src/gdcmSerieHelper.cxx index cf592ea3..19f82fe3 100644 --- a/src/gdcmSerieHelper.cxx +++ b/src/gdcmSerieHelper.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmSerieHelper.cxx,v $ Language: C++ - Date: $Date: 2005/07/29 15:07:16 $ - Version: $Revision: 1.16 $ + Date: $Date: 2005/07/30 18:13:24 $ + Version: $Revision: 1.17 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -37,7 +37,7 @@ namespace gdcm */ SerieHelper::SerieHelper() { - // For all the File lists of the gdcm::Serie + // For all the File lists that may already exist within the gdcm::Serie FileList *l = GetFirstCoherentFileList(); while (l) { @@ -46,10 +46,10 @@ SerieHelper::SerieHelper() it != l->end(); ++it) { - delete *it; + delete *it; // remove entry } l->clear(); - delete l;; + delete l; // remove the list l = GetNextCoherentFileList(); } DirectOrder = true; @@ -69,10 +69,10 @@ SerieHelper::~SerieHelper() it != l->end(); ++it) { - delete *it; + delete *it; // remove entry } l->clear(); - delete l; + delete l; // remove the list l = GetNextCoherentFileList(); } } @@ -296,6 +296,36 @@ void SerieHelper::OrderFileList(FileList *coherentFileList) } } +/** + * \brief Elementary coherence checking of the files with the same Serie UID + * Only sizes and pixel type are checked right now ... + */ +bool SerieHelper::IsCoherent(FileList *coherentFileList) +{ + if(coherentFileList->size() == 1) + return true; + + FileList::const_iterator it = coherentFileList->begin(); + + int nX = (*it)->GetXSize(); + int nY = (*it)->GetYSize(); + int pixelSize = (*it)->GetPixelSize(); + + it ++; + for ( ; + it != coherentFileList->end(); + ++it) + { + if ( (*it)->GetXSize() != nX ) + return false; + if ( (*it)->GetYSize() != nY ) + return false; + if ( (*it)->GetPixelSize() != pixelSize ) + return false; + // probabely more is to be checked (?) + } + return true; +} /** * \brief Get the first List while visiting the CoherentFileListHT * @return The first FileList if found, otherwhise NULL diff --git a/src/gdcmSerieHelper.h b/src/gdcmSerieHelper.h index 28790ec5..6921df6a 100644 --- a/src/gdcmSerieHelper.h +++ b/src/gdcmSerieHelper.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmSerieHelper.h,v $ Language: C++ - Date: $Date: 2005/07/29 15:07:16 $ - Version: $Revision: 1.15 $ + Date: $Date: 2005/07/30 18:13:24 $ + Version: $Revision: 1.16 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -54,6 +54,7 @@ public: void AddGdcmFile(File *header); void SetDirectory(std::string const &dir, bool recursive=false); + bool IsCoherent(FileList *coherentFileList); void OrderFileList(FileList *coherentFileList); /// \brief Gets the FIRST *coherent* File List.