def shift_columns(delta)
      raise ArgumentError, "Invalid argument 'delta'. Expected Integer, got #{delta.class}." unless delta.is_a?(Integer)
      new_columns = @indices.collect {|index| index % @bin_image.columns + delta}
      new_rows = rows
      # Set new indices:
      @indices = Array.new(new_columns.length) {|i| new_columns[i] + new_rows[i] * @bin_image.columns}
    end
def shift_columns(delta)
      raise ArgumentError, "Invalid argument 'delta'. Expected Integer, got #{delta.class}." unless delta.is_a?(Integer)
      new_columns = @indices.collect {|index| index % @bin_image.columns + delta}
      new_rows = rows
      # Set new indices:
      @indices = Array.new(new_columns.length) {|i| new_columns[i] + new_rows[i] * @bin_image.columns}
    end
Shifts the indices of this selection by the specified number of columns.
 A positive argument increment the column indices.

 @note No out of bounds check is performed for indices that are shifted
   past the image boundary.
 @param [Integer] delta the desired column shift
 @return [Array] the shifted indices