The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Grid - create geometric grids

SYNOPSYS

 use Grid;

 my $grid = Grid->new($grid_width, $grid_height, $item_width, $item_height, $gutter, $border, $arrangement);

DESCRIPTION

Grid creates an array of x-y positions for items of a given height and width arranged in a grid. This is used to create grid layouts on a page, or repeate items on a number of pages of the same size.

REQUIRES

POSIX

List::AllUtils

Moose::Util::TypeConstraints

Moose

METHODS

bbox

 $grid->bbox();

Returns the total bounding box of the grid

numbers

 $grid->numbers();

Returns the sequence item numbers, with the top left item as item 1.

 +---------+---------+---------+---------+
 |         |         |         |         |
 |    1    |    2    |    3    |    4    |
 |         |         |         |         |
 +---------+---------+---------+---------+
 |         |         |         |         |
 |    5    |    6    |    7    |    8    |
 |         |         |         |         |
 +---------+---------+---------+---------+
 |         |         |         |         |
 |    9    |   10    |   11    |   12    |
 |         |         |         |         |
 +---------+---------+---------+---------+

sequence

 $grid->sequence();

Returns the sequence of x-y grid item coordinates, with the top left item as item [0, 0], the next one (assuming a horizontal arrangement) being [1, 0] etc.

 +---------+---------+---------+---------+
 |         |         |         |         |
 | [0, 0]  | [0, 1]  | [0, 2]  | [0, 3]  |
 |         |         |         |         |
 +---------+---------+---------+---------+
 |         |         |         |         |
 | [1, 0]  | [1, 1]  | [1, 2]  | [1, 3]  |
 |         |         |         |         |
 +---------+---------+---------+---------+
 |         |         |         |         |
 | [2, 0]  | [2, 1]  | [2, 2]  | [2, 3]  |
 |         |         |         |         |
 +---------+---------+---------+---------+

positions

 $grid->positions();

Returns the sequence of x-y grid coordinates.

total_height

 $grid->total_height();

The total height of the grid

total_width

 $grid->total_width();

The total width of the grid

To do

  • Allow for different vertical and horizontal gutters

  • Allow for different top, bottom, left right borders

  • Allow for bottom or top start of grid