VTK  9.3.1
vtkCompositeDataIterator.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
14 #ifndef vtkCompositeDataIterator_h
15 #define vtkCompositeDataIterator_h
16 
17 #include "vtkCommonDataModelModule.h" // For export macro
18 #include "vtkObject.h"
19 
20 VTK_ABI_NAMESPACE_BEGIN
22 class vtkCompositeDataSetInternals;
23 class vtkCompositeDataSetIndex;
24 class vtkDataObject;
25 class vtkInformation;
26 
27 class VTKCOMMONDATAMODEL_EXPORT vtkCompositeDataIterator : public vtkObject
28 {
29 public:
31  void PrintSelf(ostream& os, vtkIndent indent) override;
32 
34 
38  virtual void SetDataSet(vtkCompositeDataSet* ds);
39  vtkGetObjectMacro(DataSet, vtkCompositeDataSet);
41 
45  virtual void InitTraversal();
46 
50  virtual void InitReverseTraversal();
51 
55  virtual void GoToFirstItem() = 0;
56 
60  virtual void GoToNextItem() = 0;
61 
68  virtual int IsDoneWithTraversal() = 0;
69 
73  virtual vtkDataObject* GetCurrentDataObject() = 0;
74 
80  virtual vtkInformation* GetCurrentMetaData() = 0;
81 
86  virtual vtkTypeBool HasCurrentMetaData() = 0;
87 
89 
93  vtkSetMacro(SkipEmptyNodes, vtkTypeBool);
94  vtkGetMacro(SkipEmptyNodes, vtkTypeBool);
95  vtkBooleanMacro(SkipEmptyNodes, vtkTypeBool);
97 
101  virtual unsigned int GetCurrentFlatIndex() = 0;
102 
104 
107  vtkGetMacro(Reverse, int);
109 
110 protected:
112  ~vtkCompositeDataIterator() override;
113 
114  // Use macro to ensure MTime is updated:
115  vtkSetMacro(Reverse, int);
116 
118  int Reverse;
120 
121 private:
123  void operator=(const vtkCompositeDataIterator&) = delete;
124 };
125 
126 VTK_ABI_NAMESPACE_END
127 #endif
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.
Store vtkAlgorithm input/output information.
superclass for composite data iterators
int vtkTypeBool
Definition: vtkABI.h:64
abstract superclass for composite (multi-block or AMR) datasets
a simple class to control print indentation
Definition: vtkIndent.h:28
std::map< std::string, DataArray > DataSet
key: variable name, value: DataArray
Definition: VTXTypes.h:28
general representation of visualization data
Definition: vtkDataObject.h:54