VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkExtractSelection.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 __vtkExtractSelection_h 00034 #define __vtkExtractSelection_h 00035 00036 #include "vtkFiltersExtractionModule.h" // For export macro 00037 #include "vtkExtractSelectionBase.h" 00038 00039 class vtkExtractSelectedBlock; 00040 class vtkExtractSelectedFrustum; 00041 class vtkExtractSelectedIds; 00042 class vtkExtractSelectedLocations; 00043 class vtkExtractSelectedRows; 00044 class vtkExtractSelectedThresholds; 00045 class vtkProbeSelectedLocations; 00046 class vtkSelection; 00047 class vtkSelectionNode; 00048 00049 class VTKFILTERSEXTRACTION_EXPORT vtkExtractSelection : public vtkExtractSelectionBase 00050 { 00051 public: 00052 static vtkExtractSelection *New(); 00053 vtkTypeMacro(vtkExtractSelection, vtkExtractSelectionBase); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00055 00057 00060 vtkSetMacro(ShowBounds,int); 00061 vtkGetMacro(ShowBounds,int); 00062 vtkBooleanMacro(ShowBounds,int); 00064 00066 00069 vtkSetMacro(UseProbeForLocations, int); 00070 vtkGetMacro(UseProbeForLocations, int); 00071 vtkBooleanMacro(UseProbeForLocations, int); 00073 00074 protected: 00075 vtkExtractSelection(); 00076 ~vtkExtractSelection(); 00077 00078 virtual int FillInputPortInformation(int port, vtkInformation* info); 00079 00080 //sets up empty output dataset 00081 virtual int RequestDataObject(vtkInformation* request, 00082 vtkInformationVector** inputVector, 00083 vtkInformationVector* outputVector); 00084 00085 // runs the algorithm and fills the output with results 00086 virtual int RequestData(vtkInformation *, 00087 vtkInformationVector **, 00088 vtkInformationVector *); 00089 00090 // used for composite, non-hierarhical input. 00091 vtkDataObject* RequestDataInternal( 00092 unsigned int composite_index, 00093 vtkDataObject* non_composite_input, vtkSelection* sel, 00094 vtkInformation* outInfo); 00095 00096 // Used for hierarchical input. 00097 vtkDataObject* RequestDataInternal( 00098 unsigned int composite_index, 00099 unsigned int level, 00100 unsigned int index, 00101 vtkDataObject* non_composite_input, vtkSelection* sel, 00102 vtkInformation* outInfo); 00103 00104 00105 // called for non-composite input or for a block in a composite dataset. 00106 vtkDataObject* RequestDataFromBlock(vtkDataObject* input, 00107 vtkSelectionNode* sel, vtkInformation* outInfo); 00108 00109 vtkExtractSelectedBlock* BlockFilter; 00110 vtkExtractSelectedFrustum* FrustumFilter; 00111 vtkExtractSelectedIds* IdsFilter; 00112 vtkExtractSelectedLocations* LocationsFilter; 00113 vtkExtractSelectedRows* RowsFilter; 00114 vtkExtractSelectedThresholds* ThresholdsFilter; 00115 vtkProbeSelectedLocations* ProbeFilter; 00116 00117 int UseProbeForLocations; 00118 int ShowBounds; 00119 private: 00120 vtkExtractSelection(const vtkExtractSelection&); // Not implemented. 00121 void operator=(const vtkExtractSelection&); // Not implemented. 00122 }; 00123 00124 #endif