VTK  9.6.1
vtkExtractSelection.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
34
35#ifndef vtkExtractSelection_h
36#define vtkExtractSelection_h
37
39#include "vtkFiltersExtractionModule.h" // For export macro
40
41#include "vtkSelectionNode.h" // for vtkSelectionNode::SelectionContent
42#include "vtkSmartPointer.h" // for smart pointer
43
44VTK_ABI_NAMESPACE_BEGIN
47class vtkSelection;
49class vtkSelector;
51class vtkTable;
52
53class VTKFILTERSEXTRACTION_EXPORT vtkExtractSelection : public vtkDataObjectAlgorithm
54{
55public:
58 void PrintSelf(ostream& os, vtkIndent indent) override;
59
65 {
66 this->SetInputConnection(1, algOutput);
67 }
68
70
75 vtkSetMacro(PreserveTopology, bool);
76 vtkGetMacro(PreserveTopology, bool);
77 vtkBooleanMacro(PreserveTopology, bool);
79
81
87 vtkGetMacro(HyperTreeGridToUnstructuredGrid, bool);
88 vtkSetMacro(HyperTreeGridToUnstructuredGrid, bool);
89 vtkBooleanMacro(HyperTreeGridToUnstructuredGrid, bool);
91
92protected:
95
100 vtkInformationVector* outputVector) override;
102 vtkInformationVector* outputVector) override;
107 vtkInformationVector* outputVector) override;
108
109 // Gets the attribute association of the selection. Currently we support ROW, POINT, and CELL.
110 // If the selection types are mismatched the boolean parameter will be set to false, otherwise
111 // it will be true after the function returns.
113
119 vtkSelectionNode::SelectionContent type);
120
122 {
123 INVALID,
124 NONE,
125 MIXED,
126 ALL
127 };
128
133 vtkDataObject::AttributeTypes association, vtkSelection* selection,
134 std::map<std::string, vtkSmartPointer<vtkSelector>>& selectors);
135
145 vtkDataObject* dataObject, vtkDataObject::AttributeTypes association, vtkSelection* selection);
146
151
160 vtkDataObject::AttributeTypes elementType, EvaluationResult evaluationResult,
161 vtkDataObject* outputBlock);
162
163 int FillInputPortInformation(int port, vtkInformation* info) override;
164
170 vtkSignedCharArray* cellInside, bool extractAll);
177 vtkSignedCharArray* pointInside, bool extractAll);
183 vtkTable* input, vtkTable* output, vtkSignedCharArray* rowsInside, bool extractAll);
184
185 bool PreserveTopology = false;
186
187private:
189 void operator=(const vtkExtractSelection&) = delete;
190
192 bool HyperTreeGridToUnstructuredGrid = false;
193};
194
195VTK_ABI_NAMESPACE_END
196#endif
Proxy object to connect input/output ports.
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
general representation of visualization data
AttributeTypes
Possible attribute types.
abstract class to specify dataset behavior
Definition vtkDataSet.h:57
vtkSmartPointer< vtkDataObject > ExtractElements(vtkDataObject *inputBlock, vtkDataObject::AttributeTypes elementType, EvaluationResult evaluationResult, vtkDataObject *outputBlock)
Given a non-composite input data object (either a block of a larger composite or the whole input),...
vtkDataObject::AttributeTypes GetAttributeTypeOfSelection(vtkSelection *sel, bool &sane)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
EvaluationResult EvaluateSelection(vtkDataObject *dataObject, vtkDataObject::AttributeTypes association, vtkSelection *selection, std::map< std::string, vtkSmartPointer< vtkSelector > > &selectors)
Evaluates the selection for the given content type for a data object and returns the evaluation resul...
~vtkExtractSelection() override
void SetSelectionConnection(vtkAlgorithmOutput *algOutput)
Convenience method to specify the selection connection (2nd input port).
vtkSmartPointer< vtkUnsignedCharArray > EvaluateColorArrayInSelection(vtkDataObject *dataObject, vtkDataObject::AttributeTypes association, vtkSelection *selection)
Initialize and populate outputColorArray as cell array depending on vtkSelectionData available in the...
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Sets up empty output dataset.
int FillInputPortInformation(int port, vtkInformation *info) override
static vtkExtractSelection * New()
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Sets up empty output dataset.
void ExtractSelectedRows(vtkTable *input, vtkTable *output, vtkSignedCharArray *rowsInside, bool extractAll)
Given an input vtkTable and an array of which rows to extract, this populates the output table with t...
virtual vtkSmartPointer< vtkSelector > NewSelectionOperator(vtkSelectionNode::SelectionContent type)
Creates a new vtkSelector for the given content type.
void ExtractSelectedPoints(vtkDataSet *input, vtkUnstructuredGrid *output, vtkSignedCharArray *pointInside, bool extractAll)
Given a vtkDataSet and an array of which points to extract, the populates the given vtkUnstructuredGr...
void AddColorArrayOnObject(vtkDataObject *dataObject, vtkUnsignedCharArray *colorArray)
Add colorArray has cell array on the dataObject.
void ExtractSelectedCells(vtkDataSet *input, vtkUnstructuredGrid *output, vtkSignedCharArray *cellInside, bool extractAll)
Given a vtkDataSet and an array of which cells to extract, this populates the given vtkUnstructuredGr...
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
a node in a vtkSelection the defines the selection criteria.
data object that represents a "selection" in VTK.
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:60
dynamic, self-adjusting array of unsigned char
dataset represents arbitrary combinations of all possible cell types