VTK  9.4.20241114
vtkSelectionSource.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
52#ifndef vtkSelectionSource_h
53#define vtkSelectionSource_h
54
55#include "vtkFiltersSourcesModule.h" // For export macro
57#include "vtkSelectionNode.h" // For FieldType
58
59#include <memory> // for std::shared_ptr
60#include <vector> // for std::vector
61
62VTK_ABI_NAMESPACE_BEGIN
63class VTKFILTERSSOURCES_EXPORT vtkSelectionSource : public vtkSelectionAlgorithm
64{
65public:
68 void PrintSelf(ostream& os, vtkIndent indent) override;
69
71
76 void SetNumberOfNodes(unsigned int numberOfNodes);
77 unsigned int GetNumberOfNodes() { return static_cast<unsigned int>(this->NodesInfo.size()); }
79
81
84 void RemoveNode(unsigned int idx);
85 void RemoveNode(const char* name);
87
91 virtual void RemoveAllNodes();
92
94
109
111
125 {
127 ELEMENT_TYPE
128 };
129 vtkSetClampMacro(FieldTypeOption, int, FIELD_TYPE, ELEMENT_TYPE);
130 virtual void SetFieldTypeOptionToFieldType() { this->SetFieldTypeOption(FIELD_TYPE); }
131 virtual void SetFieldTypeOptionToElementType() { this->SetFieldTypeOption(ELEMENT_TYPE); }
132 vtkGetMacro(FieldTypeOption, int);
134
136
143 vtkSetClampMacro(FieldType, int, vtkSelectionNode::CELL, vtkSelectionNode::ROW);
144 vtkGetMacro(FieldType, int);
146
148
156 vtkSetClampMacro(ElementType, int, vtkDataObject::POINT, vtkDataObject::ROW);
157 vtkGetMacro(ElementType, int);
159
161
167 vtkSetClampMacro(ProcessID, int, -1, VTK_INT_MAX);
168 vtkGetMacro(ProcessID, int);
170
171 //------------------------------------------------------------------------------
172 // Functions to manipulate the information of each selection node.
173 //------------------------------------------------------------------------------
174
176
185 void SetNodeName(unsigned int nodeId, const char* name);
186 void SetNodeName(const char* name) { this->SetNodeName(0, name); }
187 const char* GetNodeName(unsigned int nodeId);
188 const char* GetNodeName() { return this->GetNodeName(0); }
190
192
197 void AddID(unsigned int nodeId, vtkIdType piece, vtkIdType id);
198 void AddID(vtkIdType piece, vtkIdType id) { this->AddID(0, piece, id); }
199 void AddStringID(unsigned int nodeId, vtkIdType piece, const char* id);
200 void AddStringID(vtkIdType piece, const char* id) { this->AddStringID(0, piece, id); }
202
204
207 void AddLocation(unsigned int nodeId, double x, double y, double z);
208 void AddLocation(double x, double y, double z) { this->AddLocation(0, x, y, z); }
210
212
215 void AddThreshold(unsigned int nodeId, double min, double max);
216 void AddThreshold(double min, double max) { this->AddThreshold(0, min, max); }
218
220
223 void SetFrustum(unsigned int nodeId, double* vertices);
224 void SetFrustum(double* vertices) { this->SetFrustum(0, vertices); }
226
228
231 void AddBlock(unsigned int nodeId, vtkIdType block);
232 void AddBlock(vtkIdType blockno) { this->AddBlock(0, blockno); }
234
236
240 void AddBlockSelector(unsigned int nodeId, const char* block);
241 void AddBlockSelector(const char* selector) { this->AddBlockSelector(0, selector); }
242 void RemoveAllBlockSelectors(unsigned int nodeId);
245
247
250 void RemoveAllIDs(unsigned int nodeId);
251 void RemoveAllIDs() { this->RemoveAllIDs(0); }
252 void RemoveAllStringIDs(unsigned int nodeId);
255
257
260 void RemoveAllThresholds(unsigned int nodeId);
263
265
268 void RemoveAllLocations(unsigned int nodeId);
271
273
276 void RemoveAllBlocks(unsigned int nodeId);
277 void RemoveAllBlocks() { this->RemoveAllBlocks(0); }
279
281
288 void SetContentType(unsigned int nodeId, int type);
289 void SetContentType(int contentType) { this->SetContentType(0, contentType); }
292 int GetContentType(unsigned int nodeId);
293 int GetContentType() { return this->GetContentType(0); }
295
297
303 void SetContainingCells(unsigned int nodeId, vtkTypeBool containingCells);
304 void SetContainingCells(vtkTypeBool containingCells)
305 {
306 this->SetContainingCells(0, containingCells);
307 }
308 vtkTypeBool GetContainingCells(unsigned int nodeId);
311
313
318 void SetNumberOfLayers(unsigned int nodeId, int numberOfLayers);
319 void SetNumberOfLayers(int numberOfLayers) { this->SetNumberOfLayers(0, numberOfLayers); }
320 int GetNumberOfLayersMinValue() { return 0; }
322 int GetNumberOfLayers(unsigned int nodeId);
323 int GetNumberOfLayers() { return this->GetNumberOfLayers(0); }
325
327
332 void SetRemoveSeed(unsigned int nodeId, bool RemoveSeed);
333 void SetRemoveSeed(bool RemoveSeed) { this->SetRemoveSeed(0, RemoveSeed); }
334 bool GetRemoveSeed(unsigned int nodeId);
335 bool GetRemoveSeed() { return this->GetRemoveSeed(0); }
337
339
344 void SetRemoveIntermediateLayers(unsigned int nodeId, bool RemoveIntermediateLayers);
345 void SetRemoveIntermediateLayers(bool RemoveIntermediateLayers)
346 {
347 this->SetRemoveIntermediateLayers(0, RemoveIntermediateLayers);
348 }
349 bool GetRemoveIntermediateLayers(unsigned int nodeId);
352
354
359 void SetInverse(unsigned int nodeId, vtkTypeBool inverse);
360 void SetInverse(vtkTypeBool inverse) { this->SetInverse(0, inverse); }
361 vtkTypeBool GetInverse(unsigned int nodeId);
362 vtkTypeBool GetInverse() { return this->GetInverse(0); }
364
366
370 void SetArrayName(unsigned int nodeId, const char* name);
371 void SetArrayName(const char* name) { this->SetArrayName(0, name); }
372 const char* GetArrayName(unsigned int nodeId);
373 const char* GetArrayName() { return this->GetArrayName(0); }
375
377
382 void SetArrayComponent(unsigned int nodeId, int component);
383 void SetArrayComponent(int component) { this->SetArrayComponent(0, component); }
384 int GetArrayComponent(unsigned int nodeId);
385 int GetArrayComponent() { return this->GetArrayComponent(0); }
387
389
395 void SetCompositeIndex(unsigned int nodeId, int index);
396 void SetCompositeIndex(int compositeIndex) { this->SetCompositeIndex(0, compositeIndex); }
397 int GetCompositeIndex(unsigned int nodeId);
398 int GetCompositeIndex() { return this->GetCompositeIndex(0); }
400
402
409 void SetHierarchicalLevel(unsigned int nodeId, int level);
410 void SetHierarchicalLevel(int level) { this->SetHierarchicalLevel(0, level); }
411 int GetHierarchicalLevel(unsigned int nodeId);
413 void SetHierarchicalIndex(unsigned int nodeId, int index);
414 void SetHierarchicalIndex(int index) { this->SetHierarchicalIndex(0, index); }
415 int GetHierarchicalIndex(unsigned int nodeId);
418
420
425 void SetAssemblyName(unsigned int nodeId, const char* name);
426 void SetAssemblyName(const char* name) { this->SetAssemblyName(0, name); }
427 const char* GetAssemblyName(unsigned int nodeId);
428 const char* GetAssemblyName() { return this->GetAssemblyName(0); }
429 void AddSelector(unsigned int nodeId, const char* selector);
430 void AddSelector(const char* selector) { this->AddSelector(0, selector); }
431 void RemoveAllSelectors(unsigned int nodeId);
434
436
439 void SetQueryString(unsigned int nodeId, const char* queryString);
440 void SetQueryString(const char* query) { this->SetQueryString(0, query); }
441 const char* GetQueryString(unsigned int nodeId);
442 const char* GetQueryString() { return this->GetQueryString(0); }
444
445protected:
448
450 vtkInformationVector* outputVector) override;
452 vtkInformationVector* outputVector) override;
453
454 std::string Expression;
459 struct NodeInformation;
460 std::vector<std::shared_ptr<NodeInformation>> NodesInfo;
461
462private:
463 vtkSelectionSource(const vtkSelectionSource&) = delete;
464 void operator=(const vtkSelectionSource&) = delete;
465};
466
467VTK_ABI_NAMESPACE_END
468#endif
a simple class to control print indentation
Definition vtkIndent.h:108
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 SetRemoveSeed(bool RemoveSeed)
Set/Get the number of layers related flag to remove seed selection.
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 SetRemoveSeed(unsigned int nodeId, bool RemoveSeed)
Set/Get the number of layers related flag to remove seed selection.
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)
Set/Get the node name.
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.
bool GetRemoveSeed()
Set/Get the number of layers related flag to remove seed selection.
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.
bool GetRemoveSeed(unsigned int nodeId)
Set/Get the number of layers related flag to remove seed selection.
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 SetRemoveIntermediateLayers(bool RemoveIntermediateLayers)
Set/Get the number of layers related flag to remove intermediate layers.
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 SetRemoveIntermediateLayers(unsigned int nodeId, bool RemoveIntermediateLayers)
Set/Get the number of layers related flag to remove intermediate layers.
void SetNodeName(const char *name)
Set/Get the node name.
vtkTypeBool GetContainingCells(unsigned int nodeId)
When extracting by points, extract the cells that contain the passing points.
bool GetRemoveIntermediateLayers(unsigned int nodeId)
Set/Get the number of layers related flag to remove intermediate layers.
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()
Set/Get the node name.
~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.
bool GetRemoveIntermediateLayers()
Set/Get the number of layers related flag to remove intermediate layers.
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:64
std::pair< boost::graph_traits< vtkGraph * >::vertex_iterator, boost::graph_traits< vtkGraph * >::vertex_iterator > vertices(vtkGraph *g)
int vtkIdType
Definition vtkType.h:315
#define VTK_INT_MAX
Definition vtkType.h:144
#define max(a, b)