/** * Constructs one-dimensional grid range. * * @param lower The minimal inclusive value. * @param upper The maximal exclusive value. */ public GeneralGridRange(final int lower, final int upper) { index = new int[] {lower, upper}; checkCoherence(); }
/** * Constructs two-dimensional range defined by a {@link Rectangle}. */ public GeneralGridRange(final Rectangle rect) { index = new int[] { rect.x, rect.y, rect.x+rect.width, rect.y+rect.height }; checkCoherence(); }
/** * Constructs two-dimensional range defined by a {@link Raster}. */ public GeneralGridRange(final Raster raster) { final int x = raster.getMinX(); final int y = raster.getMinY(); index = new int[] { x, y, x+raster.getWidth(), y+raster.getHeight() }; checkCoherence(); }
/** * Constructs a new grid range. * * @param lower The valid minimum inclusive grid coordinate. * The array contains a minimum value for each * dimension of the grid coverage. The lowest * valid grid coordinate is zero. * @param upper The valid maximum exclusive grid coordinate. * The array contains a maximum value for each * dimension of the grid coverage. * * @see #getLowers * @see #getUppers */ public GeneralGridRange(final int[] lower, final int[] upper) { if (lower.length != upper.length) { throw new IllegalArgumentException(Errors.format(ErrorKeys.MISMATCHED_DIMENSION_$2, new Integer(lower.length), new Integer(upper.length))); } index = new int[lower.length + upper.length]; System.arraycopy(lower, 0, index, 0, lower.length); System.arraycopy(upper, 0, index, lower.length, upper.length); checkCoherence(); }
/** * Constructs multi-dimensional range defined by a {@link RenderedImage}. * * @param image The image. * @param dimension Number of dimensions for this grid range. * Dimensions over 2 will be set to the [0..1] range. */ GeneralGridRange(final RenderedImage image, final int dimension) { index = new int[dimension*2]; final int x = image.getMinX(); final int y = image.getMinY(); index[0] = x; index[1] = y; index[dimension+0] = x+image.getWidth(); index[dimension+1] = y+image.getHeight(); Arrays.fill(index, dimension+2, index.length, 1); checkCoherence(); }