VTK  9.3.1
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 
55  vtkIdType Next();
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
Abstract class for iterator over a vtkTree.
abstract base class for most VTK objects
Definition: vtkObject.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkIdType StartVertex
int vtkIdType
Definition: vtkType.h:315
a simple class to control print indentation
Definition: vtkIndent.h:28
A rooted tree data structure.
Definition: vtkTree.h:45