VTK  9.4.20251203
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
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
120
122 {
123 INVALID,
124 NONE,
125 MIXED,
126 ALL
127 };
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.
Superclass for algorithms that produce only data object as output.
general representation of visualization data
AttributeTypes
Possible attribute types.
abstract class to specify dataset behavior
Definition vtkDataSet.h:57
extract a subset from a vtkDataSet.
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
Fill the input port information objects for this algorithm.
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.
SelectionContent
Indicate the means by which data is selected.
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