00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkCompositeDataIterator_h
00026 #define __vtkCompositeDataIterator_h
00027
00028 #include "vtkObject.h"
00029
00030 class vtkCompositeDataSet;
00031 class vtkCompositeDataSetInternals;
00032 class vtkCompositeDataSetIndex;
00033 class vtkDataObject;
00034 class vtkInformation;
00035
00036 class VTK_FILTERING_EXPORT vtkCompositeDataIterator : public vtkObject
00037 {
00038 public:
00039 static vtkCompositeDataIterator* New();
00040 vtkTypeMacro(vtkCompositeDataIterator, vtkObject);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00044
00046 virtual void SetDataSet(vtkCompositeDataSet* ds);
00047 vtkGetObjectMacro(DataSet, vtkCompositeDataSet);
00049
00051 virtual void InitTraversal();
00052
00055 virtual void InitReverseTraversal();
00056
00058 virtual void GoToFirstItem();
00059
00061 virtual void GoToNextItem();
00062
00066 virtual int IsDoneWithTraversal();
00067
00070 virtual vtkDataObject* GetCurrentDataObject();
00071
00076 virtual vtkInformation* GetCurrentMetaData();
00077
00080 virtual int HasCurrentMetaData();
00081
00083
00091 vtkSetMacro(VisitOnlyLeaves, int);
00092 vtkGetMacro(VisitOnlyLeaves, int);
00093 vtkBooleanMacro(VisitOnlyLeaves, int);
00095
00097
00100 vtkSetMacro(TraverseSubTree, int);
00101 vtkGetMacro(TraverseSubTree, int);
00102 vtkBooleanMacro(TraverseSubTree, int);
00104
00105
00107
00109 vtkSetMacro(SkipEmptyNodes, int);
00110 vtkGetMacro(SkipEmptyNodes, int);
00111 vtkBooleanMacro(SkipEmptyNodes, int);
00113
00117 unsigned int GetCurrentFlatIndex();
00118
00120
00121 vtkGetMacro(Reverse, int);
00123
00124
00125 protected:
00126 vtkCompositeDataIterator();
00127 virtual ~vtkCompositeDataIterator();
00128
00129
00130
00131
00132
00133
00134
00135 void NextInternal();
00136
00138 vtkCompositeDataSetIndex GetCurrentIndex();
00139
00140
00141 friend class vtkCompositeDataSet;
00142
00143 unsigned int CurrentFlatIndex;
00144
00145 int SkipEmptyNodes;
00146 int TraverseSubTree;
00147 int Reverse;
00148 int VisitOnlyLeaves;
00149 vtkCompositeDataSet* DataSet;
00150 private:
00151 vtkCompositeDataIterator(const vtkCompositeDataIterator&);
00152 void operator=(const vtkCompositeDataIterator&);
00153
00154 class vtkInternals;
00155 vtkInternals* Internals;
00156 friend class vtkInternals;
00157
00160 vtkCompositeDataSetInternals* GetInternals(vtkCompositeDataSet*);
00161
00162
00163 void UpdateLocation();
00164
00165 };
00166
00167 #endif
00168
00169