Prima::Region - generic shape for clipping and hit testing
$empty = Prima::Region->new; $rect = Prima::Region->new( rect => [ 10, 10, 20, 20 ]); $rect = Prima::Region->new( box => [ 10, 10, 10, 10 ]); # same $poly = Prima::Region->new( polygon => [ 0, 0, 100, 0, 100, 100 ]); $bits = Prima::Region->new( image => $image ); $drawable-> region( $rect ); my $rgn = $drawable->region; $rgn->image->save('region.png') if $rgn;
Prima::Region is a descendant of Prima::Component. It serves a representation of a generic shape, that can be applied to a drawable, and checked whether points are within its boundaries.
Creates new region object. Without options, the region is empty. Following options can be used:
Create rectangular region with inclusive-inclusive coordinates.
Same as rect but using other semantics.
rect
Creates a polygon shape with vertices given in @POINTS, and using an optional fillMode ( see "fillMode" in Drawable ).
@POINTS
Creates a region that mirrors 1-bits in the image. If no pixels are set to 1, the region will be effecively empty.
Paints the region on a newly created bitmap and returns it. By default, region offset is not included.
Returns (X,Y,WIDTH,HEIGHT) bounding box, that encloses smallest possible rectangle, or (0,0,0,0) if the region is empty.
Applies one of the following set operation to the region:
Makes a copy of the REGION
The resulting region is an interesection of the two regions.
The resulting region is a union of the two regions.
Performs XOR operation on the two regions.
The resulting region is a difference of the two regions.
Creates a duplicate region object
Returns a system handle for the region
Returns true if the regions are equal, false otherwise.
Paints the region on a newly created image and returns it. By default, region offset is not included.
Returns true if the region is empty, false otherwise.
Shifts the region vertically and/or horizontally
Returns true if the (X,Y) point is inside the region
Checks whether a rectangle given by inclusive-inclusive coordiates is inside, outside, or partially covered by the region. Return values are:
rgn::Inside rgn::Outside rgn::Partially
where rgn::Outside has value of 0.
rgn::Outside
Dmitry Karasik, <dmitry@karasik.eu.org>.
Prima, Prima::Drawable, Prima::Drawable::Path
To install Prima, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prima
CPAN shell
perl -MCPAN -e shell install Prima
For more information on module installation, please visit the detailed CPAN module installation guide.