VTK  9.3.0
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
26#ifndef vtkExtractSelection_h
27#define vtkExtractSelection_h
28
30#include "vtkFiltersExtractionModule.h" // For export macro
31
32#include "vtkSelectionNode.h" // for vtkSelectionNode::SelectionContent
33#include "vtkSmartPointer.h" // for smart pointer
34
35VTK_ABI_NAMESPACE_BEGIN
38class vtkSelection;
40class vtkSelector;
42class vtkTable;
43
44class VTKFILTERSEXTRACTION_EXPORT vtkExtractSelection : public vtkDataObjectAlgorithm
45{
46public:
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
56 {
57 this->SetInputConnection(1, algOutput);
58 }
59
61
66 vtkSetMacro(PreserveTopology, bool);
67 vtkGetMacro(PreserveTopology, bool);
68 vtkBooleanMacro(PreserveTopology, bool);
70
72
78 vtkGetMacro(HyperTreeGridToUnstructuredGrid, bool);
79 vtkSetMacro(HyperTreeGridToUnstructuredGrid, bool);
80 vtkBooleanMacro(HyperTreeGridToUnstructuredGrid, bool);
82
83protected:
86
91 vtkInformationVector* outputVector) override;
93 vtkInformationVector* outputVector) override;
97 int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
98 vtkInformationVector* outputVector) override;
99
100 // Gets the attribute association of the selection. Currently we support ROW, POINT, and CELL.
101 // If the selection types are mismatched the boolean parameter will be set to false, otherwise
102 // it will be true after the function returns.
104
111
113 {
114 INVALID,
115 NONE,
116 MIXED,
117 ALL
118 };
124 vtkDataObject::AttributeTypes association, vtkSelection* selection,
125 std::map<std::string, vtkSmartPointer<vtkSelector>>& selectors);
126
136 vtkDataObject* dataObject, vtkDataObject::AttributeTypes association, vtkSelection* selection);
137
142
151 vtkDataObject::AttributeTypes elementType, EvaluationResult evaluationResult,
152 vtkDataObject* outputBlock);
153
154 int FillInputPortInformation(int port, vtkInformation* info) override;
155
161 vtkSignedCharArray* cellInside, bool extractAll);
168 vtkSignedCharArray* pointInside, bool extractAll);
174 vtkTable* input, vtkTable* output, vtkSignedCharArray* rowsInside, bool extractAll);
175
176 bool PreserveTopology = false;
177
178private:
180 void operator=(const vtkExtractSelection&) = delete;
181
183 bool HyperTreeGridToUnstructuredGrid = false;
184};
185
186VTK_ABI_NAMESPACE_END
187#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:53
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:59
dynamic, self-adjusting array of unsigned char
dataset represents arbitrary combinations of all possible cell types