X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/09c67d9323c7d379d4c6de5dc0457b6de16cff14..814ebbe864806750e95c3df954a47f4b0007c5e4:/vendor/plugins/gruff/lib/gruff/photo_bar.rb diff --git a/vendor/plugins/gruff/lib/gruff/photo_bar.rb b/vendor/plugins/gruff/lib/gruff/photo_bar.rb deleted file mode 100644 index 7240da0..0000000 --- a/vendor/plugins/gruff/lib/gruff/photo_bar.rb +++ /dev/null @@ -1,100 +0,0 @@ -require File.dirname(__FILE__) + '/base' - -# EXPERIMENTAL! -# -# Doesn't work yet. -# -class Gruff::PhotoBar < Gruff::Base - -# TODO -# -# define base and cap in yml -# allow for image directory to be located elsewhere -# more exact measurements for bar heights (go all the way to the bottom of the graph) -# option to tile images instead of use a single image -# drop base label a few px lower so photo bar graphs can have a base dropping over the lower marker line -# - - # The name of a pre-packaged photo-based theme. - attr_reader :theme - -# def initialize(target_width=800) -# super -# init_photo_bar_graphics() -# end - - def draw - super - return unless @has_data - - return # TODO Remove for further development - - init_photo_bar_graphics() - - #Draw#define_clip_path() - #Draw#clip_path(pathname) - #Draw#composite....with bar graph image OverCompositeOp - # - # See also - # - # Draw.pattern # define an image to tile as the filling of a draw object - # - - # Setup spacing. - # - # Columns sit side-by-side. - spacing_factor = 0.9 - @bar_width = @norm_data[0][DATA_COLOR_INDEX].columns - - @norm_data.each_with_index do |data_row, row_index| - - data_row[1].each_with_index do |data_point, point_index| - data_point = 0 if data_point.nil? - # Use incremented x and scaled y - left_x = @graph_left + (@bar_width * (row_index + point_index + ((@data.length - 1) * point_index))) - left_y = @graph_top + (@graph_height - data_point * @graph_height) + 1 - right_x = left_x + @bar_width * spacing_factor - right_y = @graph_top + @graph_height - 1 - - bar_image_width = data_row[DATA_COLOR_INDEX].columns - bar_image_height = right_y.to_f - left_y.to_f - - # Crop to scale for data - bar_image = data_row[DATA_COLOR_INDEX].crop(0, 0, bar_image_width, bar_image_height) - - @d.gravity = NorthWestGravity - @d = @d.composite(left_x, left_y, bar_image_width, bar_image_height, bar_image) - - # Calculate center based on bar_width and current row - label_center = @graph_left + (@data.length * @bar_width * point_index) + (@data.length * @bar_width / 2.0) - draw_label(label_center, point_index) - end - - end - - @d.draw(@base_image) - end - - - # Return the chosen theme or the default - def theme - @theme || 'plastik' - end - -protected - - # Sets up colors with a list of images that will be used. - # Images should be 340px tall - def init_photo_bar_graphics - color_list = Array.new - theme_dir = File.dirname(__FILE__) + '/../../assets/' + theme - - Dir.open(theme_dir).each do |file| - next unless /\.png$/.match(file) - color_list << Image.read("#{theme_dir}/#{file}").first - end - @colors = color_list - end - -end -