/usr/share/perl5/Graphics/Primitive.pm is in libgraphics-primitive-perl 0.61-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | package Graphics::Primitive;
use Moose;
our $VERSION = '0.61';
__PACKAGE__->meta->make_immutable;
no Moose;
1;
__END__
=head1 NAME
Graphics::Primitive - Device and library agnostic graphic primitives
=cut
=head1 SYNOPSIS
Graphics::Primitive is a device and library agnostic system for creating
and manipulating various graphical elements such as Borders, Fonts, Paths
and the like.
my $c = Graphics::Primitive::Component->new(
background_color => Graphics::Color::RGB->new(
red => 1, green => 0, blue => 0
),
width => 500, height => 350,
border => new Graphics::Primitive::Border->new( width => 5 )
);
my $driver = Graphics::Primitive::Driver::Cairo->new(format => 'SVG');
$driver->prepare($c);
$driver->finalize($c);
$driver->draw($c);
$driver->write($filename)
=head1 DESCRIPTION
Graphics::Primitive is library agnostic system for drawing things.
The idea is to allow you to create and manipulate graphical components and
then pass them off to a L<Driver|Graphics::Primitive::Driver> for actual
drawing.
=head1 CONCEPTS
The root object for Graphics::Primitive is the
L<Component|Graphics::Primitive::Component>. Components contain all the
common elements that you'd expect: margins, padding, background color etc.
The next most important is the L<Container|Graphics::Primitive::Container>.
Containers are Components that can hold other Components. Containers have all
the attributes and methods of a Component with the addition of the
I<layout_manager> attribute for us with L<Layout::Manager>.
Another important Component is the L<Canvas|Graphics::Primitive::Canvas>.
The Canvas differs from other components by being a container for various
L<Geometry::Primitive> objects. This allows drawing of arbitrary shapes
that do not fit existing components.
=head1 DRAWING LIFECYCLE
After creating all your components, there is a lifecycle that allows them
to do their internal housekeeping to prepare for eventual drawing. The
lifecycle is: B<prepare>, B<layout> and B<pack>. Detailed explanation of
these methods can be found in L<Component|Graphics::Primitive::Component>.
=head1 PREPARATION
Graphics::Primitive::Component has a C<prepared> flag. This flag is set as
part of the C<prepare> method (shocking, I know). If this flag is set, then
subsequent calls to C<prepare> are ignored. Containers also have a prepare
flag, but this flag is B<not> set when calling C<prepare>. A Container's flag
should be set by the layout manager. More information may be found with
L<Layout::Manager>.
=head1 INSPIRATION
Most of the concepts that you'll find in Graphics::Primitive are inspired by
L<Cairo|http://cairographics.org>'s API and
L<CSS|http://www.w3.org/Style/CSS/>'s box model.
=head1 AUTHOR
Cory Watson, C<< <gphat@cpan.org> >>
=head1 CONTRIBUTORS
Florian Ragwitz
=head1 ACKNOWLEDGEMENTS
Many of the ideas here come from my experience using the Cairo library.
=head1 COPYRIGHT & LICENSE
Copyright 2008-2010 by Cory G Watson.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
|