vtkgdcm
vtkGDCMThreadedImageReader2.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: GDCM (Grassroots DICOM). A DICOM library
4 
5  Copyright (c) 2006-2011 Mathieu Malaterre
6  All rights reserved.
7  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
44 #ifndef VTKGDCMTHREADEDIMAGEREADER2_H
45 #define VTKGDCMTHREADEDIMAGEREADER2_H
46 
47 #include "vtkgdcmModule.h"
48 #include "vtkThreadedImageAlgorithm.h"
49 
50 class vtkStringArray;
51 class VTKGDCM_EXPORT vtkGDCMThreadedImageReader2 : public vtkThreadedImageAlgorithm
52 {
53 public:
55  vtkTypeMacro(vtkGDCMThreadedImageReader2,vtkThreadedImageAlgorithm);
56  virtual void PrintSelf(ostream& os, vtkIndent indent);
57 
58  vtkGetMacro(FileLowerLeft,int);
59  vtkSetMacro(FileLowerLeft,int);
60  vtkBooleanMacro(FileLowerLeft,int);
61 
62  vtkGetMacro(NumberOfOverlays,int);
63 
64  vtkSetMacro(DataScalarType,int);
65  vtkGetMacro(DataScalarType,int);
66 
67  vtkSetMacro(NumberOfScalarComponents,int);
68  vtkGetMacro(NumberOfScalarComponents,int);
69 
70  vtkGetMacro(LoadOverlays,int);
71  vtkSetMacro(LoadOverlays,int);
72  vtkBooleanMacro(LoadOverlays,int);
73 
74  vtkSetVector6Macro(DataExtent,int);
75  vtkGetVector6Macro(DataExtent,int);
76 
77  vtkSetVector3Macro(DataOrigin,double);
78  vtkGetVector3Macro(DataOrigin,double);
79 
80  vtkSetVector3Macro(DataSpacing,double);
81  vtkGetVector3Macro(DataSpacing,double);
82 
83  //vtkGetStringMacro(FileName);
84  //vtkSetStringMacro(FileName);
85  virtual const char *GetFileName(int i = 0);
86  virtual void SetFileName(const char *filename);
87 
88  virtual void SetFileNames(vtkStringArray*);
89  vtkGetObjectMacro(FileNames, vtkStringArray);
90 
91  int SplitExtent(int splitExt[6], int startExt[6],
92  int num, int total);
93 
95 
98  vtkSetMacro(Shift,double);
99  vtkGetMacro(Shift,double);
101 
103 
106  vtkSetMacro(Scale,double);
107  vtkGetMacro(Scale,double);
109 
111 
115  vtkSetMacro(UseShiftScale,int);
116  vtkGetMacro(UseShiftScale,int);
117  vtkBooleanMacro(UseShiftScale,int);
119 
120 protected:
123 
124  int RequestInformation(vtkInformation *request,
125  vtkInformationVector **inputVector,
126  vtkInformationVector *outputVector);
127 
128 protected:
130  vtkInformation * request,
131  vtkInformationVector** inputVector,
132  vtkInformationVector * outputVector,
133  vtkImageData ***inData,
134  vtkImageData **outData,
135  int outExt[6], int id);
136 
137 private:
138  int FileLowerLeft;
139  char *FileName;
140  vtkStringArray *FileNames;
141  int LoadIconImage;
142  int DataExtent[6];
143  int LoadOverlays;
144  int NumberOfOverlays;
145  int DataScalarType;
146 
147  int NumberOfScalarComponents;
148  double DataSpacing[3];
149  double DataOrigin[3];
150  int IconImageDataExtent[6];
151 
152  double Shift;
153  double Scale;
154  int UseShiftScale;
155 
156 private:
157  vtkGDCMThreadedImageReader2(const vtkGDCMThreadedImageReader2&); // Not implemented.
158  void operator=(const vtkGDCMThreadedImageReader2&); // Not implemented.
159 };
160 
161 #endif
read DICOM files with multiple threads
int SplitExtent(int splitExt[6], int startExt[6], int num, int total)
static vtkGDCMThreadedImageReader2 * New()
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int outExt[6], int id)
virtual const char * GetFileName(int i=0)
virtual void SetFileName(const char *filename)
virtual void SetFileNames(vtkStringArray *)
virtual void PrintSelf(ostream &os, vtkIndent indent)