diff options
Diffstat (limited to 'lib/GridFiller/Scaler.pm')
-rw-r--r-- | lib/GridFiller/Scaler.pm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/GridFiller/Scaler.pm b/lib/GridFiller/Scaler.pm new file mode 100644 index 0000000..21d11c9 --- /dev/null +++ b/lib/GridFiller/Scaler.pm @@ -0,0 +1,32 @@ +package GridFiller::Scaler; +use Moose; +use namespace::autoclean; +use GridFiller::Types qw(GridT); +use MooseX::Types::Moose qw(Int); +use Carp; +use MooseX::Params::Validate 'pos_validated_list'; + +sub scale { + shift; # class + my ($input_grid,$scale) = pos_validated_list( + \@_, + { isa => GridT }, + { isa => Int }, + ); + + my @output_grid; + + for my $row (@$input_grid) { + my @out_row; + + for my $cell (@$row) { + push @out_row, $cell for 1..$scale; + } + + push @output_grid,[@out_row] for 1..$scale; + } + + return \@output_grid; +} + +1; |