VTK  9.6.1
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
32
33#ifndef vtkSelectionSource_h
34#define vtkSelectionSource_h
35
36#include "vtkFiltersSourcesModule.h" // For export macro
38#include "vtkSelectionNode.h" // For FieldType
39#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
40
41#include <memory> // for std::shared_ptr
42#include <vector> // for std::vector
43
44VTK_ABI_NAMESPACE_BEGIN
45class VTKFILTERSSOURCES_EXPORT VTK_MARSHALAUTO vtkSelectionSource : public vtkSelectionAlgorithm
46{
47public:
50 void PrintSelf(ostream& os, vtkIndent indent) override;
51
53
58 void SetNumberOfNodes(unsigned int numberOfNodes);
59 unsigned int GetNumberOfNodes() { return static_cast<unsigned int>(this->NodesInfo.size()); }
61
63
66 void RemoveNode(unsigned int idx);
67 void RemoveNode(const char* name);
69
73 virtual void RemoveAllNodes();
74
76
88 vtkSetStdStringFromCharMacro(Expression);
89 vtkGetCharFromStdStringMacro(Expression);
91
93
106 enum FieldTypeOptions
107 {
110 };
111 vtkSetClampMacro(FieldTypeOption, int, FIELD_TYPE, ELEMENT_TYPE);
114 vtkGetMacro(FieldTypeOption, int);
116
118
125 vtkSetClampMacro(FieldType, int, vtkSelectionNode::CELL, vtkSelectionNode::ROW);
126 vtkGetMacro(FieldType, int);
128
130
138 vtkSetClampMacro(ElementType, int, vtkDataObject::POINT, vtkDataObject::ROW);
139 vtkGetMacro(ElementType, int);
141
143
149 vtkSetClampMacro(ProcessID, int, -1, VTK_INT_MAX);
150 vtkGetMacro(ProcessID, int);
152
153 //------------------------------------------------------------------------------
154 // Functions to manipulate the information of each selection node.
155 //------------------------------------------------------------------------------
156
158
167 void SetNodeName(unsigned int nodeId, const char* name);
168 void SetNodeName(const char* name) { this->SetNodeName(0, name); }
169 const char* GetNodeName(unsigned int nodeId);
170 const char* GetNodeName() { return this->GetNodeName(0); }
172
174
179 void AddID(unsigned int nodeId, vtkIdType piece, vtkIdType id);
180 void AddID(vtkIdType piece, vtkIdType id) { this->AddID(0, piece, id); }
181 void AddStringID(unsigned int nodeId, vtkIdType piece, const char* id);
182 void AddStringID(vtkIdType piece, const char* id) { this->AddStringID(0, piece, id); }
184
186
189 void AddLocation(unsigned int nodeId, double x, double y, double z);
190 void AddLocation(double x, double y, double z) { this->AddLocation(0, x, y, z); }
192
194
197 void AddThreshold(unsigned int nodeId, double min, double max);
198 void AddThreshold(double min, double max) { this->AddThreshold(0, min, max); }
200
202
205 void SetFrustum(unsigned int nodeId, double* vertices);
206 void SetFrustum(double* vertices) { this->SetFrustum(0, vertices); }
208
210
213 void AddBlock(unsigned int nodeId, vtkIdType block);
214 void AddBlock(vtkIdType blockno) { this->AddBlock(0, blockno); }
216
218
222 void AddBlockSelector(unsigned int nodeId, const char* block);
223 void AddBlockSelector(const char* selector) { this->AddBlockSelector(0, selector); }
224 void RemoveAllBlockSelectors(unsigned int nodeId);
227
229
232 void RemoveAllIDs(unsigned int nodeId);
233 void RemoveAllIDs() { this->RemoveAllIDs(0); }
234 void RemoveAllStringIDs(unsigned int nodeId);
237
239
242 void RemoveAllThresholds(unsigned int nodeId);
245
247
250 void RemoveAllLocations(unsigned int nodeId);
253
255
258 void RemoveAllBlocks(unsigned int nodeId);
259 void RemoveAllBlocks() { this->RemoveAllBlocks(0); }
261
263
270 void SetContentType(unsigned int nodeId, int type);
271 void SetContentType(int contentType) { this->SetContentType(0, contentType); }
272 int GetContentTypeMinValue() { return vtkSelectionNode::SelectionContent::GLOBALIDS; }
273 int GetContentTypeMaxValue() { return vtkSelectionNode::SelectionContent::USER; }
274 int GetContentType(unsigned int nodeId);
275 int GetContentType() { return this->GetContentType(0); }
277
279
285 void SetContainingCells(unsigned int nodeId, vtkTypeBool containingCells);
286 void SetContainingCells(vtkTypeBool containingCells)
287 {
288 this->SetContainingCells(0, containingCells);
289 }
290 vtkTypeBool GetContainingCells(unsigned int nodeId);
293
295
300 void SetNumberOfLayers(unsigned int nodeId, int numberOfLayers);
301 void SetNumberOfLayers(int numberOfLayers) { this->SetNumberOfLayers(0, numberOfLayers); }
302 int GetNumberOfLayersMinValue() { return 0; }
304 int GetNumberOfLayers(unsigned int nodeId);
305 int GetNumberOfLayers() { return this->GetNumberOfLayers(0); }
307
309
314 void SetRemoveSeed(unsigned int nodeId, bool RemoveSeed);
315 void SetRemoveSeed(bool RemoveSeed) { this->SetRemoveSeed(0, RemoveSeed); }
316 bool GetRemoveSeed(unsigned int nodeId);
317 bool GetRemoveSeed() { return this->GetRemoveSeed(0); }
319
321
326 void SetRemoveIntermediateLayers(unsigned int nodeId, bool RemoveIntermediateLayers);
327 void SetRemoveIntermediateLayers(bool RemoveIntermediateLayers)
328 {
329 this->SetRemoveIntermediateLayers(0, RemoveIntermediateLayers);
330 }
331 bool GetRemoveIntermediateLayers(unsigned int nodeId);
334
336
341 void SetInverse(unsigned int nodeId, vtkTypeBool inverse);
342 void SetInverse(vtkTypeBool inverse) { this->SetInverse(0, inverse); }
343 vtkTypeBool GetInverse(unsigned int nodeId);
344 vtkTypeBool GetInverse() { return this->GetInverse(0); }
346
348
352 void SetArrayName(unsigned int nodeId, const char* name);
353 void SetArrayName(const char* name) { this->SetArrayName(0, name); }
354 const char* GetArrayName(unsigned int nodeId);
355 const char* GetArrayName() { return this->GetArrayName(0); }
357
359
364 void SetArrayComponent(unsigned int nodeId, int component);
365 void SetArrayComponent(int component) { this->SetArrayComponent(0, component); }
366 int GetArrayComponent(unsigned int nodeId);
367 int GetArrayComponent() { return this->GetArrayComponent(0); }
369
371
377 void SetCompositeIndex(unsigned int nodeId, int index);
378 void SetCompositeIndex(int compositeIndex) { this->SetCompositeIndex(0, compositeIndex); }
379 int GetCompositeIndex(unsigned int nodeId);
380 int GetCompositeIndex() { return this->GetCompositeIndex(0); }
382
384
391 void SetHierarchicalLevel(unsigned int nodeId, int level);
392 void SetHierarchicalLevel(int level) { this->SetHierarchicalLevel(0, level); }
393 int GetHierarchicalLevel(unsigned int nodeId);
395 void SetHierarchicalIndex(unsigned int nodeId, int index);
396 void SetHierarchicalIndex(int index) { this->SetHierarchicalIndex(0, index); }
397 int GetHierarchicalIndex(unsigned int nodeId);
400
402
407 void SetAssemblyName(unsigned int nodeId, const char* name);
408 void SetAssemblyName(const char* name) { this->SetAssemblyName(0, name); }
409 const char* GetAssemblyName(unsigned int nodeId);
410 const char* GetAssemblyName() { return this->GetAssemblyName(0); }
411 void AddSelector(unsigned int nodeId, const char* selector);
412 void AddSelector(const char* selector) { this->AddSelector(0, selector); }
413 void RemoveAllSelectors(unsigned int nodeId);
416
418
421 void SetQueryString(unsigned int nodeId, const char* queryString);
422 void SetQueryString(const char* query) { this->SetQueryString(0, query); }
423 const char* GetQueryString(unsigned int nodeId);
424 const char* GetQueryString() { return this->GetQueryString(0); }
426
427protected:
430
432 vtkInformationVector* outputVector) override;
434 vtkInformationVector* outputVector) override;
435
436 std::string Expression;
441 struct NodeInformation;
442 std::vector<std::shared_ptr<NodeInformation>> NodesInfo;
443
444private:
445 vtkSelectionSource(const vtkSelectionSource&) = delete;
446 void operator=(const vtkSelectionSource&) = delete;
447};
448
449VTK_ABI_NAMESPACE_END
450#endif
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Generate selection from given set of ids.
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 RemoveNode(const char *name)
Remove a selection node.
static vtkSelectionSource * New()
unsigned int GetNumberOfNodes()
Set/Get the number of nodes that will be created for the generated selection.
virtual void RemoveAllNodes()
Remove all selection nodes.
void RemoveNode(unsigned int idx)
Remove a selection node.
vtkSelectionSource FIELD_TYPE
Set/Get FieldTypeOption which is used to specify the selection field type for the selection.
int vtkTypeBool
Definition vtkABI.h:64
virtual bool GetInverse()
vtkAppendSelection vtkSelectionAlgorithm SetInverse(bool)
Determines whether the selection describes what to include or exclude.
std::pair< boost::graph_traits< vtkGraph * >::vertex_iterator, boost::graph_traits< vtkGraph * >::vertex_iterator > vertices(vtkGraph *g)
virtual int GetContentType()
Get or set the content type of the selection.
virtual char * GetQueryString()
Set/Get the query expression string.
virtual void SetContentType(int type)
Get or set the content type of the selection.
virtual void SetQueryString(const char *)
Set/Get the query expression string.
vtkTypeBool GetContainingCells()
int GetCompositeIndex()
int FieldTypeOption
bool GetRemoveIntermediateLayers()
**void AddID(vtkIdType piece, vtkIdType id)
**void SetAssemblyName(const char *name)
vtkSelectionSource()
int FieldType
**void SetRemoveIntermediateLayers(bool RemoveIntermediateLayers)
**void SetArrayName(const char *name)
void AddStringID(unsigned int nodeId, vtkIdType piece, const char *id)
**void AddBlockSelector(const char *selector)
**void RemoveAllBlocks()
**void SetArrayComponent(int component)
bool GetRemoveSeed()
std::string Expression
void RemoveAllBlockSelectors()
**void SetNumberOfLayers(int numberOfLayers)
int ProcessID
int GetHierarchicalIndex()
std::vector< std::shared_ptr< NodeInformation > > NodesInfo
void AddSelector(unsigned int nodeId, const char *selector)
const char * GetAssemblyName()
int GetContentTypeMaxValue()
virtual void SetFieldTypeOption(int)
int GetContentTypeMinValue()
void RemoveAllStringIDs()
virtual void SetFieldTypeOptionToElementType()
int GetArrayComponent()
**void SetFrustum(double *vertices)
int GetNumberOfLayersMinValue()
const char * GetArrayName()
**void RemoveAllThresholds()
int GetNumberOfLayersMaxValue()
**void SetContainingCells(vtkTypeBool containingCells)
**void SetNodeName(const char *name)
**void AddLocation(double x, double y, double z)
int GetHierarchicalLevel()
**void RemoveAllIDs()
void RemoveAllSelectors()
int GetNumberOfLayers()
virtual void SetFieldTypeOptionToFieldType()
**void SetHierarchicalLevel(int level)
**void AddThreshold(double min, double max)
**void AddBlock(vtkIdType blockno)
**void SetCompositeIndex(int compositeIndex)
~vtkSelectionSource() override
**void SetRemoveSeed(bool RemoveSeed)
const char * GetNodeName()
void SetHierarchicalIndex(unsigned int nodeId, int index)
int ElementType
**void RemoveAllLocations()
vtkSelectionSource ELEMENT_TYPE
int vtkIdType
Definition vtkType.h:368
#define VTK_INT_MAX
Definition vtkType.h:197
#define VTK_MARSHALAUTO
#define max(a, b)