=head1 VERSION
-Version 0.01
+Version 0.02
=cut
-our $VERSION = '0.01';
+our $VERSION = '0.02';
use LaTeX::TikZ::Set::Point;
use LaTeX::TikZ::Tools;
-use Any::Moose;
-use Any::Moose 'Util::TypeConstraints';
+use Mouse;
+use Mouse::Util::TypeConstraints;
-with 'LaTeX::TikZ::Set::Op';
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Set::Path> role, and as such implements the L</path> method.
+
+=cut
+
+with 'LaTeX::TikZ::Set::Path';
+
+=head1 ATTRIBUTES
+
+=head2 C<center>
+
+A L<LaTeX::TikZ::Set::Point> object describing the center of the circle.
+
+=cut
has 'center' => (
is => 'ro',
coerce => 1,
);
-subtype 'LaTeX::TikZ::Set::Circle::Radius'
- => as 'Num'
- => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 1 }
- => message { "$_ isn't a non-negative real number" };
+=head2 C<radius>
+
+The radius of the circle as a non-negative real number.
+
+=cut
has 'radius' => (
is => 'ro',
- isa => 'LaTeX::TikZ::Set::Circle::Radius',
+ isa => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) > 0 }),
required => 1,
);
+=head1 METHODS
+
+=head2 C<path>
+
+=cut
+
sub path {
my $set = shift;
my $tikz = $_[0];
$set->center->path(@_) . ' circle (' . $tikz->len($set->radius) . ')';
}
+=head2 C<begin>
+
+=cut
+
+sub begin { $_[0]->center->begin }
+
+=head2 C<end>
+
+=cut
+
+sub end { $_[0]->center->end }
+
LaTeX::TikZ::Interface->register(
circle => sub {
shift;
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set>, L<LaTeX::TikZ::Set::Path>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
=head1 COPYRIGHT & LICENSE
-Copyright 2010 Vincent Pit, all rights reserved.
+Copyright 2010,2011,2012,2013,2014,2015 Vincent Pit, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.