Grid::Coord - abstract representation and manipulation of points and rectangles


Grid-Coord documentation  | view source Contained in the Grid-Coord distribution.

Index


NAME

Top

Grid::Coord - abstract representation and manipulation of points and rectangles

SYNOPSIS

Top

  use Grid::Coord
	my $point1 = Grid::Coord->new(5,4);        # point(y=>5, x=>4)
	my $rect1  = Grid::Coord->new(2,3 => 6,5); # rectangle
	print "TRUE" if $rect1->contains($point1);

	my $rect2  = Grid::Coord->new(3,4 => 5,5); # another rectangle
	my $rect3  = $rect1->overlap($rect2)       # (3,4 => 5,5)
	print $rect3->stringify;                   # "(3,4 => 5,5)"
	print $rect3;                              # "(3,4 => 5,5)"
	print "TRUE" if $rect3->equals(Grid::Coord->new(3,4 => 5,5));
	print "TRUE" if $rect3 == Grid::Coord->new(3,4 => 5,5);

DESCRIPTION

Top

Manage points or rectangles on a grid. This is generic, and could be used for spreadsheets, ascii art, or other nefarious purposes.

USAGE

Top

Constructor

 Grid->Coord->new($y, $x);
 Grid->Coord->new($min_y, $min_x,  $max_y, $max_x);

Accessing coordinates

The min_y, min_x, max_y, max_x functions:

 print $coord->max_x; # get value
 $coord->min_x(4);    # set value to 4

Relationships with other Coords

 $c3 = $c1->overlap($c2);
 print "TRUE" if $rect1->contains($rect2);
 print "TRUE" if $rect1->equals($rect2);

Overloaded operators

Four operators are overloaded:

* the stringification operator

So that print $coord does something reasonable

* the equality operator

so that if ($coord1 == $coord2) does the right thing.

* the add operator

So that $c1 + $c2 is a synonym for $c1-offset($c2)>

* the subtract operator

So that $c1 - $c2 is a synonym for $c1-delta($c2)>

Iterating

The iterator returns a Grid::Coord object for each cell in the current Grid::Coord range.

  my $it = $grid->cell_iterator; # or ->cell_iterator_rowwise
  # my $it = $grid->cell_iterator_colwise; # top to bottom

  while (my $cell = $it3->()) {
    # do something to $cell
  }

You can also iterate columns/rows with $grid->cells_iterator $grid->rows_iterator

BUGS

Top

None reported yet.

SUPPORT

Top

From the author.

AUTHOR

Top

	osfameron@cpan.org
	http://osfameron.perlmonk.org/

COPYRIGHT

Top

SEE ALSO

Top

perl(1).


Grid-Coord documentation  | view source Contained in the Grid-Coord distribution.