00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00033 #ifndef __vtkPassInputTypeAlgorithm_h
00034 #define __vtkPassInputTypeAlgorithm_h
00035 
00036 #include "vtkAlgorithm.h"
00037 
00038 class vtkDataObject;
00039 class vtkGraph;
00040 class vtkImageData;
00041 class vtkPolyData;
00042 class vtkStructuredPoints;
00043 class vtkStructuredGrid;
00044 class vtkUnstructuredGrid;
00045 class vtkRectilinearGrid;
00046 class vtkTable;
00047 
00048 class VTK_FILTERING_EXPORT vtkPassInputTypeAlgorithm : public vtkAlgorithm
00049 {
00050 public:
00051   static vtkPassInputTypeAlgorithm *New();
00052   vtkTypeMacro(vtkPassInputTypeAlgorithm,vtkAlgorithm);
00053   void PrintSelf(ostream& os, vtkIndent indent);
00054 
00056 
00057   vtkDataObject* GetOutput();
00058   vtkDataObject* GetOutput(int);
00060 
00062   vtkPolyData *GetPolyDataOutput();
00063 
00065   vtkStructuredPoints *GetStructuredPointsOutput();
00066 
00068   vtkImageData *GetImageDataOutput();
00069 
00071   vtkStructuredGrid *GetStructuredGridOutput();
00072 
00074   vtkUnstructuredGrid *GetUnstructuredGridOutput();
00075 
00077   vtkRectilinearGrid *GetRectilinearGridOutput();
00078 
00080   vtkTable *GetTableOutput();
00081 
00083   vtkGraph *GetGraphOutput();
00084 
00087   vtkDataObject* GetInput();
00088   
00090 
00097   void SetInput(vtkDataObject*);
00098   void SetInput(int, vtkDataObject*);
00100 
00102 
00106   void AddInput(vtkDataObject *);
00107   void AddInput(int, vtkDataObject*);
00109 
00111 
00112   virtual int ProcessRequest(vtkInformation* request, 
00113                              vtkInformationVector** inputVector,
00114                              vtkInformationVector* outputVector);
00116 
00117 protected:
00118   vtkPassInputTypeAlgorithm();
00119   ~vtkPassInputTypeAlgorithm() {};
00120 
00122 
00127   virtual int RequestInformation(vtkInformation*, 
00128                                  vtkInformationVector**, 
00129                                  vtkInformationVector*) {return 1;};
00131   
00133 
00137   virtual int RequestUpdateExtent(vtkInformation*,
00138                                   vtkInformationVector**,
00139                                   vtkInformationVector*) 
00140     {
00141       return 1;
00142     };
00144 
00145 
00147 
00154   virtual int RequestDataObject(vtkInformation* request, 
00155                                 vtkInformationVector** inputVector, 
00156                                 vtkInformationVector* outputVector);
00158   
00160 
00164   virtual int RequestData(vtkInformation*, 
00165                           vtkInformationVector**, 
00166                           vtkInformationVector*) {return 1;};
00168   
00169 
00170   
00171   virtual int FillOutputPortInformation(int port, vtkInformation* info);
00172   virtual int FillInputPortInformation(int port, vtkInformation* info);
00173 
00174   vtkDataObject *GetInput(int port);
00175 
00176 private:
00177   vtkPassInputTypeAlgorithm(const vtkPassInputTypeAlgorithm&);  
00178   void operator=(const vtkPassInputTypeAlgorithm&);  
00179 };
00180 
00181 #endif
00182 
00183