VTK
|
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