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
50class vtkStringArray;
51class VTKGDCM_EXPORT vtkGDCMThreadedImageReader2 : public vtkThreadedImageAlgorithm
52{
53public:
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
120protected:
123
124 int RequestInformation(vtkInformation *request,
125 vtkInformationVector **inputVector,
126 vtkInformationVector *outputVector);
127
128protected:
130 vtkInformation * request,
131 vtkInformationVector** inputVector,
132 vtkInformationVector * outputVector,
133 vtkImageData ***inData,
134 vtkImageData **outData,
135 int outExt[6], int id);
136
137private:
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
156private:
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 void SetFileName(const char *filename)
virtual const char * GetFileName(int i=0)
virtual void SetFileNames(vtkStringArray *)
virtual void PrintSelf(ostream &os, vtkIndent indent)