VTK  9.0.3
vtkSelector.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSelector.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
23 #ifndef vtkSelector_h
24 #define vtkSelector_h
25 
26 #include "vtkFiltersExtractionModule.h" // For export macro
27 #include "vtkObject.h"
28 #include "vtkSmartPointer.h" // For vtkSmartPointer
29 
31 class vtkDataObject;
32 class vtkSelectionNode;
33 class vtkSignedCharArray;
34 class vtkTable;
35 class vtkDataObjectTree;
36 class vtkUniformGridAMR;
37 
38 class VTKFILTERSEXTRACTION_EXPORT vtkSelector : public vtkObject
39 {
40 public:
41  vtkTypeMacro(vtkSelector, vtkObject);
42  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
53  virtual void Initialize(vtkSelectionNode* node);
54 
58  virtual void Finalize() {}
59 
69  virtual void Execute(vtkDataObject* input, vtkDataObject* output);
70 
72 
76  vtkSetMacro(InsidednessArrayName, std::string);
77  vtkGetMacro(InsidednessArrayName, std::string);
79 protected:
81  virtual ~vtkSelector() override;
82 
83  // Contains the selection criteria.
84  vtkSelectionNode* Node = nullptr;
85 
86  // Name of the insidedness array added to the output when the selection criteria is
87  // evaluated by this operator.
89 
106  vtkDataObject* input, vtkSignedCharArray* insidednessArray) = 0;
107 
109  {
112  INHERIT
113  };
114 
122  virtual SelectionMode GetAMRBlockSelection(unsigned int level, unsigned int index);
123 
132  virtual SelectionMode GetBlockSelection(unsigned int compositeIndex);
133 
139 
145  vtkDataObject* data, vtkSignedCharArray* selectedPoints);
146 
155 
156 private:
157  vtkSelector(const vtkSelector&) = delete;
158  void operator=(const vtkSelector&) = delete;
159 
160  void ProcessBlock(vtkDataObject* inputBlock, vtkDataObject* outputBlock, bool forceFalse);
161  void ProcessAMR(vtkUniformGridAMR* input, vtkCompositeDataSet* output);
162  void ProcessDataObjectTree(vtkDataObjectTree* input, vtkDataObjectTree* output,
163  SelectionMode inheritedSelectionMode, unsigned int compositeIndex = 0);
164 };
165 
166 #endif
abstract superclass for composite (multi-block or AMR) datasets
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
general representation of visualization data
Definition: vtkDataObject.h:60
a simple class to control print indentation
Definition: vtkIndent.h:34
abstract base class for most VTK objects
Definition: vtkObject.h:54
A node in a selection tree.
virtual SelectionMode GetBlockSelection(unsigned int compositeIndex)
Returns whether the block is to be processed.
virtual SelectionMode GetAMRBlockSelection(unsigned int level, unsigned int index)
Returns whether the AMR block is to be processed.
virtual bool ComputeSelectedElements(vtkDataObject *input, vtkSignedCharArray *insidednessArray)=0
This method computes whether or not each element in the dataset is inside the selection and populates...
vtkSmartPointer< vtkSignedCharArray > CreateInsidednessArray(vtkIdType numElems)
Creates an array suitable for storing insideness.
vtkSmartPointer< vtkSignedCharArray > ComputeCellsContainingSelectedPoints(vtkDataObject *data, vtkSignedCharArray *selectedPoints)
Given a data object and selected points, return an array indicating the insidedness of cells that con...
virtual void Finalize()
Does any cleanup of objects created in Initialize.
Definition: vtkSelector.h:58
virtual ~vtkSelector() override
virtual void Execute(vtkDataObject *input, vtkDataObject *output)
Given an input and the vtkSelectionNode passed into the Initialize() method, add to the output a vtkS...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::string InsidednessArrayName
Definition: vtkSelector.h:88
virtual void Initialize(vtkSelectionNode *node)
Sets the vtkSelectionNode used by this selection operator and initializes the data structures in the ...
void ExpandToConnectedElements(vtkDataObject *output)
Handle expanding to connected cells or point, if requested.
dynamic, self-adjusting array of signed char
Hold a reference to a vtkObjectBase instance.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:63
@ level
Definition: vtkX3D.h:401
@ index
Definition: vtkX3D.h:252
@ data
Definition: vtkX3D.h:321
@ string
Definition: vtkX3D.h:496
int vtkIdType
Definition: vtkType.h:338