From 8ba6105c39056bba295025f4b46d2cdf24dab792 Mon Sep 17 00:00:00 2001 From: jpr Date: Tue, 30 Aug 2005 14:15:34 +0000 Subject: [PATCH] Reverse order sorting now works, even with user supplied function. Thx to Benoit for telling how to. --- src/gdcmSerieHelper.cxx | 21 +++++++++++---------- src/gdcmSerieHelper.h | 7 ++++--- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/gdcmSerieHelper.cxx b/src/gdcmSerieHelper.cxx index 1c18682f..27f6b509 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/08/30 08:12:40 $ - Version: $Revision: 1.18 $ + Date: $Date: 2005/08/30 14:15:34 $ + Version: $Revision: 1.19 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -29,6 +29,7 @@ namespace gdcm { +//----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Constructor / Destructor @@ -570,12 +571,12 @@ bool SerieHelper::ImageNumberOrdering(FileList *fileList) bool SerieHelper::FileNameLessThan(File *file1, File *file2) { - return file1->GetFileName() < file2->GetFileName(); + return file1->GetFileName() < file2->GetFileName(); } bool SerieHelper::FileNameGreaterThan(File *file1, File *file2) { - return file1->GetFileName() > file2->GetFileName(); + return file1->GetFileName() > file2->GetFileName(); } /** * \brief sorts the images, according to their File Name @@ -594,19 +595,19 @@ bool SerieHelper::FileNameOrdering(FileList *fileList) /** * \brief sorts the images, according to user supplied function - * \note Only Direct ordering is allowed * @param fileList Coherent File list (same Serie UID) to sort * @return false only if the header is bugged ! */ bool SerieHelper::UserOrdering(FileList *fileList) { - if (DirectOrder) - std::sort(fileList->begin(), fileList->end(), SerieHelper::UserLessThanFunction); - else - gdcmWarningMacro( " Only Direct ordering allowed " - << "when user function is supplied"); + std::sort(fileList->begin(), fileList->end(), SerieHelper::UserLessThanFunction); + if (!DirectOrder) + { + std::reverse(fileList->begin(), fileList->end()); + } return true; } + //----------------------------------------------------------------------------- // Print /** diff --git a/src/gdcmSerieHelper.h b/src/gdcmSerieHelper.h index e30b08fa..6859f0c2 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/08/30 08:12:40 $ - Version: $Revision: 1.17 $ + Date: $Date: 2005/08/30 14:15:34 $ + Version: $Revision: 1.18 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -136,7 +136,8 @@ private: /// \brief If user knows more about his images than gdcm does, /// he may supply his own comparison function. - /*static*/ BOOL_FUNCTION_PFILE_PFILE_POINTER UserLessThanFunction; + BOOL_FUNCTION_PFILE_PFILE_POINTER UserLessThanFunction; + }; } // end namespace gdcm -- 2.45.1