00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00022 #ifndef __vtkCompositeDataIterator_h
00023 #define __vtkCompositeDataIterator_h
00024
00025 #include "vtkObject.h"
00026
00027 class vtkCompositeDataSet;
00028 class vtkCompositeDataSetInternals;
00029 class vtkCompositeDataSetIndex;
00030 class vtkDataObject;
00031 class vtkInformation;
00032
00033 class VTK_FILTERING_EXPORT vtkCompositeDataIterator : public vtkObject
00034 {
00035 public:
00036 static vtkCompositeDataIterator* New();
00037 vtkTypeRevisionMacro(vtkCompositeDataIterator, vtkObject);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039
00041
00043 virtual void SetDataSet(vtkCompositeDataSet* ds);
00044 vtkGetObjectMacro(DataSet, vtkCompositeDataSet);
00046
00048 virtual void InitTraversal();
00049
00052 virtual void InitReverseTraversal();
00053
00055 virtual void GoToFirstItem();
00056
00058 virtual void GoToNextItem();
00059
00062 virtual int IsDoneWithTraversal();
00063
00066 virtual vtkDataObject* GetCurrentDataObject();
00067
00072 virtual vtkInformation* GetCurrentMetaData();
00073
00076 virtual int HasCurrentMetaData();
00077
00079
00087 vtkSetMacro(VisitOnlyLeaves, int);
00088 vtkGetMacro(VisitOnlyLeaves, int);
00089 vtkBooleanMacro(VisitOnlyLeaves, int);
00091
00093
00096 vtkSetMacro(TraverseSubTree, int);
00097 vtkGetMacro(TraverseSubTree, int);
00098 vtkBooleanMacro(TraverseSubTree, int);
00100
00101
00103
00105 vtkSetMacro(SkipEmptyNodes, int);
00106 vtkGetMacro(SkipEmptyNodes, int);
00107 vtkBooleanMacro(SkipEmptyNodes, int);
00109
00113 unsigned int GetCurrentFlatIndex();
00114
00116
00117 vtkGetMacro(Reverse, int);
00119
00120
00121 protected:
00122 vtkCompositeDataIterator();
00123 virtual ~vtkCompositeDataIterator();
00124
00125
00126
00127
00128
00129
00130
00131 void NextInternal();
00132
00134 vtkCompositeDataSetIndex GetCurrentIndex();
00135
00136
00137 friend class vtkCompositeDataSet;
00138
00139 unsigned int CurrentFlatIndex;
00140
00141 int SkipEmptyNodes;
00142 int TraverseSubTree;
00143 int Reverse;
00144 int VisitOnlyLeaves;
00145 vtkCompositeDataSet* DataSet;
00146 private:
00147 vtkCompositeDataIterator(const vtkCompositeDataIterator&);
00148 void operator=(const vtkCompositeDataIterator&);
00149
00150 class vtkInternals;
00151 vtkInternals* Internals;
00152 friend class vtkInternals;
00153
00156 vtkCompositeDataSetInternals* GetInternals(vtkCompositeDataSet*);
00157
00158
00159 void UpdateLocation();
00160
00161 };
00162
00163 #endif
00164
00165