VTK
dox/Filtering/vtkPassInputTypeAlgorithm.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPassInputTypeAlgorithm.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 =========================================================================*/
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   // see algorithm for more info
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&);  // Not implemented.
00178   void operator=(const vtkPassInputTypeAlgorithm&);  // Not implemented.
00179 };
00180 
00181 #endif
00182 
00183