diff options
author | Karl Berry <karl@freefriends.org> | 2018-08-21 21:47:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-08-21 21:47:21 +0000 |
commit | 264fd35aafd09737359fce67fd7a048a44221303 (patch) | |
tree | b6379bfde8ac14d948d202b1580dd76ac9e30e59 /Master/texmf-dist/tex | |
parent | d651e84fcb7ac24f9677177e6ea57de7eebc083f (diff) |
pgf-blur (21aug18)
git-svn-id: svn://tug.org/texlive/trunk@48446 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex | 88 |
1 files changed, 80 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex b/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex index 08cf823c3fa..78e6d48c099 100644 --- a/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex +++ b/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex @@ -6,6 +6,8 @@ %% %% pgf-blur.dtx (with options: `texfile') %% Copyright 2012 Martin Giese, martingi@ifi.uio.no +%% Copyright 2012 Andrew Stacey +%% Copyright 2018 Norbert Preining, norbert@preining.info %% %% This file is under the LaTeX Project Public License %% See CTAN archives in directory macros/latex/base/lppl.txt. @@ -15,11 +17,14 @@ %% -\def\fileversion{1.01} -\def\filedate{2012/04/24} +\def\fileversion{1.02} +\def\filedate{2012/12/09} \message{ v\fileversion, \filedate} \usetikzlibrary{shadows} \usetikzlibrary{calc} +\newif\ifpgfbs@invert@fading +\newcount\pgfbs@fading@count +\pgfbs@fading@count=0\relax \tikzset{ /tikz/shadow blur radius/.store in=\pgfbs@radius, /tikz/shadow blur radius=.4ex, @@ -28,6 +33,7 @@ /tikz/shadow blur extra rounding/.default=\pgfbs@radius, /tikz/shadow blur steps/.store in=\pgfbs@steps, /tikz/shadow blur steps=4, + /tikz/shadow blur invert/.is if=pgfbs@invert@fading, /tikz/shadow opacity/.store in=\pgfbs@opacity, /tikz/shadow opacity=40, /tikz/blur shadow/.style={ @@ -40,14 +46,19 @@ }, /tikz/render blur shadow/.code={ \pgfbs@savebb + \global\advance\pgfbs@fading@count by 1\relax \pgfsyssoftpath@getcurrentpath{\pgfbs@input@path}% \pgfbs@compute@shadow@bbox \pgfbs@process@rounding{\pgfbs@input@path}{\pgfbs@fadepath}% \pgfbs@apply@canvas@transform \colorlet{pstb@shadow@color}{white!\pgfbs@opacity!black}% - \pgfdeclarefading{shadowfading}{\pgfbs@paint@fading}% + \ifpgfbs@invert@fading + \pgfdeclarefading{shadowfading-\the\pgfbs@fading@count}{\pgfbs@paint@invert@fading}% + \else + \pgfdeclarefading{shadowfading-\the\pgfbs@fading@count}{\pgfbs@paint@fading}% + \fi \pgfsetfillcolor{black}% - \pgfsetfading{shadowfading}% + \pgfsetfading{shadowfading-\the\pgfbs@fading@count}% {\pgftransformshift{\pgfpoint{\pgfbs@midx}{\pgfbs@midy}}}% \pgfbs@usebbox{fill}% \pgfbs@restorebb @@ -120,10 +131,10 @@ \edef\pgfbs@maxy{\the\pgf@pathmaxy}% \pgfmathsetmacro\pgfbs@midx{0.5*(\pgfbs@minx + \pgfbs@maxx)}% \pgfmathsetmacro\pgfbs@midy{0.5*(\pgfbs@miny + \pgfbs@maxy)}% - \pgfmathsetmacro\pgfbs@minx{\pgfbs@minx - \pgfbs@radius}% - \pgfmathsetmacro\pgfbs@miny{\pgfbs@miny - \pgfbs@radius}% - \pgfmathsetmacro\pgfbs@maxx{\pgfbs@maxx + \pgfbs@radius}% - \pgfmathsetmacro\pgfbs@maxy{\pgfbs@maxy + \pgfbs@radius}% + \pgfmathsetmacro\pgfbs@minx{\pgfbs@minx - 2*\pgfbs@radius}% + \pgfmathsetmacro\pgfbs@miny{\pgfbs@miny - 2*\pgfbs@radius}% + \pgfmathsetmacro\pgfbs@maxx{\pgfbs@maxx + 2*\pgfbs@radius}% + \pgfmathsetmacro\pgfbs@maxy{\pgfbs@maxy + 2*\pgfbs@radius}% \pgfmathsetmacro\pgfbs@wd{\pgfbs@maxx - \pgfbs@minx}% \pgfmathsetmacro\pgfbs@ht{\pgfbs@maxy - \pgfbs@miny}% \pgfsyssoftpath@setcurrentpath\pgfutil@empty% @@ -149,6 +160,13 @@ \pgfsyssoftpath@flushcurrentpath% \pgfusepath{#1}% } +\def\pgfbs@usefadeandbbox#1{% + \let\pgfbs@temppath\pgfbs@fadepath + \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfbs@temppath\expandafter\expandafter\expandafter{\expandafter\pgfbs@temppath\pgfbs@shadow@bbox}% + \pgfsyssoftpath@setcurrentpath{\pgfbs@temppath}% + \pgfsyssoftpath@flushcurrentpath% + \pgfusepath{#1}% +} \def\pgfbs@apply@canvas@transform{ \pgflowlevel{ \pgftransformshift{\pgfpoint{\pgfbs@midx}{\pgfbs@midy}} @@ -161,6 +179,7 @@ } \def\pgfbs@paint@fading{ \pgfpicture + \pgfsetbaseline{\pgf@picminy}% % fix bounding box. \pgfbs@set@fading@pic@bbox % compute increments for line width and opacity @@ -207,6 +226,59 @@ \pgfbs@usefadepath{stroke} \endpgfpicture } +\def\pgfbs@paint@invert@fading{ + \pgfpicture + \pgfsetbaseline{\pgf@picminy}% + % fix bounding box. + \pgfbs@set@fading@pic@bbox + % compute increments for line width and opacity + \pgfmathsetmacro\pgfbs@op@step{50/\pgfbs@steps} + \pgfmathsetmacro\pgfbs@wth@step{4*\pgfbs@radius/(2*\pgfbs@steps-1)} + % draw the outer part of the fading, + % starting with lightest, outermost line + \pgfsetroundjoin + \pgfmathsetmacro\pgfbs@max@i{\pgfbs@steps-2} + \pgfmathsetmacro\pgfbs@wth{2*\pgfbs@radius} + \pgfmathsetmacro\pgfbs@op{0.5*\pgfbs@op@step} + \foreach \pgfbs@i in {0,...,\pgfbs@max@i} { + \pgfsetlinewidth{\pgfbs@wth pt} + \pgfsetstrokecolor{black!\pgfbs@op!pstb@shadow@color} + \pgfbs@usefadepath{stroke} + \pgfmathsetmacro\pgfbs@wth{\pgfbs@wth-\pgfbs@wth@step} + \global\let\pgfbs@wth=\pgfbs@wth + \pgfmathsetmacro\pgfbs@op{\pgfbs@op+\pgfbs@op@step} + \global\let\pgfbs@op=\pgfbs@op + } + % clip to inside of path + \scope + \pgfseteorule + \pgfbs@usefadeandbbox{clip} + % fill inside with final darkest shadow color + \pgfsetfillcolor{pstb@shadow@color} + \pgfbs@usebbox{fill} + \endscope + \scope + \pgfbs@usefadepath{clip} + % draw the inner part of the fading, + % starting with the darkest, innermost line + \pgfmathsetmacro\pgfbs@wth{2*\pgfbs@radius} + \pgfmathsetmacro\pgfbs@op{100-0.5*\pgfbs@op@step} + \foreach \pgfbs@i in {0,...,\pgfbs@max@i} { + \pgfsetlinewidth{\pgfbs@wth pt} + \pgfsetstrokecolor{black!\pgfbs@op!pstb@shadow@color} + \pgfbs@usefadepath{stroke} + \pgfmathsetmacro\pgfbs@wth{\pgfbs@wth-\pgfbs@wth@step} + \global\let\pgfbs@wth=\pgfbs@wth + \pgfmathsetmacro\pgfbs@op{\pgfbs@op-\pgfbs@op@step} + \global\let\pgfbs@op=\pgfbs@op + } + \endscope + % a final stroke to hide clip/antialiasing artifcats + \pgfsetstrokecolor{black!50!pstb@shadow@color} + \pgfsetlinewidth{0.5*\pgfbs@wth@step} + \pgfbs@usefadepath{stroke} + \endpgfpicture +} \endinput %% %% End of file `tikzlibraryshadows.blur.code.tex'. |