VTK  9.2.6
vtkSelectionSource.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkSelectionSource.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=========================================================================*/
42#ifndef vtkSelectionSource_h
43#define vtkSelectionSource_h
44
45#include "vtkFiltersSourcesModule.h" // For export macro
47#include "vtkSelectionNode.h" // For FieldType
48
49#include <memory> // for std::shared_ptr
50#include <vector> // for std::vector
51
52class VTKFILTERSSOURCES_EXPORT vtkSelectionSource : public vtkSelectionAlgorithm
53{
54public:
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
60
65 void SetNumberOfNodes(unsigned int numberOfNodes);
66 unsigned int GetNumberOfNodes() { return static_cast<unsigned int>(this->NodesInfo.size()); }
68
70
73 void RemoveNode(unsigned int idx);
74 void RemoveNode(const char* name);
76
80 virtual void RemoveAllNodes();
81
83
98
100
114 {
116 ELEMENT_TYPE
117 };
118 vtkSetClampMacro(FieldTypeOption, int, FIELD_TYPE, ELEMENT_TYPE);
119 virtual void SetFieldTypeOptionToFieldType() { this->SetFieldTypeOption(FIELD_TYPE); }
120 virtual void SetFieldTypeOptionToElementType() { this->SetFieldTypeOption(ELEMENT_TYPE); }
121 vtkGetMacro(FieldTypeOption, int);
123
125
132 vtkSetClampMacro(FieldType, int, vtkSelectionNode::CELL, vtkSelectionNode::ROW);
133 vtkGetMacro(FieldType, int);
135
137
145 vtkSetClampMacro(ElementType, int, vtkDataObject::POINT, vtkDataObject::ROW);
146 vtkGetMacro(ElementType, int);
148
150
156 vtkSetClampMacro(ProcessID, int, -1, VTK_INT_MAX);
157 vtkGetMacro(ProcessID, int);
159
160 //------------------------------------------------------------------------------
161 // Functions to manipulate the information of each selection node.
162 //------------------------------------------------------------------------------
163
165
174 void SetNodeName(unsigned int nodeId, const char* name);
175 void SetNodeName(const char* name) { this->SetNodeName(0, name); }
176 const char* GetNodeName(unsigned int nodeId);
177 const char* GetNodeName() { return this->GetNodeName(0); }
179
181
186 void AddID(unsigned int nodeId, vtkIdType piece, vtkIdType id);
187 void AddID(vtkIdType piece, vtkIdType id) { this->AddID(0, piece, id); }
188 void AddStringID(unsigned int nodeId, vtkIdType piece, const char* id);
189 void AddStringID(vtkIdType piece, const char* id) { this->AddStringID(0, piece, id); }
191
193
196 void AddLocation(unsigned int nodeId, double x, double y, double z);
197 void AddLocation(double x, double y, double z) { this->AddLocation(0, x, y, z); }
199
201
204 void AddThreshold(unsigned int nodeId, double min, double max);
205 void AddThreshold(double min, double max) { this->AddThreshold(0, min, max); }
207
209
212 void SetFrustum(unsigned int nodeId, double* vertices);
213 void SetFrustum(double* vertices) { this->SetFrustum(0, vertices); }
215
217
220 void AddBlock(unsigned int nodeId, vtkIdType block);
221 void AddBlock(vtkIdType blockno) { this->AddBlock(0, blockno); }
223
225
229 void AddBlockSelector(unsigned int nodeId, const char* block);
230 void AddBlockSelector(const char* selector) { this->AddBlockSelector(0, selector); }
231 void RemoveAllBlockSelectors(unsigned int nodeId);
234
236
239 void RemoveAllIDs(unsigned int nodeId);
240 void RemoveAllIDs() { this->RemoveAllIDs(0); }
241 void RemoveAllStringIDs(unsigned int nodeId);
244
246
249 void RemoveAllThresholds(unsigned int nodeId);
252
254
257 void RemoveAllLocations(unsigned int nodeId);
260
262
265 void RemoveAllBlocks(unsigned int nodeId);
266 void RemoveAllBlocks() { this->RemoveAllBlocks(0); }
268
270
277 void SetContentType(unsigned int nodeId, int type);
278 void SetContentType(int contentType) { this->SetContentType(0, contentType); }
281 int GetContentType(unsigned int nodeId);
282 int GetContentType() { return this->GetContentType(0); }
284
286
292 void SetContainingCells(unsigned int nodeId, vtkTypeBool containingCells);
293 void SetContainingCells(vtkTypeBool containingCells)
294 {
295 this->SetContainingCells(0, containingCells);
296 }
297 vtkTypeBool GetContainingCells(unsigned int nodeId);
300
302
307 void SetNumberOfLayers(unsigned int nodeId, int numberOfLayers);
308 void SetNumberOfLayers(int numberOfLayers) { this->SetNumberOfLayers(0, numberOfLayers); }
309 int GetNumberOfLayersMinValue() { return 0; }
311 int GetNumberOfLayers(unsigned int nodeId);
312 int GetNumberOfLayers() { return this->GetNumberOfLayers(0); }
314
316
321 void SetInverse(unsigned int nodeId, vtkTypeBool inverse);
322 void SetInverse(vtkTypeBool inverse) { this->SetInverse(0, inverse); }
323 vtkTypeBool GetInverse(unsigned int nodeId);
324 vtkTypeBool GetInverse() { return this->GetInverse(0); }
326
328
332 void SetArrayName(unsigned int nodeId, const char* name);
333 void SetArrayName(const char* name) { this->SetArrayName(0, name); }
334 const char* GetArrayName(unsigned int nodeId);
335 const char* GetArrayName() { return this->GetArrayName(0); }
337
339
344 void SetArrayComponent(unsigned int nodeId, int component);
345 void SetArrayComponent(int component) { this->SetArrayComponent(0, component); }
346 int GetArrayComponent(unsigned int nodeId);
347 int GetArrayComponent() { return this->GetArrayComponent(0); }
349
351
357 void SetCompositeIndex(unsigned int nodeId, int index);
358 void SetCompositeIndex(int compositeIndex) { this->SetCompositeIndex(0, compositeIndex); }
359 int GetCompositeIndex(unsigned int nodeId);
360 int GetCompositeIndex() { return this->GetCompositeIndex(0); }
362
364
371 void SetHierarchicalLevel(unsigned int nodeId, int level);
372 void SetHierarchicalLevel(int level) { this->SetHierarchicalLevel(0, level); }
373 int GetHierarchicalLevel(unsigned int nodeId);
375 void SetHierarchicalIndex(unsigned int nodeId, int index);
376 void SetHierarchicalIndex(int index) { this->SetHierarchicalIndex(0, index); }
377 int GetHierarchicalIndex(unsigned int nodeId);
380
382
387 void SetAssemblyName(unsigned int nodeId, const char* name);
388 void SetAssemblyName(const char* name) { this->SetAssemblyName(0, name); }
389 const char* GetAssemblyName(unsigned int nodeId);
390 const char* GetAssemblyName() { return this->GetAssemblyName(0); }
391 void AddSelector(unsigned int nodeId, const char* selector);
392 void AddSelector(const char* selector) { this->AddSelector(0, selector); }
393 void RemoveAllSelectors(unsigned int nodeId);
396
398
401 void SetQueryString(unsigned int nodeId, const char* queryString);
402 void SetQueryString(const char* query) { this->SetQueryString(0, query); }
403 const char* GetQueryString(unsigned int nodeId);
404 const char* GetQueryString() { return this->GetQueryString(0); }
406
407protected:
410
412 vtkInformationVector* outputVector) override;
414 vtkInformationVector* outputVector) override;
415
416 std::string Expression;
421 struct NodeInformation;
422 std::vector<std::shared_ptr<NodeInformation>> NodesInfo;
423
424private:
425 vtkSelectionSource(const vtkSelectionSource&) = delete;
426 void operator=(const vtkSelectionSource&) = delete;
427};
428
429#endif
a simple class to control print indentation
Definition vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only Selection as output.
@ CELL
The selection data provided is cell-data.
@ ROW
The selection data provided is table row-data.
@ GLOBALIDS
Select entities called out by their globally-unique IDs.
@ USER
Select entities with user-supplied, application-specific logic.
Generate selection from given set of ids.
void AddID(unsigned int nodeId, vtkIdType piece, vtkIdType id)
Add a (piece, id) to the selection set.
void RemoveAllThresholds()
Remove all thresholds added with AddThreshold.
void SetFrustum(unsigned int nodeId, double *vertices)
Set a frustum to choose within.
void SetArrayComponent(unsigned int nodeId, int component)
Set/Get the component number for the array specified by ArrayName.
void SetCompositeIndex(int compositeIndex)
Set/Get the CompositeIndex.
int GetHierarchicalLevel(unsigned int nodeId)
Set/Get the Hierarchical/HierarchicalIndex.
void SetAssemblyName(const char *name)
For selector-based selection qualification.
void SetNumberOfLayers(int numberOfLayers)
Set/Get the number of layers to extract connected to the selected elements.
void SetNodeName(unsigned int nodeId, const char *name)
Set/Get the node name.
vtkTypeBool GetInverse(unsigned int nodeId)
Determines whether the selection describes what to include or exclude.
int GetHierarchicalLevel()
Set/Get the Hierarchical/HierarchicalIndex.
void SetArrayName(unsigned int nodeId, const char *name)
Get/Set the name used for the SelectionList in the generated vtkSelectionNode.
void SetNumberOfNodes(unsigned int numberOfNodes)
Set/Get the number of nodes that will be created for the generated selection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void AddBlock(unsigned int nodeId, vtkIdType block)
Add the flat-index/composite index for a block.
void AddStringID(unsigned int nodeId, vtkIdType piece, const char *id)
Add a (piece, id) to the selection set.
void SetContainingCells(unsigned int nodeId, vtkTypeBool containingCells)
When extracting by points, extract the cells that contain the passing points.
void SetContentType(unsigned int nodeId, int type)
Set/Get the content type.
void SetInverse(unsigned int nodeId, vtkTypeBool inverse)
Determines whether the selection describes what to include or exclude.
void AddBlock(vtkIdType blockno)
Add the flat-index/composite index for a block.
void SetContainingCells(vtkTypeBool containingCells)
When extracting by points, extract the cells that contain the passing points.
const char * GetQueryString(unsigned int nodeId)
Set/Get the query expression string.
void AddBlockSelector(const char *selector)
Add/Remove block-selectors to make selections with vtkSelectionNode::BLOCK_SELECTORS as the content-t...
void AddLocation(unsigned int nodeId, double x, double y, double z)
Add a point in world space to probe at.
void AddStringID(vtkIdType piece, const char *id)
Add a (piece, id) to the selection set.
void RemoveAllSelectors()
For selector-based selection qualification.
void RemoveAllSelectors(unsigned int nodeId)
For selector-based selection qualification.
void SetContentType(int contentType)
Set/Get the content type.
int GetNumberOfLayersMinValue()
Set/Get the number of layers to extract connected to the selected elements.
void SetFrustum(double *vertices)
Set a frustum to choose within.
int GetContentType()
Set/Get the content type.
const char * GetNodeName(unsigned int nodeId)
void RemoveNode(const char *name)
Remove a selection node.
int GetContentTypeMaxValue()
Set/Get the content type.
void SetHierarchicalIndex(int index)
Set/Get the Hierarchical/HierarchicalIndex.
int GetCompositeIndex(unsigned int nodeId)
Set/Get the CompositeIndex.
vtkGetCharFromStdStringMacro(Expression)
Set/Get the expression that defines the boolean expression to combine the selection nodes.
int GetContentTypeMinValue()
Set/Get the content type.
void SetHierarchicalIndex(unsigned int nodeId, int index)
Set/Get the Hierarchical/HierarchicalIndex.
static vtkSelectionSource * New()
void RemoveAllLocations(unsigned int nodeId)
Remove all locations added with AddLocation.
const char * GetArrayName(unsigned int nodeId)
Get/Set the name used for the SelectionList in the generated vtkSelectionNode.
void SetArrayName(const char *name)
Get/Set the name used for the SelectionList in the generated vtkSelectionNode.
unsigned int GetNumberOfNodes()
Set/Get the number of nodes that will be created for the generated selection.
void SetInverse(vtkTypeBool inverse)
Determines whether the selection describes what to include or exclude.
void SetHierarchicalLevel(unsigned int nodeId, int level)
Set/Get the Hierarchical/HierarchicalIndex.
void SetNumberOfLayers(unsigned int nodeId, int numberOfLayers)
Set/Get the number of layers to extract connected to the selected elements.
void AddLocation(double x, double y, double z)
Add a point in world space to probe at.
void RemoveAllBlocks(unsigned int nodeId)
Remove all blocks added with AddBlock.
int GetHierarchicalIndex()
Set/Get the Hierarchical/HierarchicalIndex.
void SetArrayComponent(int component)
Set/Get the component number for the array specified by ArrayName.
int GetNumberOfLayersMaxValue()
Set/Get the number of layers to extract connected to the selected elements.
void RemoveAllStringIDs()
Removes all IDs.
void SetQueryString(const char *query)
Set/Get the query expression string.
const char * GetAssemblyName()
For selector-based selection qualification.
int GetNumberOfLayers()
Set/Get the number of layers to extract connected to the selected elements.
void RemoveAllLocations()
Remove all locations added with AddLocation.
vtkTypeBool GetContainingCells()
When extracting by points, extract the cells that contain the passing points.
virtual void RemoveAllNodes()
Remove all selection nodes.
FieldTypeOptions
Set/Get FieldTypeOption which is used to specify the selection field type for the selection.
void SetNodeName(const char *name)
vtkTypeBool GetContainingCells(unsigned int nodeId)
When extracting by points, extract the cells that contain the passing points.
void AddSelector(unsigned int nodeId, const char *selector)
For selector-based selection qualification.
void RemoveAllIDs()
Removes all IDs.
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
const char * GetNodeName()
~vtkSelectionSource() override
int GetCompositeIndex()
Set/Get the CompositeIndex.
void RemoveAllStringIDs(unsigned int nodeId)
Removes all IDs.
vtkSetStdStringFromCharMacro(Expression)
Set/Get the expression that defines the boolean expression to combine the selection nodes.
void SetCompositeIndex(unsigned int nodeId, int index)
Set/Get the CompositeIndex.
void SetHierarchicalLevel(int level)
Set/Get the Hierarchical/HierarchicalIndex.
void SetQueryString(unsigned int nodeId, const char *queryString)
Set/Get the query expression string.
int GetArrayComponent()
Set/Get the component number for the array specified by ArrayName.
virtual void SetFieldTypeOptionToFieldType()
Set/Get FieldTypeOption which is used to specify the selection field type for the selection.
void AddSelector(const char *selector)
For selector-based selection qualification.
const char * GetQueryString()
Set/Get the query expression string.
int GetNumberOfLayers(unsigned int nodeId)
Set/Get the number of layers to extract connected to the selected elements.
void RemoveAllBlocks()
Remove all blocks added with AddBlock.
void RemoveAllThresholds(unsigned int nodeId)
Remove all thresholds added with AddThreshold.
void AddBlockSelector(unsigned int nodeId, const char *block)
Add/Remove block-selectors to make selections with vtkSelectionNode::BLOCK_SELECTORS as the content-t...
vtkTypeBool GetInverse()
Determines whether the selection describes what to include or exclude.
std::vector< std::shared_ptr< NodeInformation > > NodesInfo
void AddID(vtkIdType piece, vtkIdType id)
Add a (piece, id) to the selection set.
void RemoveAllIDs(unsigned int nodeId)
Removes all IDs.
void AddThreshold(unsigned int nodeId, double min, double max)
Add a value range to threshold within.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
const char * GetAssemblyName(unsigned int nodeId)
For selector-based selection qualification.
void RemoveAllBlockSelectors(unsigned int nodeId)
Add/Remove block-selectors to make selections with vtkSelectionNode::BLOCK_SELECTORS as the content-t...
virtual void SetFieldTypeOptionToElementType()
Set/Get FieldTypeOption which is used to specify the selection field type for the selection.
int GetArrayComponent(unsigned int nodeId)
Set/Get the component number for the array specified by ArrayName.
void RemoveAllBlockSelectors()
Add/Remove block-selectors to make selections with vtkSelectionNode::BLOCK_SELECTORS as the content-t...
void AddThreshold(double min, double max)
Add a value range to threshold within.
void SetAssemblyName(unsigned int nodeId, const char *name)
For selector-based selection qualification.
const char * GetArrayName()
Get/Set the name used for the SelectionList in the generated vtkSelectionNode.
int GetContentType(unsigned int nodeId)
Set/Get the content type.
int GetHierarchicalIndex(unsigned int nodeId)
Set/Get the Hierarchical/HierarchicalIndex.
void RemoveNode(unsigned int idx)
Remove a selection node.
int vtkTypeBool
Definition vtkABI.h:69
std::pair< boost::graph_traits< vtkGraph * >::vertex_iterator, boost::graph_traits< vtkGraph * >::vertex_iterator > vertices(vtkGraph *g)
int vtkIdType
Definition vtkType.h:332
#define VTK_INT_MAX
Definition vtkType.h:155
#define max(a, b)