X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FLaTeX-TikZ.git;a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ%2FFunctor.pm;h=00c441a885d4a5cedcc6b3524205e7a69d29f5c8;hp=d4ba0740b96d5abd917a18a6007bc6fc06911167;hb=2f8d25c7ced8c8bc43802025240ab7d673892f5d;hpb=ccef95119764f56b5f77bd85c5199f5d375ca08e diff --git a/lib/LaTeX/TikZ/Functor.pm b/lib/LaTeX/TikZ/Functor.pm index d4ba074..00c441a 100644 --- a/lib/LaTeX/TikZ/Functor.pm +++ b/lib/LaTeX/TikZ/Functor.pm @@ -18,7 +18,32 @@ our $VERSION = '0.01'; =head1 DESCRIPTION A functor takes a L tree and clones it according to certain rules. -Rules can apply not only to L objects, but also to the L objects they contain. + +Rules can apply not only to L consumer objects, but also to the L consumer objects they contain. +The are stored as L objects. + +When the functor is called onto a set object, all its associated rules are tried successively, and the handler of the first matching rule is executed with : + +=over 4 + +=item * + +the functor object as its first argument ; + +=item * + +the current set object as its second argument ; + +=item * + +the arguments passed to the functor itself starting at the third argument. + +=back + +The handler is expected to return the new set/mod that will in the resulting set tree. +If the new set is different from the original, then the functor is applied to all the mods of the set, and their cloned version are added to the new set. + +If no matching rule is found, the object is returned as-is. =cut @@ -209,7 +234,7 @@ sub default_rule { =head1 SEE ALSO -L. +L, L. =head1 AUTHOR