00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00028 #ifndef __vtkImageToImageStencil_h
00029 #define __vtkImageToImageStencil_h
00030 
00031 
00032 #include "vtkImageStencilAlgorithm.h"
00033 
00034 class vtkImageData;
00035 
00036 class VTK_IMAGING_EXPORT vtkImageToImageStencil : public vtkImageStencilAlgorithm
00037 {
00038 public:
00039   static vtkImageToImageStencil *New();
00040   vtkTypeMacro(vtkImageToImageStencil, vtkImageStencilAlgorithm);
00041   void PrintSelf(ostream& os, vtkIndent indent);
00042 
00044 
00045   void SetInput(vtkImageData *input);
00046   vtkImageData *GetInput();
00048 
00050   void ThresholdByUpper(double thresh);
00051   
00053   void ThresholdByLower(double thresh);
00054   
00056   void ThresholdBetween(double lower, double upper);
00057   
00059 
00060   vtkSetMacro(UpperThreshold, double);
00061   vtkGetMacro(UpperThreshold, double);
00062   vtkSetMacro(LowerThreshold, double);
00063   vtkGetMacro(LowerThreshold, double);
00065 
00066 protected:
00067   vtkImageToImageStencil();
00068   ~vtkImageToImageStencil();
00069 
00070   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00071   virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00072   virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00073   virtual int FillInputPortInformation(int, vtkInformation*);
00074   
00075   double UpperThreshold;
00076   double LowerThreshold;
00077   double Threshold;
00078 private:
00079   vtkImageToImageStencil(const vtkImageToImageStencil&);  
00080   void operator=(const vtkImageToImageStencil&);  
00081 };
00082 
00083 #endif