]> Creatis software - gdcm.git/blob - vtk/vtkGdcmReader.h
* vtkGdcmReader is now able to read rgb dicom file.
[gdcm.git] / vtk / vtkGdcmReader.h
1 // $Header: /cvs/public/gdcm/vtk/vtkGdcmReader.h,v 1.10 2003/10/03 14:48:31 malaterre Exp $
2
3 #ifndef __vtkGdcmReader_h
4 #define __vtkGdcmReader_h
5
6 #include <list>
7 #include <string>
8 #include "vtkImageReader.h"
9
10 class VTK_EXPORT vtkGdcmReader : public vtkImageReader
11 {
12 public:
13   static vtkGdcmReader *New() {return new vtkGdcmReader;};
14   vtkTypeMacro(vtkGdcmReader, vtkImageReader);
15   void PrintSelf(ostream& os, vtkIndent indent);
16
17   void RemoveAllFileName(void);
18   void AddFileName(const char* name);
19   void SetFileName(const char *name);
20
21 protected:
22   vtkGdcmReader();
23   ~vtkGdcmReader();
24   virtual void ExecuteInformation();
25   void ExecuteData(vtkDataObject *output);
26   void BuildFileListFromPattern();
27   int CheckFileCoherence();
28
29 private:
30   void RemoveAllInternalFileName(void);
31   void AddInternalFileName(const char* name);
32
33   //BTX
34   // Number of columns of the image/volume to be loaded
35   int NumColumns;
36   // Number of lines of the image/volume to be loaded
37   int NumLines;
38   // Total number of planes (or images) of the stack to be build.
39   int TotalNumberOfPlanes;
40   // Number of scalar components of the image to be loaded (1=monochrome 3=rgb)
41   int NumComponents;
42   // Type of the image[s]: 8/16/32 bits, signed/unsigned:
43   std::string ImageType;
44   // Pixel size (in number of bytes):
45   size_t PixelSize;
46   // List of filenames to be read in order to build a stack of images
47   // or volume. The order in the list shall be the order of the images.
48   std::list<std::string> FileNameList;
49
50   // List of filenames created in ExecuteInformation and used in
51   // ExecuteData.
52   // If FileNameList isn't empty, InternalFileNameList is a copy of
53   //    FileNameList
54   // Otherwise, InternalFileNameList correspond to the list of 
55   //    files patterned
56   std::list<std::string> InternalFileNameList;
57
58   size_t LoadImageInMemory(std::string FileName, unsigned char * Dest,
59                            const unsigned long UpdateProgressTarget,
60                            unsigned long & UpdateProgressCount);
61   //ETX
62 };
63 #endif
64