vtk-dicom  0.8.14
vtkImageAlgorithm.h
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageAlgorithm.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
28 #ifndef vtkImageAlgorithm_h
29 #define vtkImageAlgorithm_h
30 
31 #include "vtkCommonExecutionModelModule.h" // For export macro
32 #include "vtkAlgorithm.h"
33 
34 class vtkDataSet;
35 class vtkImageData;
36 
37 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkImageAlgorithm : public vtkAlgorithm
38 {
39 public:
41  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
42 
44 
47  vtkImageData* GetOutput();
48  vtkImageData* GetOutput(int);
49  virtual void SetOutput(vtkDataObject* d);
51 
57  int ProcessRequest(vtkInformation*,
58  vtkInformationVector**,
59  vtkInformationVector*) VTK_OVERRIDE;
60 
62 
67  void SetInputData(vtkDataObject *);
68  void SetInputData(int, vtkDataObject*);
70 
72 
77  vtkDataObject *GetInput(int port);
78  vtkDataObject *GetInput() { return this->GetInput(0); };
79  vtkImageData *GetImageDataInput(int port);
81 
83 
88  virtual void AddInputData(vtkDataObject *);
89  virtual void AddInputData(int, vtkDataObject*);
91 
92 protected:
94  ~vtkImageAlgorithm() VTK_OVERRIDE;
95 
100  virtual int RequestInformation(vtkInformation* request,
101  vtkInformationVector** inputVector,
102  vtkInformationVector* outputVector);
103 
104 
110  virtual int RequestUpdateExtent(vtkInformation*,
111  vtkInformationVector**,
112  vtkInformationVector*);
113 
121  virtual void CopyInputArrayAttributesToOutput(vtkInformation* request,
122  vtkInformationVector** inputVector,
123  vtkInformationVector* outputVector);
124 
125 
133  virtual int RequestData(vtkInformation *request,
134  vtkInformationVector** inputVector,
135  vtkInformationVector* outputVector);
136 
141  virtual void ExecuteDataWithInformation(vtkDataObject *output,
142  vtkInformation* outInfo);
143 
145 
149  virtual void ExecuteData(vtkDataObject *output);
150  virtual void Execute();
152 
154 
158  virtual void AllocateOutputData(vtkImageData *out,
159  vtkInformation* outInfo,
160  int *uExtent);
161  virtual vtkImageData *AllocateOutputData(vtkDataObject *out,
162  vtkInformation *outInfo);
164 
169  virtual void CopyAttributeData(vtkImageData *in, vtkImageData *out,
170  vtkInformationVector** inputVector);
171 
173 
178  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
179  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
181 
182 private:
183  vtkImageAlgorithm(const vtkImageAlgorithm&) VTK_DELETE_FUNCTION;
184  void operator=(const vtkImageAlgorithm&) VTK_DELETE_FUNCTION;
185 };
186 
187 #endif
188 
189 
190 
191 
192 
193 
194 
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:54
Generic algorithm superclass for image algs.
Definition: vtkImageAlgorithm.h:38
void SetInputData(vtkDataObject *)
int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE
virtual void AddInputData(vtkDataObject *)
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
vtkDataObject * GetInput(int port)
vtkImageData * GetOutput()