00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00036 #ifndef __vtkHierarchicalBoxDataSet_h
00037 #define __vtkHierarchicalBoxDataSet_h
00038
00039 #include "vtkCompositeDataSet.h"
00040
00041 class vtkAMRBox;
00042 class vtkInformationIdTypeKey;
00043 class vtkInformationIntegerKey;
00044 class vtkInformationIntegerVectorKey;
00045 class vtkUniformGrid;
00046
00047 class VTK_FILTERING_EXPORT vtkHierarchicalBoxDataSet : public vtkCompositeDataSet
00048 {
00049 public:
00050 static vtkHierarchicalBoxDataSet *New();
00051 vtkTypeRevisionMacro(vtkHierarchicalBoxDataSet,vtkCompositeDataSet);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00053
00055 virtual vtkCompositeDataIterator* NewIterator();
00056
00058 virtual int GetDataObjectType() {return VTK_HIERARCHICAL_BOX_DATA_SET;}
00059
00062 void SetNumberOfLevels(unsigned int numLevels);
00063
00065 unsigned int GetNumberOfLevels();
00066
00068 void SetNumberOfDataSets(unsigned int level, unsigned int numdatasets);
00069
00071 unsigned int GetNumberOfDataSets(unsigned int level);
00072
00074
00078 virtual void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj)
00079 { this->Superclass::SetDataSet(iter, dataObj); }
00081
00082
00084
00090 void SetDataSet(unsigned int level, unsigned int id,
00091 vtkAMRBox& box, vtkUniformGrid* dataSet);
00093
00095
00098 vtkUniformGrid* GetDataSet(unsigned int level,
00099 unsigned int id,
00100 vtkAMRBox& box);
00102
00104 vtkAMRBox GetAMRBox(vtkCompositeDataIterator* iter);
00105
00106
00107
00109
00112 vtkInformation* GetLevelMetaData(unsigned int level)
00113 { return this->GetChildMetaData(level); }
00115
00117
00118 int HasLevelMetaData(unsigned int level)
00119 { return this->HasChildMetaData(level); }
00121
00125 vtkInformation* GetMetaData(unsigned int level, unsigned int index);
00126
00128 int HasMetaData(unsigned int level, unsigned int index);
00129
00136 void SetRefinementRatio(unsigned int level, int refRatio);
00137
00139 int GetRefinementRatio(unsigned int level);
00140
00143 int GetRefinementRatio(vtkCompositeDataIterator* iter);
00144
00146 void GenerateVisibilityArrays();
00147
00148 static vtkInformationIntegerVectorKey* BOX();
00149 static vtkInformationIntegerKey* REFINEMENT_RATIO();
00150 static vtkInformationIdTypeKey* NUMBER_OF_BLANKED_POINTS();
00151
00152
00154
00155 static vtkHierarchicalBoxDataSet* GetData(vtkInformation* info);
00156 static vtkHierarchicalBoxDataSet* GetData(vtkInformationVector* v, int i=0);
00157
00159
00161 virtual void GetScalarRange(double range[]);
00162
00164 virtual double *GetScalarRange();
00165
00167
00168 virtual vtkDataObject* GetDataSet(vtkCompositeDataIterator* iter)
00169 { return this->Superclass::GetDataSet(iter); }
00171
00173
00174 virtual vtkInformation* GetMetaData(vtkCompositeDataIterator* iter)
00175 { return this->Superclass::GetMetaData(iter); }
00177
00178
00180
00181 virtual int HasMetaData(vtkCompositeDataIterator* iter)
00182 { return this->Superclass::HasMetaData(iter); }
00184
00185 protected:
00186 vtkHierarchicalBoxDataSet();
00187 ~vtkHierarchicalBoxDataSet();
00188
00191 virtual void ComputeScalarRange();
00192
00193
00194 double ScalarRange[2];
00195
00196 vtkTimeStamp ScalarRangeComputeTime;
00197
00198 private:
00199 vtkHierarchicalBoxDataSet(const vtkHierarchicalBoxDataSet&);
00200 void operator=(const vtkHierarchicalBoxDataSet&);
00201 };
00202
00203 #endif
00204