VTK  9.3.20240424
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
25VTK_ABI_NAMESPACE_BEGIN
26class vtkTree;
27
28class VTKCOMMONDATAMODEL_EXPORT vtkTreeIterator : public vtkObject
29{
30public:
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
49 vtkGetMacro(StartVertex, vtkIdType);
51
56
60 bool HasNext();
61
65 void Restart();
66
67protected:
69 ~vtkTreeIterator() override;
70
71 virtual void Initialize() = 0;
72 virtual vtkIdType NextInternal() = 0;
73
77
78private:
79 vtkTreeIterator(const vtkTreeIterator&) = delete;
80 void operator=(const vtkTreeIterator&) = delete;
81};
82
83VTK_ABI_NAMESPACE_END
84#endif
a simple class to control print indentation
Definition vtkIndent.h:108
abstract base class for most VTK objects
Definition vtkObject.h:162
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:145
int vtkIdType
Definition vtkType.h:315