Models a multiresolution dataset containing 0 or more {@link Tuple2D} points.
A dataset allows arbitrary Tuples to be returned from each sample index. The tuples returned are not guaranteed to be mutation free; that is, they should be considered flyweight objects to be used and discarded before the next invocation of {@link #getFlyweightTuple(int)}.
A multiresolution dataset is a dataset consisting of multiple levels, with level 0 being the bottom most level containing the original datasets. Levels 1 and above represent a 'zoomed out' view of the data, filtered, interpolated, scaled, or decimated as appropriate. The only requirement is that if M and N are two levels in the dataset, and M > N, then getNumSamples(M) < getNumSamples(N). In other words, the number of samples (the resolution) must strictly decrease as the level increases. A useful visualization is to imagine levels stacking on top of one another like a pyramid. There is no requirement that the pyramid contain a level Z such that getNumSamples(Z) == 1, but in practice, getNumSamples(Z) should be less than XYPlot.getMaxDrawablePoints().
It is recommended to use a method that makes successive levels half the size of former levels, so that the height of the pyramid is log_2(num_samples).