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