40 #include <vtkstd/vector>
51 int ilo,
int jlo,
int klo,
52 int ihi,
int jhi,
int khi);
64 vtkAMRBox(
int dim,
const int lo[3],
const int hi[3]);
65 vtkAMRBox(
const int lo[3],
const int hi[3]);
86 void SetDimensionality(
int dim);
92 int ilo,
int jlo,
int klo,
93 int ihi,
int jhi,
int khi);
97 void SetDimensions(
const int lo[3],
const int hi[3]);
100 void SetDimensions(
const int dims[6]);
103 void GetDimensions(
int lo[3],
int hi[3])
const;
106 void GetDimensions(
int dims[6])
const;
110 void GetLoCorner(
int lo[3])
const;
116 void GetHiCorner(
int hi[3])
const;
122 void GetNumberOfCells(
int ext[3])
const;
129 void GetNumberOfNodes(
int ext[3])
const;
137 void GetGridSpacing(
double dX[3])
const;
138 void SetGridSpacing(
double dx);
139 void SetGridSpacing(
const double dX[3]);
140 void SetGridSpacing(
double dx,
double dy,
double dz);
149 void GetDataSetOrigin(
double X0[3])
const;
150 void SetDataSetOrigin(
const double X0[3]);
151 void SetDataSetOrigin(
double x0,
double y0,
double z0);
159 void GetBoxOrigin(
double x0[3])
const;
165 void Shrink(
int byN);
169 void Shift(
int i,
int j);
170 void Shift(
int i,
int j,
int k);
171 void Shift(
const int I[3]);
185 bool Contains(
int i,
int j,
int k)
const;
186 bool Contains(
const int I[3])
const;
190 bool Contains(
const vtkAMRBox &other)
const;
199 ostream &Print(ostream &os)
const;
204 VTK_LEGACY(
int DoesContainCell(
int i,
int j,
int k));
207 VTK_LEGACY(
int DoesContainBox(
vtkAMRBox const & box)
const);
229 template<
int dimension>
230 struct vtkAMRBoxInitializeHelp;
231 template<
int dimension>
237 vtkAMRBoxInitializeHelp<dimension>* = 0)
239 for(
int i=0; i<dimension; ++i)
241 LoCorner[i] = loCorner[i];
242 HiCorner[i] = hiCorner[i];
244 for(
int i=dimension; i<(3-dimension); ++i)
255 template <
typename T>
270 arrayDims.
Shift(ofs);
274 if (!arrayRegion.
Contains(destRegion))
276 vtkGenericWarningMacro(
277 <<
"ERROR: Array must enclose the destination region. "
278 <<
"Aborting the fill.");
289 for (
int k=destLo[2]; k<=destHi[2]; ++k)
292 for (
int j=destLo[1]; j<=destHi[1]; ++j)
294 vtkIdType idx=kOfs+j*arrayHi[0]+destLo[0];
295 for (
int i=destLo[0]; i<=destHi[0]; ++i)
297 pArray[idx]=fillValue;
308 void Split(
const int N[3],
const int minSide[3], vtkstd::vector<vtkAMRBox> &decomp);
313 void Split(
const int minSide[3], vtkstd::vector<vtkAMRBox> &decomp);