This file is indexed.

/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.