// in this case we would get erroneous results given to the fact that we
// might be reusing a valid sample category while we should be using a
// no data one.
//
// ////////////////////////////////////////////////////////////////////
PiecewiseTransform1DElement last = null;
final boolean useLast = pieces instanceof DefaultDomain1D;
do {
try {
iterator.startLines();
if (!iterator.finishedLines())
do {
iterator.startPixels();
if (!iterator.finishedPixels())
do {
// //
//
// get the input value to be transformed
//
// //
final double value = iterator.getSampleDouble();
// //
//
// get the correct category for this
// transformation
//
// //
final PiecewiseTransform1DElement transform;
if (useLast) {
if (last != null && last.contains(value))
transform = last;
else {
last = transform = pieces.findDomainElement(value);
}
} else
transform = (PiecewiseTransform1DElement) pieces.findDomainElement(value);
// //
//
// in case everything went fine let's apply the
// transform.
//
// //
if (transform != null)
iterator.setSample(transform.transform(value));
else {
// //
//
// if we did not find one let's try to use
// one of the nodata ones to fill the gaps,