00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkHierarchicalDataExtractDataSets_h
00026 #define __vtkHierarchicalDataExtractDataSets_h
00027
00028 #include "vtkHierarchicalDataSetAlgorithm.h"
00029
00030
00031 struct vtkHierarchicalDataExtractDataSetsInternals;
00032
00033
00034 class VTK_GRAPHICS_EXPORT vtkHierarchicalDataExtractDataSets : public vtkHierarchicalDataSetAlgorithm
00035 {
00036 public:
00037 vtkTypeRevisionMacro(vtkHierarchicalDataExtractDataSets,vtkHierarchicalDataSetAlgorithm);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039 static vtkHierarchicalDataExtractDataSets *New();
00040
00042 void AddDataSet(unsigned int level, unsigned int idx);
00043
00045 void ClearDataSetList();
00046
00047 protected:
00048 vtkHierarchicalDataExtractDataSets();
00049 ~vtkHierarchicalDataExtractDataSets();
00050
00051 virtual int RequestDataObject(vtkInformation* request,
00052 vtkInformationVector** inputVector,
00053 vtkInformationVector* outputVector);
00054 virtual int RequestInformation(vtkInformation *,
00055 vtkInformationVector **,
00056 vtkInformationVector *);
00057 virtual int RequestData(vtkInformation *,
00058 vtkInformationVector **,
00059 vtkInformationVector *);
00060
00061 unsigned int ComputeOutputLevels(unsigned int inputNumLevels);
00062
00063
00064 friend struct vtkHierarchicalDataExtractDataSetsInternals;
00065
00066 struct DataSetNode
00067 {
00068 unsigned int Level;
00069 unsigned int DataSetId;
00070 int Initialized;
00071
00072 DataSetNode() : Initialized(0) {}
00073 DataSetNode(unsigned int level, unsigned int dsid) :
00074 Level(level), DataSetId(dsid), Initialized(1) {}
00075 };
00076
00077
00078 private:
00079 vtkHierarchicalDataExtractDataSetsInternals* Internal;
00080
00081 vtkHierarchicalDataExtractDataSets(const vtkHierarchicalDataExtractDataSets&);
00082 void operator=(const vtkHierarchicalDataExtractDataSets&);
00083 };
00084
00085 #endif
00086
00087