VAPoR
3.0.0
|
This class implements a 2D or 3D regular grid: a tessellation of Euculidean space by rectangles (2D) or parallelpipeds (3D). Each grid point can be addressed by an index(i,j,k), where i, a
and k range from 0 to dim - 1, where dim is the dimension of the I, J, or K axis, respectively. Moreover, each grid point has a coordinate in a user-defined coordinate system given by (i * dx, j * dy, k * dz) for some real numbers dx, dy, and dz representing the grid spacing.
More...
#include <RegularGrid.h>
This class implements a 2D or 3D regular grid: a tessellation of Euculidean space by rectangles (2D) or parallelpipeds (3D). Each grid point can be addressed by an index(i,j,k), where i, a
and k range from 0 to dim - 1, where dim is the dimension of the I, J, or K axis, respectively. Moreover, each grid point has a coordinate in a user-defined coordinate system given by (i * dx, j * dy, k * dz) for some real numbers dx, dy, and dz representing the grid spacing.
The regular grid samples a scalar function at each grid point. The scalar function samples are stored as an array decomposed into equal-sized blocks.
Because grid samples are repesented internally as arrays, when accessing multiple grid points better performance is achieved by using unit stride. The I axis varies fastest (has unit stride), followed by J, then K. Best performance is achieved when using the class iterator: RegularGrid::Iterator.
For methods that allow the specification of grid indecies or coordinates as a single parameter tuple (e.g. float coordinate[3]) the first element of the tuple corresponds to the I axis, etc.