Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkPolyDataAlgorithm.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkPolyDataAlgorithm.h,v $
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 =========================================================================*/
00049 #ifndef __vtkPolyDataAlgorithm_h
00050 #define __vtkPolyDataAlgorithm_h
00051 
00052 #include "vtkAlgorithm.h"
00053 
00054 class vtkPolyData;
00055 
00056 class VTK_FILTERING_EXPORT vtkPolyDataAlgorithm : public vtkAlgorithm
00057 {
00058 public:
00059   static vtkPolyDataAlgorithm *New();
00060   vtkTypeRevisionMacro(vtkPolyDataAlgorithm,vtkAlgorithm);
00061   void PrintSelf(ostream& os, vtkIndent indent);
00062 
00064 
00065   vtkPolyData* GetOutput();
00066   vtkPolyData* GetOutput(int);
00068 
00070 
00071   virtual int ProcessRequest(vtkInformation*,
00072                              vtkInformationVector*,
00073                              vtkInformationVector*);
00075 
00076   // this method is not recommended for use, but lots of old style filters
00077   // use it
00078   vtkDataObject *GetInput(int port);
00079   vtkPolyData *GetPolyDataInput(int port);
00080 
00082 
00083   void SetInput(vtkDataObject *);
00084   void SetInput(int, vtkDataObject*);
00086 
00088 
00089   void AddInput(vtkDataObject *);
00090   void AddInput(int, vtkDataObject*);
00092 
00093 protected:
00094   vtkPolyDataAlgorithm();
00095   ~vtkPolyDataAlgorithm();
00096 
00097   // convinience method
00098   virtual void ExecuteInformation(vtkInformation *request, 
00099                                   vtkInformationVector *inputVector, 
00100                                   vtkInformationVector *outputVector);
00101 
00102   // This is called by the superclass.
00103   // This is the method you should override.
00104   virtual void RequestData(vtkInformation *request, 
00105                            vtkInformationVector *inputVector, 
00106                            vtkInformationVector *outputVector);
00107   
00112   int UpdateExtentIsEmpty(vtkDataObject *output);
00113 
00115 
00116   virtual void ExecuteData(vtkDataObject *output);
00117   virtual void Execute();
00119 
00120   // see algorithm for more info
00121   virtual int FillOutputPortInformation(int port, vtkInformation* info);
00122   virtual int FillInputPortInformation(int port, vtkInformation* info);
00123 
00124 private:
00125   vtkPolyDataAlgorithm(const vtkPolyDataAlgorithm&);  // Not implemented.
00126   void operator=(const vtkPolyDataAlgorithm&);  // Not implemented.
00127 };
00128 
00129 #endif