X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ%2FMod%2FClip.pm;h=69c401edf70b84a4ca7a10bff2d343f24e2d78e5;hb=af7d6a5aef3bf5fec0c187b3a13a14adc88251fd;hp=5fdac3d55431eecb7a474378df17eedf72a3d86e;hpb=e8f0879ade07eed4f58cd52c0771f4e1ecc90b09;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/lib/LaTeX/TikZ/Mod/Clip.pm b/lib/LaTeX/TikZ/Mod/Clip.pm index 5fdac3d..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::API 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;