VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageIterateFilter.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00026 #ifndef __vtkImageIterateFilter_h 00027 #define __vtkImageIterateFilter_h 00028 00029 #include "vtkImagingCoreModule.h" // For export macro 00030 #include "vtkThreadedImageAlgorithm.h" 00031 00032 class VTKIMAGINGCORE_EXPORT vtkImageIterateFilter : public vtkThreadedImageAlgorithm 00033 { 00034 public: 00035 vtkTypeMacro(vtkImageIterateFilter,vtkThreadedImageAlgorithm); 00036 void PrintSelf(ostream& os, vtkIndent indent); 00037 00039 00041 vtkGetMacro(Iteration,int); 00042 vtkGetMacro(NumberOfIterations,int); 00044 00045 protected: 00046 vtkImageIterateFilter(); 00047 ~vtkImageIterateFilter(); 00048 00049 // Implement standard requests by calling iterative versions the 00050 // specified number of times. 00051 virtual int RequestUpdateExtent(vtkInformation*, 00052 vtkInformationVector**, 00053 vtkInformationVector*); 00054 virtual int RequestInformation (vtkInformation*, 00055 vtkInformationVector**, 00056 vtkInformationVector*); 00057 virtual int RequestData(vtkInformation* request, 00058 vtkInformationVector** inputVector, 00059 vtkInformationVector* outputVector); 00060 00061 // Iterative versions of standard requests. These are given the 00062 // pipeline information object for the in/out pair at each 00063 // iteration. 00064 virtual int IterativeRequestInformation(vtkInformation* in, 00065 vtkInformation* out); 00066 virtual int IterativeRequestUpdateExtent(vtkInformation* in, 00067 vtkInformation* out); 00068 virtual int IterativeRequestData(vtkInformation*, 00069 vtkInformationVector**, 00070 vtkInformationVector*); 00071 00072 virtual void SetNumberOfIterations(int num); 00073 00074 // for filters that execute multiple times. 00075 int NumberOfIterations; 00076 int Iteration; 00077 // A list of intermediate caches that is created when 00078 // is called SetNumberOfIterations() 00079 vtkAlgorithm **IterationData; 00080 00081 vtkInformationVector* InputVector; 00082 vtkInformationVector* OutputVector; 00083 private: 00084 vtkImageIterateFilter(const vtkImageIterateFilter&); // Not implemented. 00085 void operator=(const vtkImageIterateFilter&); // Not implemented. 00086 }; 00087 00088 #endif 00089 00090 00091 00092 00093 00094 00095