How to define a dataset poses a challenge and is where using an object language
proves most beneficial. The hypercube viewer uses a grid concept similar to
SEPlib and SEP3D. The user, either directly, or indirectly,
describes an n-dimensional grid in which the viewer operates. Each
dataset is then described in terms of this overlying grid. Each dataset
must fit within this grid description. A io_func class is responsible
for reading the dataset from disk or creating the dataset. A buffer
class is used to store the data, and the dataset class is responsible
for handling requests from other portions of the program.