/usr/share/perl5/Geometry/Primitive/Bezier.pm is in libgeometry-primitive-perl 0.24-2.
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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | package Geometry::Primitive::Bezier;
use Moose;
use MooseX::Storage;
with qw(Geometry::Primitive::Shape MooseX::Clone MooseX::Storage::Deferred);
use overload ('""' => 'to_string');
use Geometry::Primitive::Point;
has 'control1' => (
is => 'rw',
isa => 'Geometry::Primitive::Point',
required => 1,
coerce => 1
);
has 'control2' => (
is => 'rw',
isa => 'Geometry::Primitive::Point',
required => 1,
coerce => 1
);
has 'end' => (
is => 'rw',
isa => 'Geometry::Primitive::Point',
required => 1,
coerce => 1
);
has 'start' => (
is => 'rw',
isa => 'Geometry::Primitive::Point',
required => 1,
coerce => 1
);
sub scale {
my ($self, $amount) = @_;
$self->start->x($self->start->x * $amount);
$self->start->y($self->start->y * $amount);
$self->end->x($self->end->x * $amount);
$self->end->y($self->end->y * $amount);
$self->control1->x($self->control1->x * $amount);
$self->control1->y($self->control1->y * $amount);
$self->control2->x($self->control2->x * $amount);
$self->control2->y($self->control2->y * $amount);
}
sub point_end {
my ($self) = @_; return $self->end;
}
sub point_start {
my ($self) = @_; return $self->start;
}
sub to_string {
my ($self) = @_;
return $self->start->to_string.' - '.$self->control1->to_string
.' = '.$self->control2->to_string.' = '.$self->end->to_string;
}
__PACKAGE__->meta->make_immutable;
no Moose;
1;
__END__
=encoding UTF-8
=head1 NAME
Geometry::Primitive::Bezier - Cubic Bézier Curve
=head1 DESCRIPTION
Geometry::Primitive::Bezier represents a cubic Bézier curve.
=head1 SYNOPSIS
use Geometry::Primitive::Bezier;
my $line = Geometry::Primitive::Bezier->new(
start => $point1,
control1 => $point2,
control2 => $point3,
end => $point4
);
=head1 ATTRIBUTES
=head2 control1
Set/Get the first control point of the curve.
=head2 control2
Set/Get the second control point of the curve.
=head2 end
Set/Get the end point of the curve.
=head2 start
Set/Get the start point of the line.
=head1 METHODS
=head2 new
Creates a new Geometry::Primitive::Bezier
=head2 grow
Does nothing, as I'm not sure how. Patches or hints welcome.
=head2 point_end
Get the end point. Provided for Shape role.
=head2 point_start
Get the start point. Provided for Shape role.
=head2 scale
Scales this curve by the amount provided. Multiplies each coordinate by the
amount.
=head2 to_string
Guess!
=head1 AUTHOR
Cory Watson <gphat@cpan.org>
=head1 COPYRIGHT & LICENSE
You can redistribute and/or modify this code under the same terms as Perl
itself.
|