VTK  9.3.0
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
42 #ifndef vtkSelectionSource_h
43 #define vtkSelectionSource_h
44 
45 #include "vtkFiltersSourcesModule.h" // For export macro
46 #include "vtkSelectionAlgorithm.h"
47 #include "vtkSelectionNode.h" // For FieldType
48 
49 #include <memory> // for std::shared_ptr
50 #include <vector> // for std::vector
51 
52 VTK_ABI_NAMESPACE_BEGIN
53 class VTKFILTERSSOURCES_EXPORT vtkSelectionSource : public vtkSelectionAlgorithm
54 {
55 public:
58  void PrintSelf(ostream& os, vtkIndent indent) override;
59 
61 
66  void SetNumberOfNodes(unsigned int numberOfNodes);
67  unsigned int GetNumberOfNodes() { return static_cast<unsigned int>(this->NodesInfo.size()); }
69 
71 
74  void RemoveNode(unsigned int idx);
75  void RemoveNode(const char* name);
77 
81  virtual void RemoveAllNodes();
82 
84 
99 
101 
115  {
117  ELEMENT_TYPE
118  };
119  vtkSetClampMacro(FieldTypeOption, int, FIELD_TYPE, ELEMENT_TYPE);
120  virtual void SetFieldTypeOptionToFieldType() { this->SetFieldTypeOption(FIELD_TYPE); }
121  virtual void SetFieldTypeOptionToElementType() { this->SetFieldTypeOption(ELEMENT_TYPE); }
122  vtkGetMacro(FieldTypeOption, int);
124 
126 
133  vtkSetClampMacro(FieldType, int, vtkSelectionNode::CELL, vtkSelectionNode::ROW);
134  vtkGetMacro(FieldType, int);
136 
138 
146  vtkSetClampMacro(ElementType, int, vtkDataObject::POINT, vtkDataObject::ROW);
147  vtkGetMacro(ElementType, int);
149 
151 
157  vtkSetClampMacro(ProcessID, int, -1, VTK_INT_MAX);
158  vtkGetMacro(ProcessID, int);
160 
161  //------------------------------------------------------------------------------
162  // Functions to manipulate the information of each selection node.
163  //------------------------------------------------------------------------------
164 
166 
175  void SetNodeName(unsigned int nodeId, const char* name);
176  void SetNodeName(const char* name) { this->SetNodeName(0, name); }
177  const char* GetNodeName(unsigned int nodeId);
178  const char* GetNodeName() { return this->GetNodeName(0); }
180 
182 
187  void AddID(unsigned int nodeId, vtkIdType piece, vtkIdType id);
188  void AddID(vtkIdType piece, vtkIdType id) { this->AddID(0, piece, id); }
189  void AddStringID(unsigned int nodeId, vtkIdType piece, const char* id);
190  void AddStringID(vtkIdType piece, const char* id) { this->AddStringID(0, piece, id); }
192 
194 
197  void AddLocation(unsigned int nodeId, double x, double y, double z);
198  void AddLocation(double x, double y, double z) { this->AddLocation(0, x, y, z); }
200 
202 
205  void AddThreshold(unsigned int nodeId, double min, double max);
206  void AddThreshold(double min, double max) { this->AddThreshold(0, min, max); }
208 
210 
213  void SetFrustum(unsigned int nodeId, double* vertices);
214  void SetFrustum(double* vertices) { this->SetFrustum(0, vertices); }
216 
218 
221  void AddBlock(unsigned int nodeId, vtkIdType block);
222  void AddBlock(vtkIdType blockno) { this->AddBlock(0, blockno); }
224 
226 
230  void AddBlockSelector(unsigned int nodeId, const char* block);
231  void AddBlockSelector(const char* selector) { this->AddBlockSelector(0, selector); }
232  void RemoveAllBlockSelectors(unsigned int nodeId);
235 
237 
240  void RemoveAllIDs(unsigned int nodeId);
241  void RemoveAllIDs() { this->RemoveAllIDs(0); }
242  void RemoveAllStringIDs(unsigned int nodeId);
245 
247 
250  void RemoveAllThresholds(unsigned int nodeId);
253 
255 
258  void RemoveAllLocations(unsigned int nodeId);
261 
263 
266  void RemoveAllBlocks(unsigned int nodeId);
267  void RemoveAllBlocks() { this->RemoveAllBlocks(0); }
269 
271 
278  void SetContentType(unsigned int nodeId, int type);
279  void SetContentType(int contentType) { this->SetContentType(0, contentType); }
280  int GetContentTypeMinValue() { return vtkSelectionNode::SelectionContent::GLOBALIDS; }
281  int GetContentTypeMaxValue() { return vtkSelectionNode::SelectionContent::USER; }
282  int GetContentType(unsigned int nodeId);
283  int GetContentType() { return this->GetContentType(0); }
285 
287 
293  void SetContainingCells(unsigned int nodeId, vtkTypeBool containingCells);
294  void SetContainingCells(vtkTypeBool containingCells)
295  {
296  this->SetContainingCells(0, containingCells);
297  }
298  vtkTypeBool GetContainingCells(unsigned int nodeId);
301 
303 
308  void SetNumberOfLayers(unsigned int nodeId, int numberOfLayers);
309  void SetNumberOfLayers(int numberOfLayers) { this->SetNumberOfLayers(0, numberOfLayers); }
310  int GetNumberOfLayersMinValue() { return 0; }
312  int GetNumberOfLayers(unsigned int nodeId);
313  int GetNumberOfLayers() { return this->GetNumberOfLayers(0); }
315 
317 
322  void SetRemoveSeed(unsigned int nodeId, bool RemoveSeed);
323  void SetRemoveSeed(bool RemoveSeed) { this->SetRemoveSeed(0, RemoveSeed); }
324  bool GetRemoveSeed(unsigned int nodeId);
325  bool GetRemoveSeed() { return this->GetRemoveSeed(0); }
327 
329 
334  void SetRemoveIntermediateLayers(unsigned int nodeId, bool RemoveIntermediateLayers);
335  void SetRemoveIntermediateLayers(bool RemoveIntermediateLayers)
336  {
337  this->SetRemoveIntermediateLayers(0, RemoveIntermediateLayers);
338  }
339  bool GetRemoveIntermediateLayers(unsigned int nodeId);
342 
344 
349  void SetInverse(unsigned int nodeId, vtkTypeBool inverse);
350  void SetInverse(vtkTypeBool inverse) { this->SetInverse(0, inverse); }
351  vtkTypeBool GetInverse(unsigned int nodeId);
352  vtkTypeBool GetInverse() { return this->GetInverse(0); }
354 
356 
360  void SetArrayName(unsigned int nodeId, const char* name);
361  void SetArrayName(const char* name) { this->SetArrayName(0, name); }
362  const char* GetArrayName(unsigned int nodeId);
363  const char* GetArrayName() { return this->GetArrayName(0); }
365 
367 
372  void SetArrayComponent(unsigned int nodeId, int component);
373  void SetArrayComponent(int component) { this->SetArrayComponent(0, component); }
374  int GetArrayComponent(unsigned int nodeId);
375  int GetArrayComponent() { return this->GetArrayComponent(0); }
377 
379 
385  void SetCompositeIndex(unsigned int nodeId, int index);
386  void SetCompositeIndex(int compositeIndex) { this->SetCompositeIndex(0, compositeIndex); }
387  int GetCompositeIndex(unsigned int nodeId);
388  int GetCompositeIndex() { return this->GetCompositeIndex(0); }
390 
392 
399  void SetHierarchicalLevel(unsigned int nodeId, int level);
400  void SetHierarchicalLevel(int level) { this->SetHierarchicalLevel(0, level); }
401  int GetHierarchicalLevel(unsigned int nodeId);
402  int GetHierarchicalLevel() { return this->GetHierarchicalLevel(0); }
403  void SetHierarchicalIndex(unsigned int nodeId, int index);
404  void SetHierarchicalIndex(int index) { this->SetHierarchicalIndex(0, index); }
405  int GetHierarchicalIndex(unsigned int nodeId);
406  int GetHierarchicalIndex() { return this->GetHierarchicalIndex(0); }
408 
410 
415  void SetAssemblyName(unsigned int nodeId, const char* name);
416  void SetAssemblyName(const char* name) { this->SetAssemblyName(0, name); }
417  const char* GetAssemblyName(unsigned int nodeId);
418  const char* GetAssemblyName() { return this->GetAssemblyName(0); }
419  void AddSelector(unsigned int nodeId, const char* selector);
420  void AddSelector(const char* selector) { this->AddSelector(0, selector); }
421  void RemoveAllSelectors(unsigned int nodeId);
424 
426 
429  void SetQueryString(unsigned int nodeId, const char* queryString);
430  void SetQueryString(const char* query) { this->SetQueryString(0, query); }
431  const char* GetQueryString(unsigned int nodeId);
432  const char* GetQueryString() { return this->GetQueryString(0); }
434 
435 protected:
438 
440  vtkInformationVector* outputVector) override;
441  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
442  vtkInformationVector* outputVector) override;
443 
449  struct NodeInformation;
450  std::vector<std::shared_ptr<NodeInformation>> NodesInfo;
451 
452 private:
453  vtkSelectionSource(const vtkSelectionSource&) = delete;
454  void operator=(const vtkSelectionSource&) = delete;
455 };
456 
457 VTK_ABI_NAMESPACE_END
458 #endif
a simple class to control print indentation
Definition: vtkIndent.h:38
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.
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.
const char * GetQueryString()
Set/Get the query expression string.
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.
const char * GetArrayName(unsigned int nodeId)
Get/Set the name used for the SelectionList in the generated vtkSelectionNode.
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.
const char * GetQueryString(unsigned int nodeId)
Set/Get the query expression string.
void SetContainingCells(vtkTypeBool containingCells)
When extracting by points, extract the cells that contain the passing points.
static vtkSelectionSource * New()
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.
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.
void RemoveAllLocations(unsigned int nodeId)
Remove all locations added with AddLocation.
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.
const char * GetNodeName(unsigned int nodeId)
Set/Get the node name.
const char * GetAssemblyName()
For selector-based selection qualification.
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.
const char * GetNodeName()
Set/Get the node name.
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.
const char * GetAssemblyName(unsigned int nodeId)
For selector-based selection qualification.
void SetQueryString(const char *query)
Set/Get the query expression string.
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
~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.
const char * GetArrayName()
Get/Set the name used for the SelectionList in the generated vtkSelectionNode.
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.
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.
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.
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.
@ component
Definition: vtkX3D.h:175
@ level
Definition: vtkX3D.h:395
@ type
Definition: vtkX3D.h:516
@ name
Definition: vtkX3D.h:219
@ index
Definition: vtkX3D.h:246
@ string
Definition: vtkX3D.h:490
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)