X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ%2FFormatter.pm;h=b9a6e10de4e7aae925e04899cc2411440a0d73ee;hb=fe29b62538288c70e9eb569d16593167f938fb8d;hp=6592b3833f12da2950b7dd690f14a810739a5dd7;hpb=c314e50ea7c67844e6cf5f4d1431d8bf41a39f1a;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/lib/LaTeX/TikZ/Formatter.pm b/lib/LaTeX/TikZ/Formatter.pm index 6592b38..b9a6e10 100644 --- a/lib/LaTeX/TikZ/Formatter.pm +++ b/lib/LaTeX/TikZ/Formatter.pm @@ -51,8 +51,9 @@ has 'height' => ( ); has 'origin' => ( - is => 'ro', - does => 'Maybe[LaTeX::TikZ::Point]', + is => 'ro', + isa => 'Maybe[LaTeX::TikZ::Point::Autocoerce]', + coerce => 1, ); my $find_mods; @@ -62,13 +63,11 @@ $find_mods = do { Sub::Name::subname('find_mods' => sub { my ($set, $layers, $others) = @_; - if ($set->isa('LaTeX::TikZ::Set::Mod')) { - for ($set->mods) { - if ($_->isa('LaTeX::TikZ::Mod::Layer')) { - push @$layers, $_; - } else { - push @$others, $_; - } + for ($set->mods) { + if ($_->isa('LaTeX::TikZ::Mod::Layer')) { + push @$layers, $_; + } else { + push @$others, $_; } } @@ -99,7 +98,12 @@ sub render { my $h = $tikz->height; my $canvas = ''; if (defined $w and defined $h) { - $seq->clip(Tikz->rectangle(Tikz->point(0) => [ $w, $h ])); + require LaTeX::TikZ::Set::Rectangle; + $seq->clip(LaTeX::TikZ::Set::Rectangle->new( + from => 0, + width => $w, + height => $h, + )); $_ = $tikz->len($_) for $w, $h; $canvas = ",papersize={$w,$h},body={$w,$h}"; } @@ -156,6 +160,12 @@ sub thickness { 0.8 * $width * ($tikz->scale / 5); } +use LaTeX::TikZ::Interface formatter => sub { + shift; + + __PACKAGE__->new(@_); +}; + __PACKAGE__->meta->make_immutable; =head1 AUTHOR