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