VTK
dox/Common/ExecutionModel/vtkHyperOctreeAlgorithm.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkHyperOctreeAlgorithm.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 =========================================================================*/
00030 #ifndef __vtkHyperOctreeAlgorithm_h
00031 #define __vtkHyperOctreeAlgorithm_h
00032 
00033 #include "vtkCommonExecutionModelModule.h" // For export macro
00034 #include "vtkAlgorithm.h"
00035 #include "vtkHyperOctree.h" // makes things a bit easier
00036 
00037 class vtkDataSet;
00038 class vtkHyperOctree;
00039 
00040 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkHyperOctreeAlgorithm : public vtkAlgorithm
00041 {
00042 public:
00043   vtkTypeMacro(vtkHyperOctreeAlgorithm,vtkAlgorithm);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047 
00048   vtkHyperOctree *GetOutput();
00049   vtkHyperOctree *GetOutput(int);
00050   virtual void SetOutput(vtkDataObject* d);
00052 
00054 
00055   virtual int ProcessRequest(vtkInformation*,
00056                              vtkInformationVector**,
00057                              vtkInformationVector*);
00059 
00060   // this method is not recommended for use, but lots of old style filters
00061   // use it
00062   vtkDataObject* GetInput();
00063   vtkDataObject *GetInput(int port);
00064   vtkHyperOctree *GetHyperOctreeInput(int port);
00065 
00067 
00070   void SetInputData(vtkDataObject *);
00071   void SetInputData(int, vtkDataObject*);
00073 
00075 
00078   void AddInputData(vtkDataObject *);
00079   void AddInputData(int, vtkDataObject*);
00081 
00082 protected:
00083   vtkHyperOctreeAlgorithm();
00084   ~vtkHyperOctreeAlgorithm();
00085 
00086   // convenience method
00087   virtual int RequestInformation(vtkInformation* request,
00088                                  vtkInformationVector** inputVector,
00089                                  vtkInformationVector* outputVector);
00090 
00092 
00094   virtual int RequestData(vtkInformation* request,
00095                           vtkInformationVector** inputVector,
00096                           vtkInformationVector* outputVector);
00098 
00100 
00102   virtual int RequestUpdateExtent(vtkInformation*,
00103                                   vtkInformationVector**,
00104                                   vtkInformationVector*);
00106 
00107   // see algorithm for more info
00108   virtual int FillOutputPortInformation(int port, vtkInformation* info);
00109   virtual int FillInputPortInformation(int port, vtkInformation* info);
00110 
00111 private:
00112   vtkHyperOctreeAlgorithm(const vtkHyperOctreeAlgorithm&);  // Not implemented.
00113   void operator=(const vtkHyperOctreeAlgorithm&);  // Not implemented.
00114 };
00115 
00116 #endif