diff --git a/masque/utils/pack2d.py b/masque/utils/pack2d.py index d298404..ed6c4b5 100644 --- a/masque/utils/pack2d.py +++ b/masque/utils/pack2d.py @@ -62,7 +62,8 @@ def maxrects_bssf( ''' Place the rect ''' # Best short-side fit (bssf) to pick a region - bssf_scores = ((regions[:, 2:] - regions[:, :2]) - rect_size).min(axis=1).astype(float) + region_sizes = regions[:, 2:] - regions[:, :2] + bssf_scores = (region_sizes - rect_size).min(axis=1).astype(float) bssf_scores[bssf_scores < 0] = numpy.inf # doesn't fit! rr = bssf_scores.argmin() if numpy.isinf(bssf_scores[rr]): @@ -152,7 +153,8 @@ def guillotine_bssf_sas( for rect_ind, rect_size in enumerate(rect_sizes): ''' Place the rect ''' # Best short-side fit (bssf) to pick a region - bssf_scores = ((regions[:, 2:] - regions[:, :2]) - rect_size).min(axis=1).astype(float) + region_sizes = regions[:, 2:] - regions[:, :2] + bssf_scores = (region_sizes - rect_size).min(axis=1).astype(float) bssf_scores[bssf_scores < 0] = numpy.inf # doesn't fit! rr = bssf_scores.argmin() if numpy.isinf(bssf_scores[rr]): @@ -166,7 +168,7 @@ def guillotine_bssf_sas( loc = regions[rr, :2] rect_locs[rect_ind] = loc - region_size = regions[rr, 2:] - loc + region_size = region_sizes[rr] split_horiz = region_size[0] < region_size[1] new_region0 = regions[rr].copy()