VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGenericDataSetAlgorithm.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 __vtkGenericDataSetAlgorithm_h 00037 #define __vtkGenericDataSetAlgorithm_h 00038 00039 #include "vtkAlgorithm.h" 00040 #include "vtkGenericDataSet.h" // makes things a bit easier 00041 00042 class vtkDataSet; 00043 class vtkGenericDataSet; 00044 00045 class VTK_FILTERING_EXPORT vtkGenericDataSetAlgorithm : public vtkAlgorithm 00046 { 00047 public: 00048 vtkTypeMacro(vtkGenericDataSetAlgorithm,vtkAlgorithm); 00049 void PrintSelf(ostream& os, vtkIndent indent); 00050 00052 00053 vtkGenericDataSet* GetOutput(); 00054 vtkGenericDataSet* GetOutput(int); 00055 virtual void SetOutput(vtkDataObject* d); 00057 00059 00060 virtual int ProcessRequest(vtkInformation*, 00061 vtkInformationVector**, 00062 vtkInformationVector*); 00064 00065 // this method is not recommended for use, but lots of old style filters 00066 // use it 00067 vtkDataObject* GetInput(); 00068 vtkDataObject *GetInput(int port); 00069 vtkGenericDataSet *GetGenericDataSetInput(int port); 00070 00072 00079 void SetInput(vtkDataObject *); 00080 void SetInput(int, vtkDataObject*); 00082 00084 00088 void AddInput(vtkDataObject *); 00089 void AddInput(int, vtkDataObject*); 00091 00092 protected: 00093 vtkGenericDataSetAlgorithm(); 00094 ~vtkGenericDataSetAlgorithm(); 00095 00096 // convenience method 00097 virtual int RequestInformation(vtkInformation* request, 00098 vtkInformationVector** inputVector, 00099 vtkInformationVector* outputVector); 00100 00102 00105 virtual int RequestData(vtkInformation* request, 00106 vtkInformationVector** inputVector, 00107 vtkInformationVector* outputVector); 00109 00111 00114 virtual int RequestDataObject(vtkInformation* request, 00115 vtkInformationVector** inputVector, 00116 vtkInformationVector* outputVector)=0; 00118 00120 00123 virtual int RequestUpdateExtent(vtkInformation*, 00124 vtkInformationVector**, 00125 vtkInformationVector*); 00127 00129 00130 virtual void ExecuteData(vtkDataObject *output); 00131 virtual void Execute(); 00133 00134 // see algorithm for more info 00135 virtual int FillOutputPortInformation(int port, vtkInformation* info); 00136 virtual int FillInputPortInformation(int port, vtkInformation* info); 00137 00138 private: 00139 vtkGenericDataSetAlgorithm(const vtkGenericDataSetAlgorithm&); // Not implemented. 00140 void operator=(const vtkGenericDataSetAlgorithm&); // Not implemented. 00141 }; 00142 00143 #endif