00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00022 #ifndef __vtkPieceRequestFilter_h
00023 #define __vtkPieceRequestFilter_h
00024 
00025 #include "vtkAlgorithm.h"
00026 
00027 class vtkDataObject;
00028 
00029 class VTK_PARALLEL_EXPORT vtkPieceRequestFilter : public vtkAlgorithm
00030 {
00031 public:
00032   static vtkPieceRequestFilter *New();
00033   vtkTypeMacro(vtkPieceRequestFilter,vtkAlgorithm);
00034   void PrintSelf(ostream& os, vtkIndent indent);
00035 
00037 
00038   vtkSetClampMacro(NumberOfPieces, int, 0, VTK_INT_MAX);
00039   vtkGetMacro(NumberOfPieces, int);
00041 
00043 
00044   vtkSetClampMacro(Piece, int, 0, VTK_INT_MAX);
00045   vtkGetMacro(Piece, int);
00047 
00049 
00050   vtkDataObject* GetOutput();
00051   vtkDataObject* GetOutput(int);
00053 
00055 
00056   void SetInput(vtkDataObject*);
00057   void SetInput(int, vtkDataObject*);
00059 
00061 
00062   virtual int ProcessRequest(vtkInformation* request, 
00063                              vtkInformationVector** inputVector,
00064                              vtkInformationVector* outputVector);
00066 
00067 protected:
00068   vtkPieceRequestFilter();
00069   ~vtkPieceRequestFilter() {};
00070 
00071   virtual int RequestDataObject(vtkInformation* request, 
00072                                 vtkInformationVector** inputVector, 
00073                                 vtkInformationVector* outputVector);
00074   
00075   virtual int RequestData(vtkInformation*, 
00076                           vtkInformationVector**, 
00077                           vtkInformationVector*);
00078   
00079   virtual int RequestUpdateExtent(vtkInformation*,
00080                                   vtkInformationVector**,
00081                                   vtkInformationVector*);
00082 
00083   virtual int FillOutputPortInformation(int port, vtkInformation* info);
00084   virtual int FillInputPortInformation(int port, vtkInformation* info);
00085 
00086   int NumberOfPieces;
00087   int Piece;
00088 
00089 private:
00090   vtkPieceRequestFilter(const vtkPieceRequestFilter&);  
00091   void operator=(const vtkPieceRequestFilter&);  
00092 };
00093 
00094 #endif
00095 
00096