The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
# $Id$
package IPA::Geometry;

use strict;
require Exporter;

use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
@ISA = qw(Exporter);
$VERSION = '0.02';
@EXPORT = qw();
@EXPORT_OK = qw(mirror shift_rotate rotate90 rotate180);
%EXPORT_TAGS = (one2one => [qw(mirror)]);

use constant vertical => 1;
use constant horizontal => 2;


1;

__DATA__

=pod

=head1 NAME

IPA::Geometry - mapping pixels from one location to another

=head1 API

=over

=item mirror IMAGE [ type ]

Mirrors IMAGE vertically or horizontally, depending on integer C<type>,
which can be one of the following constants:

   IPA::Geometry::vertical
   IPA::Geometry::horizontal

Supported types: all

=item shift_rotate IMAGE [ where, size ]

Shifts image in direction C<where>, which is one of the following constants

   IPA::Geometry::vertical
   IPA::Geometry::horizontal

by the offset, specified by integer C<size>.

Supported types: all, except that the horizontal transformation does not
support 1- and 4- bit images.

=item rotate90 IMAGE [ clockwise = true ]

Rotates image on 90 degrees clockwise or counter-clockwise

=item rotate180 IMAGE

Rotates image on 180 degrees

=back

=cut