]> Creatis software - gdcm.git/commitdiff
Reverse order sorting now works, even with user supplied function.
authorjpr <jpr>
Tue, 30 Aug 2005 14:15:34 +0000 (14:15 +0000)
committerjpr <jpr>
Tue, 30 Aug 2005 14:15:34 +0000 (14:15 +0000)
Thx to Benoit for telling how to.

src/gdcmSerieHelper.cxx
src/gdcmSerieHelper.h

index 1c18682fc4cced98ed046e8633db7705f434bdb7..27f6b509bab8d88ba9f3021146f0dab7e6416395 100644 (file)
@@ -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
 /**
index e30b08facb55b114a90e9e9b3be83f1a54d3e473..6859f0c261fac481f96570d5f89f0d49097d4e49 100644 (file)
@@ -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