__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
},
);
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
require LaTeX::TikZ::Mod::Pattern; # pattern
}
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
=> from 'Str'
=> via { LaTeX::TikZ::Mod::Raw->new(content => $_) };
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
with 'LaTeX::TikZ::Mod';
+=head1 ATTRIBUTES
+
+=head2 C<clip>
+
+The path that specifies the clipped area.
+
+=cut
+
has clip => (
is => 'ro',
does => 'LaTeX::TikZ::Set::Op',
scale => 1,
);
+=head1 METHODS
+
+=head2 C<tag>
+
+=cut
+
sub tag { ref $_[0] }
+=head2 C<cover>
+
+=cut
+
my $get_tc = do {
my %tc;
$old->path($default_formatter) eq $new->path($default_formatter);
}
+=head2 C<declare>
+
+=cut
+
sub declare { }
+=head2 C<apply>
+
+=cut
+
sub apply {
my ($self) = @_;
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
with 'LaTeX::TikZ::Mod';
+=head1 ATTRIBUTES
+
+=head2 C<color>
+
+=cut
+
has 'color' => (
is => 'ro',
isa => 'Str',
required => 1,
);
+=head1 METHODS
+
+=head2 C<tag>
+
+=cut
+
sub tag { ref $_[0] }
+=head2 C<cover>
+
+=cut
+
sub cover { $_[0]->color eq $_[1]->color }
+=head2 C<declare>
+
+=cut
+
sub declare { }
+=head2 C<apply>
+
+=cut
+
sub apply { 'color=' . $_[0]->color }
LaTeX::TikZ::Interface->register(
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
with 'LaTeX::TikZ::Mod';
+=head1 ATTRIBUTES
+
+=head2 C<color>
+
+=cut
+
has 'color' => (
is => 'ro',
isa => 'Str',
required => 1,
);
+=head1 METHODS
+
+=head2 C<tag>
+
+=cut
+
sub tag { ref $_[0] }
+=head2 C<cover>
+
+=cut
+
sub cover { $_[0]->color eq $_[1]->color }
+=head2 C<declare>
+
+=cut
+
sub declare { }
+=head2 C<apply>
+
+=cut
+
sub apply { 'fill=' . $_[0]->color }
LaTeX::TikZ::Interface->register(
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
use Any::Moose 'Util::TypeConstraints';
+=head1 ATTRIBUTES
+
+=head2 C<type>
+
+=cut
+
has 'type' => (
is => 'ro',
isa => enum([ qw/clip layer raw/ ]),
required => 1,
);
+=head2 C<content>
+
+=cut
+
has 'content' => (
is => 'ro',
isa => 'Str',
=> from 'Str'
=> via { LaTeX::TikZ::Mod::Formatted->new(type => 'raw', content => $_) };
+=head1 METHODS
+
+=head2 C<tag>
+
+=cut
+
sub tag {
my ($self) = @_;
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
use Any::Moose 'Util::TypeConstraints';
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
with 'LaTeX::TikZ::Mod';
+=head1 ATTRIBUTES
+
+=head2 C<name>
+
+=cut
+
has 'name' => (
is => 'ro',
isa => 'Str',
required => 1,
);
+=head2 C<above>
+
+=cut
+
subtype 'LaTeX::TikZ::Mod::LevelList'
=> as 'ArrayRef[LaTeX::TikZ::Mod::Layer]';
sub above { @{$_[0]->_above} }
+=head2 C<below>
+
+=cut
+
has '_below' => (
is => 'ro',
isa => 'LaTeX::TikZ::Mod::LevelList',
builder => '_build_score',
);
+=head1 METHODS
+
+=cut
+
my %layers;
around 'new' => sub {
delete $layers{$self->name};
}
+=head2 C<tag>
+
+=cut
+
sub tag {
my ($self) = @_;
ref($self) . '/' . $self->name;
}
+=head2 C<cover>
+
+=cut
+
sub cover { $_[0]->name eq $_[1]->name }
+=head2 C<score>
+
+=cut
+
{
our %score;
$score{$name}
}
+=head2 C<declare>
+
+=cut
+
sub declare {
shift;
}
}
+=head2 C<apply>
+
+=cut
+
sub apply {
my ($self) = @_;
inline_constructor => 0,
);
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
with 'LaTeX::TikZ::Mod';
+=head1 ATTRIBUTES
+
+=head2 C<template>
+
+=cut
+
has 'template' => (
is => 'ro',
isa => 'ArrayRef[Str]',
default => sub { +{ } },
);
+=head1 METHODS
+
+=head2 C<name>
+
+=cut
+
sub name {
my ($pat, $tikz) = @_;
width => sub { sprintf '%0.1fpt', $_[1]->thickness($_[2]) },
);
+=head2 C<tag>
+
+=cut
+
sub tag { ref $_[0] }
+=head2 C<cover>
+
+=cut
+
sub cover { 1 }
+=head2 C<declare>
+
+=cut
+
sub declare {
my ($pat, $tikz) = @_;
return @$template;
}
+=head2 C<apply>
+
+=cut
+
sub apply { 'fill', 'pattern=' . $_[0]->name($_[1]) }
LaTeX::TikZ::Interface->register(
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
use Any::Moose 'Util::TypeConstraints';
+=head1 RELATIONSHIPS
+
+This class inherits the L<LaTeX::TikZ::Mod::Pattern> class and its L<LaTeX::TikZ::Mod::Pattern/tag>, L<LaTeX::TikZ::Mod::Pattern/cover>, L<LaTeX::TikZ::Mod::Pattern/declare> and L<LaTeX::TikZ::Mod::Pattern/apply> methods.
+
+=cut
+
extends 'LaTeX::TikZ::Mod::Pattern';
+=head1 ATTRIBUTES
+
+=head2 C<dot_width>
+
+=cut
+
has 'dot_width' => (
is => 'ro',
isa => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
default => 1,
);
+=head2 C<space_width>
+
+=cut
+
has 'space_width' => (
is => 'ro',
isa => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod::Pattern>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
use Any::Moose 'Util::TypeConstraints';
+=head1 RELATIONSHIPS
+
+This class inherits the L<LaTeX::TikZ::Mod::Pattern> class and its L</tag>, L</cover>, L<LaTeX::TikZ::Mod::Pattern/declare> and L<LaTeX::TikZ::Mod::Pattern/apply> methods.
+
+=cut
+
extends 'LaTeX::TikZ::Mod::Pattern';
+=head1 ATTRIBUTES
+
+=head2 C<direction>
+
+=cut
+
enum 'LaTeX::TikZ::Mod::Pattern::Direction' => (
'horizontal', 'vertical', 'north east', 'north west',
);
default => 'horizontal',
);
+=head2 C<line_width>
+
+=cut
+
has 'line_width' => (
is => 'ro',
isa => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
default => 1,
);
+=head2 C<space_width>
+
+=cut
+
has 'space_width' => (
is => 'ro',
isa => subtype('Num' => where { LaTeX::TikZ::Tools::numcmp($_, 0) >= 0 }),
$class->$orig(%args);
};
+=head1 METHODS
+
+=head2 C<tag>
+
+=cut
+
sub tag { join '/', ref $_[0], $_[0]->direction }
+=head2 C<cover>
+
+=cut
+
sub cover {
my ($this, $other) = @_;
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod::Pattern>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
with 'LaTeX::TikZ::Mod';
+=head1 ATTRIBUTES
+
+=head2 C<content>
+
+=cut
+
has 'content' => (
is => 'ro',
isa => 'Str',
required => 1,
);
+=head1 METHODS
+
+=head2 C<tag>
+
+=cut
+
sub tag {
my ($self) = @_;
ref($self) . '/' . $self->content;
}
+=head2 C<cover>
+
+=cut
+
sub cover { 1 }
+=head2 C<declare>
+
+=cut
+
sub declare { }
+=head2 C<apply>
+
+=cut
+
sub apply { $_[0]->content }
LaTeX::TikZ::Interface->register(
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
use Any::Moose;
+=head1 RELATIONSHIPS
+
+This class consumes the L<LaTeX::TikZ::Mod> role, and as such implements the L</tag>, L</cover>, L</declare> and L</apply> methods.
+
+=cut
+
with 'LaTeX::TikZ::Mod';
+=head1 ATTRIBUTES
+
+=head2 C<width>
+
+=cut
+
has 'width' => (
is => 'ro',
isa => 'Int',
required => 1,
);
+=head1 METHODS
+
+=head2 C<tag>
+
+=cut
+
sub tag { ref $_[0] }
+=head2 C<cover>
+
+=cut
+
sub cover { LaTeX::TikZ::Tools::numeq($_[0]->width, $_[1]->width) }
+=head2 C<declare>
+
+=cut
+
sub declare { }
+=head2 C<apply>
+
+=cut
+
sub apply { sprintf 'line width=%0.1fpt', $_[1]->thickness($_[0]->width) }
LaTeX::TikZ::Interface->register(
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Mod>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
)
}
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
},
);
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
},
);
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set>, L<LaTeX::TikZ::Set::Op>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
add
);
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
[ "\\draw " . $set->path(@_) . ' ;' ];
}
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>, L<LaTeX::TikZ::Set::Mutable>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
__PACKAGE__->meta->make_immutable;
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>, L<LaTeX::TikZ::Set::Op>, L<LaTeX::TikZ::Set::Mutable>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
find_type_constraint($class);
}
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.