X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ%2FMod%2FClip.pm;h=69c401edf70b84a4ca7a10bff2d343f24e2d78e5;hb=71e1955831ab58cb00222af090f85f01516d0cca;hp=ab68d3aebbcf14e422e2999803eddc9a192c2c15;hpb=5adf00c880491bac3bd793a07431cf161c03643f;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/lib/LaTeX/TikZ/Mod/Clip.pm b/lib/LaTeX/TikZ/Mod/Clip.pm index ab68d3a..69c401e 100644 --- a/lib/LaTeX/TikZ/Mod/Clip.pm +++ b/lib/LaTeX/TikZ/Mod/Clip.pm @@ -20,6 +20,9 @@ use Sub::Name (); use LaTeX::TikZ::Formatter; use LaTeX::TikZ::Mod::Formatted; +use LaTeX::TikZ::Interface; +use LaTeX::TikZ::Functor; + use LaTeX::TikZ::Tools; use Any::Moose; @@ -28,7 +31,7 @@ with 'LaTeX::TikZ::Mod'; has clip => ( is => 'ro', - isa => 'LaTeX::TikZ::Set::Op', + does => 'LaTeX::TikZ::Set::Op', required => 1, ); @@ -136,11 +139,20 @@ sub apply { ) } -use LaTeX::TikZ::Interface clip => sub { - shift; +LaTeX::TikZ::Interface->register( + clip => sub { + shift; - __PACKAGE__->new(clip => $_[0]); -}; + __PACKAGE__->new(clip => $_[0]); + }, +); + +LaTeX::TikZ::Functor->default_rule( + (__PACKAGE__) => sub { + my ($functor, $mod, @args) = @_; + $mod->new(clip => $mod->clip->$functor(@args)) + } +); __PACKAGE__->meta->make_immutable;