class Flico::Grid
Constants
- CANV_HEIGHT
- CANV_WIDTH
- GRID
Public Instance Methods
canv_height()
click to toggle source
# File lib/flico/grid.rb, line 15 def canv_height CANV_HEIGHT end
canv_width()
click to toggle source
# File lib/flico/grid.rb, line 11 def canv_width CANV_WIDTH end
cell_height(name)
click to toggle source
# File lib/flico/grid.rb, line 39 def cell_height(name) cell_size(CANV_HEIGHT, rows, size_multiplier(column_cells, name)) end
cell_rectangle(name)
click to toggle source
# File lib/flico/grid.rb, line 65 def cell_rectangle(name) row, column = row_cells.find_index {|row| row.include? name }, column_cells.find_index {|row| row.include? name } Cell.new(column * (CANV_WIDTH / columns), row * (CANV_HEIGHT / rows), cell_width(name), cell_height(name)) end
cell_width(name)
click to toggle source
# File lib/flico/grid.rb, line 35 def cell_width(name) cell_size(CANV_WIDTH, columns, size_multiplier(row_cells, name)) end
column_cells()
click to toggle source
# File lib/flico/grid.rb, line 23 def column_cells GRID.transpose end
columns()
click to toggle source
# File lib/flico/grid.rb, line 19 def columns GRID.max_by(&:size).size end
crop_rectangle(cell_name, image_width, image_height)
click to toggle source
# File lib/flico/grid.rb, line 43 def crop_rectangle(cell_name, image_width, image_height) x, y = 0, 0 image = Cell.new(image_width, image_height) cell = cell_rectangle(cell_name) unless image.aspect_ratio >= cell.aspect_ratio final_width = image.width final_height = image.height - (image.height - (image.width / cell.aspect_ratio)) else final_width = image_width - (image.width - (image.height * cell.aspect_ratio)) final_height = image.height end crop_rectangle = Cell.new(x, y, final_width, final_height) crop_rectangle end
resize_rectangle(cell_name, image_width, image_height)
click to toggle source
# File lib/flico/grid.rb, line 60 def resize_rectangle(cell_name, image_width, image_height) image = Cell.new(image_width, image_height) cell_rectangle(cell_name) end
row_cells()
click to toggle source
# File lib/flico/grid.rb, line 31 def row_cells GRID end
rows()
click to toggle source
# File lib/flico/grid.rb, line 27 def rows GRID.size end
Private Instance Methods
cell_size(total, divisions, multiplier)
click to toggle source
# File lib/flico/grid.rb, line 76 def cell_size(total, divisions, multiplier) (multiplier == 0) ? 0 : ((total / divisions) * multiplier) end
size_multiplier(table, name)
click to toggle source
# File lib/flico/grid.rb, line 72 def size_multiplier(table, name) table.map {|row| row.count(name)}.max end