/** * Sets the MultiRangedRaster with data from source. * * The number of ranges and the number of bands in source must be equal. * * @param x * left boundary * @param y * upper boundary * @param source * data to copy */ @Override public void setSubRaster( double x, double y, AbstractRaster source ) { // checkBounds(x, y, source.getColumns(), source.getRows()); SimpleRaster src = source.getAsSimpleRaster(); if ( src.getBands() != getNumberOfRanges() ) { throw new IndexOutOfBoundsException(); } for ( int i = 0; i < getNumberOfRanges(); i++ ) { SimpleRaster raster = multiRange.get( i ).getAsSimpleRaster(); raster.setSubRaster( x, y, src.getBand( i ).getAsSimpleRaster() ); multiRange.set( i, raster ); } }