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