]> Creatis software - gdcm.git/blobdiff - vtk/vtkGdcmReader.h
upgrades for 4DSplitter
[gdcm.git] / vtk / vtkGdcmReader.h
index 39b546ac268a197799a157d182d113d83083e5e9..dc29361fed76782e4647e6b2f7777e3bbf35d69f 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: vtkGdcmReader.h,v $
   Language:  C++
-  Date:      $Date: 2006/03/17 14:46:17 $
-  Version:   $Revision: 1.30 $
+  Date:      $Date: 2011/03/29 07:36:02 $
+  Version:   $Revision: 1.39 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -27,7 +27,7 @@
 #include <string>
 #include <vector>
 
-typedef void (*VOID_FUNCTION_PUINT8_PFILE_POINTER)(uint8_t *, gdcm::File *);
+typedef void (*VOID_FUNCTION_PUINT8_PFILE_POINTER)(uint8_t *, GDCM_NAME_SPACE::File *);
 
 //-----------------------------------------------------------------------------
 class vtkLookupTable;
@@ -45,15 +45,18 @@ public:
    virtual void SetFileName(const char *name);
 
    //BTX
-   void SetCoherentFileList( std::vector<gdcm::File* > *cfl) {
+   void SetCoherentFileList( std::vector<GDCM_NAME_SPACE::File* > *cfl) {
                                                       CoherentFileList = cfl; }    
    //ETX
 
-   vtkSetMacro(AllowLightChecking, bool);
-   vtkGetMacro(AllowLightChecking, bool);
-   vtkBooleanMacro(AllowLightChecking, bool);
+   //vtkSetMacro(AllowLightChecking, bool);
+   //vtkGetMacro(AllowLightChecking, bool);
+   //vtkBooleanMacro(AllowLightChecking, bool);
 
    //BTX
+   
+   /// \todo fix possible problems around VTK pipelining
+   
    void SetUserFunction (VOID_FUNCTION_PUINT8_PFILE_POINTER userFunc )
                         { UserFunction = userFunc; } 
    //ETX
@@ -61,11 +64,26 @@ public:
    // Description:
    // If this flag is set and the DICOM reader encounters a dicom file with 
    // lookup table the data will be kept as unsigned chars and a lookuptable 
-   // will be exported and accessible through GetLookupTable() 
+   // will be exported and accessible through GetLookupTable()
+
    vtkSetMacro(AllowLookupTable, bool);
    vtkGetMacro(AllowLookupTable, bool);
    vtkBooleanMacro(AllowLookupTable, bool);
 
+   vtkSetMacro(KeepOverlays, bool);
+   vtkGetMacro(KeepOverlays, bool);
+   vtkBooleanMacro(KeepOverlays, bool);
+
+//  Implementation note: when FileLowerLeft (gdcm2) is set to on the image is not flipped
+// upside down as VTK would expect, use this option only if you know what you are doing.   
+  // vtkSetMacro(FileLowerLeft, bool);
+  // vtkGetMacro(FileLowerLeft, bool);
+  // vtkBooleanMacro(FileLowerLeft, bool);
+
+  vtkSetMacro(FlipY, bool);
+  vtkGetMacro(FlipY, bool);
+  vtkBooleanMacro(FlipY, bool);
+
    vtkGetObjectMacro(LookupTable, vtkLookupTable);
 
 // FIXME : HOW to doxygen a VTK macro?
@@ -81,6 +99,15 @@ public:
    vtkSetMacro(LoadMode, int);
    vtkGetMacro(LoadMode, int);
    vtkBooleanMacro(LoadMode, int);
+/*
+ * \ brief drop images with duplicate position  
+ *         and therefore calculate ZSpacing for the whole file set
+ * @param   mode user wants to drop images with duplicate position    
+ */   
+   vtkSetMacro(DropDuplicatePositions, bool);
+   vtkGetMacro(DropDuplicatePositions, bool);
+   vtkBooleanMacro(DropDuplicatePositions, bool);      
 
 protected:
    vtkGdcmReader();
@@ -89,13 +116,13 @@ protected:
    virtual void ExecuteInformation();
    virtual void ExecuteData(vtkDataObject *output);
 
-   virtual void BuildData(vtkDataObject *output);
+   //virtual void BuildData(vtkDataObject *output); // for VTK5.0
    virtual void BuildFileListFromPattern();
    virtual void LoadFileInformation();
    virtual void UpdateFileInformation();
    //BTX
-   virtual void GetFileInformation(gdcm::File *file);
-   virtual bool TestFileInformation(gdcm::File *file);
+   virtual void GetFileInformation(GDCM_NAME_SPACE::File *file);
+   virtual bool TestFileInformation(GDCM_NAME_SPACE::File *file);
    //ETX
 
 private:
@@ -110,14 +137,14 @@ private:
                           const unsigned long updateProgressTarget,
                           unsigned long &updateProgressCount);*/
 
-   void LoadImageInMemory(gdcm::File *f, unsigned char *dest,
+   void LoadImageInMemory(GDCM_NAME_SPACE::File *f, unsigned char *dest,
                           const unsigned long updateProgressTarget,
                           unsigned long &updateProgressCount);
    //ETX
 
 // Variables
    //BTX
-   typedef std::vector<gdcm::File *> gdcmFileList;
+   typedef std::vector<GDCM_NAME_SPACE::File *> gdcmFileList;
    //ETX
 
    vtkLookupTable *LookupTable;
@@ -155,7 +182,7 @@ private:
    //    files patterned
    std::list<std::string> InternalFileNameList;
    gdcmFileList InternalFileList;
-   bool Execution;
+   //bool Execution;  // For VTK5.0
   
    //ETX
 
@@ -165,6 +192,13 @@ private:
    ///        Bit 2 : Skip Sequences inside a Shadow Group, if possible
    ///        Probabely (?), some more to add
    int LoadMode;
+    
+   bool DropDuplicatePositions;
+   
+   bool KeepOverlays;
+   
+  // bool FileLowerLeft;
+   bool FlipY;
 
    /// Pointer to a user suplied function to allow modification of pixel order
    VOID_FUNCTION_PUINT8_PFILE_POINTER UserFunction;