X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmSerieHelper.h;h=d791fe13f4cddeb6fac302b3aaef64c20d50e4ea;hb=88d681d129a1e8b361c75a0d4f246f68b39db1b9;hp=ef9036b8f63d9464a32b2d8a1b0cde4aeb13449f;hpb=eeb624df6a1661e969566c200505f3dac84f4cd6;p=gdcm.git diff --git a/src/gdcmSerieHelper.h b/src/gdcmSerieHelper.h index ef9036b8..d791fe13 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/21 05:00:30 $ - Version: $Revision: 1.14 $ + Date: $Date: 2005/08/30 14:40:33 $ + 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 @@ -31,6 +31,8 @@ namespace gdcm class File; typedef std::vector FileList; +typedef bool (*BOOL_FUNCTION_PFILE_PFILE_POINTER)(File *, File *); + //----------------------------------------------------------------------------- /** * \brief @@ -54,6 +56,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. @@ -74,8 +77,13 @@ public: /** * \brief Sets the LoadMode as a boolean string. - * NO_SEQ, NO_SHADOW, NO_SHADOWSEQ +<<<<<<< gdcmSerieHelper.h + * LD_NOSEQ, LD_NOSHADOW, LD_NOSHADOWSEQ ... (nothing more, right now) +======= + * NO_SEQ, NO_SHADOW, NO_SHADOWSEQ + * (nothing more, right now) +>>>>>>> 1.17 * WARNING : before using NO_SHADOW, be sure *all* your files * contain accurate values in the 0x0000 element (if any) * of *each* Shadow Group. The parser will fail if the size is wrong ! @@ -83,13 +91,25 @@ public: */ void SetLoadMode (int mode) { LoadMode = mode; } +/// Brief User wants the files to be sorted Direct Order (default value) + void SetSortOrderToDirect() { DirectOrder = true; } + +/// Brief User wants the files to be sorted Reverse Order + void SetSortOrderToReverse() { DirectOrder = false; } + + /// to allow user to give is own comparison function + void SetUserLessThanFunction( BOOL_FUNCTION_PFILE_PFILE_POINTER userFunc ) + { UserLessThanFunction = userFunc; } private: + bool UserOrdering(FileList *coherentFileList); bool ImagePositionPatientOrdering(FileList *coherentFileList); bool ImageNumberOrdering(FileList *coherentFileList); bool FileNameOrdering(FileList *coherentFileList); static bool ImageNumberLessThan(File *file1, File *file2); + static bool ImageNumberGreaterThan(File *file1, File *file2); static bool FileNameLessThan(File *file1, File *file2); + static bool FileNameGreaterThan(File *file1, File *file2); //Attributes: CoherentFileListmap CoherentFileListHT; @@ -114,6 +134,15 @@ private: /// Bit 1 : Skip Shadow Groups if possible /// Probabely, some more to add int LoadMode; + + /// \brief whether we want to sort in direct order or not (reverse order). + /// To be used by aware user only + bool DirectOrder; + + /// \brief If user knows more about his images than gdcm does, + /// he may supply his own comparison function. + BOOL_FUNCTION_PFILE_PFILE_POINTER UserLessThanFunction; + }; } // end namespace gdcm