00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00030
#ifndef __vtkImageIterateFilter_h
00031
#define __vtkImageIterateFilter_h
00032
00033
00034
#include "vtkImageToImageFilter.h"
00035
00036 class VTK_IMAGING_EXPORT vtkImageIterateFilter :
public vtkImageToImageFilter
00037 {
00038
public:
00039 vtkTypeRevisionMacro(vtkImageIterateFilter,
vtkImageToImageFilter);
00040
void PrintSelf(ostream& os,
vtkIndent indent);
00041
00043
00045 vtkGetMacro(Iteration,
int);
00046 vtkGetMacro(NumberOfIterations,
int);
00048
00049
void ComputeInputUpdateExtents(
vtkDataObject *output );
00050
00051 void ComputeInputUpdateExtent(
int [6],
int [6] )
00052 { vtkErrorMacro( <<
"ComputeInputUpdateExtent should be implemented in subclass" );};
00053
00054
00055
protected:
00056 vtkImageIterateFilter();
00057 ~vtkImageIterateFilter();
00058
00059
00060
00061
00062
void ExecuteInformation();
00063
00064
00065
virtual void ExecuteInformation(
vtkImageData *inData,
vtkImageData *outData);
00066
00067
00068
00069
void ExecuteData(
vtkDataObject *output);
00070
virtual void IterativeExecuteData(
vtkImageData *in,
vtkImageData *out) = 0;
00071
00072
00073
virtual void AllocateOutputScalars(
vtkImageData *outData);
00074
00075
00076
virtual void SetNumberOfIterations(
int num);
00077
00078
00079 int NumberOfIterations;
00080 int Iteration;
00081
00082
00083 vtkImageData **IterationData;
00084
00085
00086
vtkImageData *GetIterationInput();
00087
vtkImageData *GetIterationOutput();
00088
private:
00089 vtkImageIterateFilter(
const vtkImageIterateFilter&);
00090
void operator=(
const vtkImageIterateFilter&);
00091 };
00092
00093
#endif
00094
00095
00096
00097
00098
00099
00100