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 "vtkThreadedImageAlgorithm.h"
48 
49 class vtkStringArray;
50 class VTK_EXPORT vtkGDCMThreadedImageReader2 : public vtkThreadedImageAlgorithm
51 {
52 public:
54  vtkTypeMacro(vtkGDCMThreadedImageReader2,vtkThreadedImageAlgorithm);
55  virtual void PrintSelf(ostream& os, vtkIndent indent);
56 
57  vtkGetMacro(FileLowerLeft,int);
58  vtkSetMacro(FileLowerLeft,int);
59  vtkBooleanMacro(FileLowerLeft,int);
60 
61  vtkGetMacro(NumberOfOverlays,int);
62 
63  vtkSetMacro(DataScalarType,int);
64  vtkGetMacro(DataScalarType,int);
65 
66  vtkSetMacro(NumberOfScalarComponents,int);
67  vtkGetMacro(NumberOfScalarComponents,int);
68 
69  vtkGetMacro(LoadOverlays,int);
70  vtkSetMacro(LoadOverlays,int);
71  vtkBooleanMacro(LoadOverlays,int);
72 
73  vtkSetVector6Macro(DataExtent,int);
74  vtkGetVector6Macro(DataExtent,int);
75 
76  vtkSetVector3Macro(DataOrigin,double);
77  vtkGetVector3Macro(DataOrigin,double);
78 
79  vtkSetVector3Macro(DataSpacing,double);
80  vtkGetVector3Macro(DataSpacing,double);
81 
82  //vtkGetStringMacro(FileName);
83  //vtkSetStringMacro(FileName);
84  virtual const char *GetFileName(int i = 0);
85  virtual void SetFileName(const char *filename);
86 
87  virtual void SetFileNames(vtkStringArray*);
88  vtkGetObjectMacro(FileNames, vtkStringArray);
89 
90  int SplitExtent(int splitExt[6], int startExt[6],
91  int num, int total);
92 
94 
97  vtkSetMacro(Shift,double);
98  vtkGetMacro(Shift,double);
100 
102 
105  vtkSetMacro(Scale,double);
106  vtkGetMacro(Scale,double);
108 
110 
114  vtkSetMacro(UseShiftScale,int);
115  vtkGetMacro(UseShiftScale,int);
116  vtkBooleanMacro(UseShiftScale,int);
118 
119 protected:
122 
123  int RequestInformation(vtkInformation *request,
124  vtkInformationVector **inputVector,
125  vtkInformationVector *outputVector);
126 
127 protected:
129  vtkInformation * request,
130  vtkInformationVector** inputVector,
131  vtkInformationVector * outputVector,
132  vtkImageData ***inData,
133  vtkImageData **outData,
134  int outExt[6], int id);
135 
136 private:
137  int FileLowerLeft;
138  char *FileName;
139  vtkStringArray *FileNames;
140  int LoadIconImage;
141  int DataExtent[6];
142  int LoadOverlays;
143  int NumberOfOverlays;
144  int DataScalarType;
145 
146  int NumberOfScalarComponents;
147  double DataSpacing[3];
148  double DataOrigin[3];
149  int IconImageDataExtent[6];
150 
151  double Shift;
152  double Scale;
153  int UseShiftScale;
154 
155 private:
156  vtkGDCMThreadedImageReader2(const vtkGDCMThreadedImageReader2&); // Not implemented.
157  void operator=(const vtkGDCMThreadedImageReader2&); // Not implemented.
158 };
159 
160 #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)