VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkDataSetAlgorithm.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 =========================================================================*/ 00036 #ifndef __vtkDataSetAlgorithm_h 00037 #define __vtkDataSetAlgorithm_h 00038 00039 #include "vtkAlgorithm.h" 00040 00041 class vtkDataSet; 00042 class vtkImageData; 00043 class vtkPolyData; 00044 class vtkStructuredPoints; 00045 class vtkStructuredGrid; 00046 class vtkUnstructuredGrid; 00047 class vtkRectilinearGrid; 00048 00049 class VTK_FILTERING_EXPORT vtkDataSetAlgorithm : public vtkAlgorithm 00050 { 00051 public: 00052 static vtkDataSetAlgorithm *New(); 00053 vtkTypeMacro(vtkDataSetAlgorithm,vtkAlgorithm); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00055 00057 00058 vtkDataSet* GetOutput(); 00059 vtkDataSet* GetOutput(int); 00061 00064 vtkDataObject* GetInput(); 00065 00067 vtkPolyData *GetPolyDataOutput(); 00068 00070 vtkStructuredPoints *GetStructuredPointsOutput(); 00071 00073 vtkImageData *GetImageDataOutput(); 00074 00076 vtkStructuredGrid *GetStructuredGridOutput(); 00077 00079 vtkUnstructuredGrid *GetUnstructuredGridOutput(); 00080 00082 vtkRectilinearGrid *GetRectilinearGridOutput(); 00083 00085 00092 void SetInput(vtkDataObject*); 00093 void SetInput(int, vtkDataObject*); 00094 void SetInput(vtkDataSet*); 00095 void SetInput(int, vtkDataSet*); 00097 00099 00103 void AddInput(vtkDataObject *); 00104 void AddInput(vtkDataSet*); 00105 void AddInput(int, vtkDataSet*); 00106 void AddInput(int, vtkDataObject*); 00108 00110 00111 virtual int ProcessRequest(vtkInformation* request, 00112 vtkInformationVector** inputVector, 00113 vtkInformationVector* outputVector); 00115 00116 protected: 00117 vtkDataSetAlgorithm(); 00118 ~vtkDataSetAlgorithm() {}; 00119 00121 00126 virtual int RequestInformation(vtkInformation*, 00127 vtkInformationVector**, 00128 vtkInformationVector*) {return 1;}; 00130 00132 00136 virtual int RequestUpdateExtent(vtkInformation*, 00137 vtkInformationVector**, 00138 vtkInformationVector*) 00139 { 00140 return 1; 00141 }; 00143 00144 00146 00153 virtual int RequestDataObject(vtkInformation* request, 00154 vtkInformationVector** inputVector, 00155 vtkInformationVector* outputVector); 00157 00159 00163 virtual int RequestData(vtkInformation*, 00164 vtkInformationVector**, 00165 vtkInformationVector*) {return 1;}; 00167 00168 00169 // see algorithm for more info 00170 virtual int FillOutputPortInformation(int port, vtkInformation* info); 00171 virtual int FillInputPortInformation(int port, vtkInformation* info); 00172 00173 vtkDataObject *GetInput(int port); 00174 00175 private: 00176 vtkDataSetAlgorithm(const vtkDataSetAlgorithm&); // Not implemented. 00177 void operator=(const vtkDataSetAlgorithm&); // Not implemented. 00178 }; 00179 00180 #endif 00181 00182