Patent ID: 8704850

Claim:
A computer-implemented method comprising: defining, using a computing device, a single bounding region; obtaining, using the computing device, an ordered list of objects to be placed within the bounding region, an object being a two-dimensional image; defining, using the computing device, a first span within the bounding region, a span occurring laterally adjacent a placed object or an edge of the bounding region and vertically adjacent a placed object's bottom edge or an edge of the bounding region; placing, using the computing device, a first object from the ordered list of objects within the first span; adjusting, using the computing device, the first span responsive to placing the first object, so that the first span does not include the area occupied by the first object; defining, using the computing device, a second span within the bounding region responsive to placing the first object; obtaining, using the computing device, a next object to be placed within the bounding region; if the next object will fit within the first span: placing, using the computing device, the next object in the first span; adjusting, using the computing device, the first span and the second span responsive to placing the next object, so that the first span and the second span do not include the area occupied by the next object; if the next object will not fit within the first span: creating, using the computing device, an empty space within the first span; redefining, using the computing device, the first span to not be a span; redefining, using the computing device, the second span to be the first span; and attempting to place the next object within the redefined first span.