VTK
vtkDataObjectTreeIterator.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkDataObjectTreeIterator.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
29#ifndef vtkDataObjectTreeIterator_h
30#define vtkDataObjectTreeIterator_h
31
32#include "vtkCommonDataModelModule.h" // For export macro
34#include "vtkSmartPointer.h" //to store data sets
35
39class vtkDataObject;
40class vtkInformation;
41
42class VTKCOMMONDATAMODEL_EXPORT vtkDataObjectTreeIterator : public vtkCompositeDataIterator
43{
44public:
47 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
48
52 void GoToFirstItem() VTK_OVERRIDE;
53
57 void GoToNextItem() VTK_OVERRIDE;
58
65 int IsDoneWithTraversal() VTK_OVERRIDE;
66
70 vtkDataObject* GetCurrentDataObject() VTK_OVERRIDE;
71
78 vtkInformation* GetCurrentMetaData() VTK_OVERRIDE;
79
84 int HasCurrentMetaData() VTK_OVERRIDE;
85
91 unsigned int GetCurrentFlatIndex() VTK_OVERRIDE;
92
94
104 vtkSetMacro(VisitOnlyLeaves, int);
105 vtkGetMacro(VisitOnlyLeaves, int);
106 vtkBooleanMacro(VisitOnlyLeaves, int);
108
110
115 vtkSetMacro(TraverseSubTree, int);
116 vtkGetMacro(TraverseSubTree, int);
117 vtkBooleanMacro(TraverseSubTree, int);
119
120protected:
123
124 // Takes the current location to the next dataset. This traverses the tree in
125 // preorder fashion.
126 // If the current location is a composite dataset, next is its 1st child dataset.
127 // If the current is not a composite dataset, then next is the next dataset.
128 // This method gives no guarantees whether the current dataset will be
129 // non-null or leaf.
130 void NextInternal();
131
135 vtkDataObjectTreeIndex GetCurrentIndex();
136
137 // Needs access to GetCurrentIndex().
138 friend class vtkDataObjectTree;
139 friend class vtkMultiDataSetInternal;
140
141 unsigned int CurrentFlatIndex;
142
143private:
144 vtkDataObjectTreeIterator(const vtkDataObjectTreeIterator&) VTK_DELETE_FUNCTION;
145 void operator=(const vtkDataObjectTreeIterator&) VTK_DELETE_FUNCTION;
146
147 class vtkInternals;
148 vtkInternals* Internals;
149 friend class vtkInternals;
150
151 int TraverseSubTree;
152 int VisitOnlyLeaves;
153
159
160 // Cannot be called when this->IsDoneWithTraversal() return 1.
161 void UpdateLocation();
162
163};
164
165#endif
superclass for composite data iterators
superclass for composite data iterators
void GoToFirstItem() override
Move the iterator to the beginning of the collection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkDataObjectTreeIterator * New()
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
general representation of visualization data
Definition: vtkDataObject.h:65
a simple class to control print indentation
Definition: vtkIndent.h:40
Store vtkAlgorithm input/output information.
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.