VTK
dox/Filters/Extraction/vtkExtractSelection.h
Go to the documentation of this file.
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