VTK  9.3.0
vtkTreeIterator.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
3 
19 #ifndef vtkTreeIterator_h
20 #define vtkTreeIterator_h
21 
22 #include "vtkCommonDataModelModule.h" // For export macro
23 #include "vtkObject.h"
24 
25 VTK_ABI_NAMESPACE_BEGIN
26 class vtkTree;
27 
28 class VTKCOMMONDATAMODEL_EXPORT vtkTreeIterator : public vtkObject
29 {
30 public:
31  vtkTypeMacro(vtkTreeIterator, vtkObject);
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
35 
38  void SetTree(vtkTree* tree);
39  vtkGetObjectMacro(Tree, vtkTree);
41 
43 
48  void SetStartVertex(vtkIdType vertex);
49  vtkGetMacro(StartVertex, vtkIdType);
51 
56 
60  bool HasNext();
61 
65  void Restart();
66 
67 protected:
69  ~vtkTreeIterator() override;
70 
71  virtual void Initialize() = 0;
72  virtual vtkIdType NextInternal() = 0;
73 
77 
78 private:
79  vtkTreeIterator(const vtkTreeIterator&) = delete;
80  void operator=(const vtkTreeIterator&) = delete;
81 };
82 
83 VTK_ABI_NAMESPACE_END
84 #endif
a simple class to control print indentation
Definition: vtkIndent.h:29
abstract base class for most VTK objects
Definition: vtkObject.h:52
Abstract class for iterator over a vtkTree.
void SetTree(vtkTree *tree)
Set/get the graph to iterate over.
vtkIdType Next()
The next vertex visited in the graph.
~vtkTreeIterator() override
vtkIdType StartVertex
bool HasNext()
Return true when all vertices have been visited.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetStartVertex(vtkIdType vertex)
The start vertex of the traversal.
virtual vtkIdType NextInternal()=0
void Restart()
Reset the iterator to its start vertex.
virtual void Initialize()=0
A rooted tree data structure.
Definition: vtkTree.h:46
int vtkIdType
Definition: vtkType.h:315