00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00031 #ifndef __vtkImageStencilSource_h
00032 #define __vtkImageStencilSource_h
00033 
00034 
00035 #include "vtkAlgorithm.h"
00036 
00037 class vtkImageStencilData;
00038 
00039 class VTK_IMAGING_EXPORT vtkImageStencilSource : public vtkAlgorithm
00040 {
00041 public:
00042   static vtkImageStencilSource *New();
00043   vtkTypeMacro(vtkImageStencilSource, vtkAlgorithm);
00044 
00045   void PrintSelf(ostream& os, vtkIndent indent);
00046 
00048 
00049   void SetOutput(vtkImageStencilData *output);
00050   vtkImageStencilData *GetOutput();
00052 
00054 
00055   virtual int ProcessRequest(vtkInformation*,
00056                              vtkInformationVector**,
00057                              vtkInformationVector*);
00059 
00060 protected:
00061   vtkImageStencilSource();
00062   ~vtkImageStencilSource();
00063 
00064   virtual int RequestData(vtkInformation *, vtkInformationVector **,
00065                   vtkInformationVector *);
00066   virtual int RequestInformation(vtkInformation *, vtkInformationVector **,
00067                                  vtkInformationVector *) { return 1; }
00068   virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **,
00069                                   vtkInformationVector *) { return 1; }
00070   vtkImageStencilData *AllocateOutputData(vtkDataObject *out, int* updateExt);
00071 
00072   virtual int FillOutputPortInformation(int, vtkInformation*);
00073 
00074 private:
00075   vtkImageStencilSource(const vtkImageStencilSource&);  
00076   void operator=(const vtkImageStencilSource&);  
00077 };
00078 
00079 #endif
00080