class BinPacking::Heuristics::BestAreaFit
Private Instance Methods
calculate_score(free_rect, rect_width, rect_height)
click to toggle source
# File lib/bin_packing/heuristics/best_area_fit.rb, line 6 def calculate_score(free_rect, rect_width, rect_height) area_fit = free_rect.width * free_rect.height - rect_width * rect_height leftover_horiz = (free_rect.width - rect_width).abs leftover_vert = (free_rect.height - rect_height).abs short_side_fit = [leftover_horiz, leftover_vert].min BinPacking::Score.new(area_fit, short_side_fit) end