VTK
dox/Rendering/vtkLabelHierarchyAlgorithm.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkLabelHierarchyAlgorithm.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 __vtkLabelHierarchyAlgorithm_h
00034 #define __vtkLabelHierarchyAlgorithm_h
00035 
00036 #include "vtkAlgorithm.h"
00037 
00038 class vtkDataSet;
00039 class vtkLabelHierarchy;
00040 
00041 class VTK_RENDERING_EXPORT vtkLabelHierarchyAlgorithm : public vtkAlgorithm
00042 {
00043 public:
00044   static vtkLabelHierarchyAlgorithm *New();
00045   vtkTypeMacro(vtkLabelHierarchyAlgorithm,vtkAlgorithm);
00046   void PrintSelf(ostream& os, vtkIndent indent);
00047 
00049 
00050   vtkLabelHierarchy* GetOutput();
00051   vtkLabelHierarchy* GetOutput(int);
00052   virtual void SetOutput(vtkDataObject* d);
00054 
00056 
00057   virtual int ProcessRequest(vtkInformation*,
00058                              vtkInformationVector**,
00059                              vtkInformationVector*);
00061 
00062   // this method is not recommended for use, but lots of old style filters use it
00063   vtkDataObject* GetInput();
00064   vtkDataObject* GetInput(int port);
00065   vtkLabelHierarchy* GetLabelHierarchyInput(int port);
00066 
00068 
00075   void SetInput( vtkDataObject* );
00076   void SetInput( int, vtkDataObject* );
00078 
00080 
00084   void AddInput( vtkDataObject* );
00085   void AddInput( int, vtkDataObject* );
00087 
00088 protected:
00089   vtkLabelHierarchyAlgorithm();
00090   ~vtkLabelHierarchyAlgorithm();
00091 
00093 
00095   virtual int RequestDataObject(
00096     vtkInformation* request,
00097     vtkInformationVector** inputVector,
00098     vtkInformationVector* outputVector );
00100 
00101   // convenience method
00102   virtual int RequestInformation(
00103     vtkInformation* request,
00104     vtkInformationVector** inputVector,
00105     vtkInformationVector* outputVector );
00106 
00108 
00110   virtual int RequestData(
00111     vtkInformation* request,
00112     vtkInformationVector** inputVector,
00113     vtkInformationVector* outputVector );
00115 
00117 
00119   virtual int RequestUpdateExtent(
00120     vtkInformation*,
00121     vtkInformationVector**,
00122     vtkInformationVector* );
00124 
00125   // see algorithm for more info
00126   virtual int FillOutputPortInformation( int port, vtkInformation* info );
00127   virtual int FillInputPortInformation( int port, vtkInformation* info );
00128 
00129 private:
00130   vtkLabelHierarchyAlgorithm( const vtkLabelHierarchyAlgorithm& ); // Not implemented.
00131   void operator = ( const vtkLabelHierarchyAlgorithm& );  // Not implemented.
00132 };
00133 
00134 #endif