VTK  9.0.1
vtkExtractSelection.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkExtractSelection.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 =========================================================================*/
35 #ifndef vtkExtractSelection_h
36 #define vtkExtractSelection_h
37 
38 #include "vtkDataObjectAlgorithm.h"
39 #include "vtkFiltersExtractionModule.h" // For export macro
40 
41 #include "vtkSelectionNode.h" // for vtkSelectionNode::SelectionContent
42 #include "vtkSmartPointer.h" // for smart pointer
43 
44 class vtkSignedCharArray;
45 class vtkSelection;
46 class vtkSelectionNode;
47 class vtkSelector;
49 class vtkTable;
50 
51 class VTKFILTERSEXTRACTION_EXPORT vtkExtractSelection : public vtkDataObjectAlgorithm
52 {
53 public:
56  void PrintSelf(ostream& os, vtkIndent indent) override;
57 
63  {
64  this->SetInputConnection(1, algOutput);
65  }
66 
68 
73  vtkSetMacro(PreserveTopology, bool);
74  vtkGetMacro(PreserveTopology, bool);
75  vtkBooleanMacro(PreserveTopology, bool);
77 
78 protected:
81 
86  vtkInformationVector* outputVector) override;
90  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
91  vtkInformationVector* outputVector) override;
92 
93  // Gets the attribute association of the selection. Currently we support ROW, POINT, and CELL.
94  // If the selection types are mismatched the boolean parameter will be set to false, otherwise
95  // it will be true after the function returns.
97 
104 
113  vtkDataObject::AttributeTypes elementType, vtkSignedCharArray* insidednessArray);
114 
116 
122  vtkDataSet* input, vtkUnstructuredGrid* output, vtkSignedCharArray* cellInside);
129  vtkDataSet* input, vtkUnstructuredGrid* output, vtkSignedCharArray* pointInside);
134  void ExtractSelectedRows(vtkTable* input, vtkTable* output, vtkSignedCharArray* rowsInside);
135 
136  bool PreserveTopology = false;
137 
138 private:
139  vtkExtractSelection(const vtkExtractSelection&) = delete;
140  void operator=(const vtkExtractSelection&) = delete;
141 };
142 
143 #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
Definition: vtkDataObject.h:60
AttributeTypes
Possible attribute types.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:57
extract a subset from a vtkDataSet.
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.
~vtkExtractSelection() override
void SetSelectionConnection(vtkAlgorithmOutput *algOutput)
Convenience method to specify the selection connection (2nd input port)
void ExtractSelectedCells(vtkDataSet *input, vtkUnstructuredGrid *output, vtkSignedCharArray *cellInside)
Given a vtkDataSet and an array of which cells to extract, this populates the given vtkUnstructuredGr...
static vtkExtractSelection * New()
vtkSmartPointer< vtkDataObject > ExtractElements(vtkDataObject *block, vtkDataObject::AttributeTypes elementType, vtkSignedCharArray *insidednessArray)
Given a non-composite input data object (either a block of a larger composite or the whole input),...
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.
virtual vtkSmartPointer< vtkSelector > NewSelectionOperator(vtkSelectionNode::SelectionContent type)
Creates a new vtkSelector for the given content type.
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Sets up empty output dataset.
void ExtractSelectedPoints(vtkDataSet *input, vtkUnstructuredGrid *output, vtkSignedCharArray *pointInside)
Given a vtkDataSet and an array of which points to extract, the populates the given vtkUnstructuredGr...
void ExtractSelectedRows(vtkTable *input, vtkTable *output, vtkSignedCharArray *rowsInside)
Given an input vtkTable and an array of which rows to extract, this populates the output table with t...
a simple class to control print indentation
Definition: vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
A node in a selection tree.
SelectionContent
Indicate the means by which data is selected.
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:58
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
dataset represents arbitrary combinations of all possible cell types
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453
@ type
Definition: vtkX3D.h:522