VTK
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 =========================================================================*/
38 #ifndef vtkExtractSelection_h
39 #define vtkExtractSelection_h
40 
41 #include "vtkFiltersExtractionModule.h" // For export macro
42 #include "vtkDataObjectAlgorithm.h"
43 
44 #include "vtkSelectionNode.h" // for vtkSelectionNode::SelectionContent
45 #include "vtkSmartPointer.h" // for smart pointer
46 
47 class vtkSignedCharArray;
48 class vtkSelection;
49 class vtkSelectionNode;
50 class vtkSelector;
52 class vtkTable;
53 
54 class VTKFILTERSEXTRACTION_EXPORT vtkExtractSelection : public vtkDataObjectAlgorithm
55 {
56 public:
57  static vtkExtractSelection *New();
59  void PrintSelf(ostream& os, vtkIndent indent) override;
60 
66  {
67  this->SetInputConnection(1, algOutput);
68  }
69 
71 
76  vtkSetMacro(PreserveTopology, bool);
77  vtkGetMacro(PreserveTopology, bool);
78  vtkBooleanMacro(PreserveTopology, bool);
80 
81 
83 
88  VTK_LEGACY(void SetShowBounds(bool));
89  VTK_LEGACY(bool GetShowBounds());
90  VTK_LEGACY(void ShowBoundsOn());
91  VTK_LEGACY(void ShowBoundsOff());
93 
95 
100  VTK_LEGACY(void SetUseProbeForLocations(bool));
101  VTK_LEGACY(bool GetUseProbeForLocations());
102  VTK_LEGACY(void UseProbeForLocationsOn());
103  VTK_LEGACY(void UseProbeForLocationsOff());
105 
106 protected:
108  ~vtkExtractSelection() override;
109 
113  int RequestDataObject(vtkInformation* request,
114  vtkInformationVector** inputVector,
115  vtkInformationVector* outputVector) override;
119  int RequestData(vtkInformation* request,
120  vtkInformationVector** inputVector,
121  vtkInformationVector* outputVector) override;
122 
123  // Gets the attribute association of the selection. Currently we support ROW, POINT, and CELL.
124  // If the selection types are mismatched the boolean parameter will be set to false, otherwise
125  // it will be true after the function returns.
126  vtkDataObject::AttributeTypes GetAttributeTypeOfSelection(vtkSelection* sel, bool& sane);
127 
132  virtual vtkSmartPointer<vtkSelector> NewSelectionOperator(
134 
142  vtkSmartPointer<vtkDataObject> ExtractElements(vtkDataObject* block,
143  vtkDataObject::AttributeTypes elementType, vtkSignedCharArray* insidednessArray);
144 
145  int FillInputPortInformation(int port, vtkInformation* info) override;
146 
151  void ExtractSelectedCells(vtkDataSet* input,
152  vtkUnstructuredGrid* output,
153  vtkSignedCharArray* cellInside);
159  void ExtractSelectedPoints(vtkDataSet* input,
160  vtkUnstructuredGrid* output,
161  vtkSignedCharArray* pointInside);
166  void ExtractSelectedRows(vtkTable* input,
167  vtkTable* output,
168  vtkSignedCharArray* rowsInside);
169 
171 
172 private:
173  vtkExtractSelection(const vtkExtractSelection&) = delete;
174  void operator=(const vtkExtractSelection&) = delete;
175 
176 };
177 
178 #endif
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
A node in a selection tree.
Store vtkAlgorithm input/output information.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
static vtkDataObjectAlgorithm * New()
data object that represents a "selection" in VTK.
Definition: vtkSelection.h:63
Hold a reference to a vtkObjectBase instance.
void SetSelectionConnection(vtkAlgorithmOutput *algOutput)
Convenience method to specify the selection connection (2nd input port)
Proxy object to connect input/output ports.
SelectionContent
Indicate the means by which data is selected.
a simple class to control print indentation
Definition: vtkIndent.h:39
dataset represents arbitrary combinations of all possible cell types
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
dynamic, self-adjusting array of signed char
extract a subset from a vtkDataSet.
Superclass for algorithms that produce only data object as output.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Store zero or more vtkInformation instances.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
general representation of visualization data
Definition: vtkDataObject.h:64
AttributeTypes
Possible attribute types.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.