diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex | 494 |
1 files changed, 247 insertions, 247 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex index 500e0c7bad1..8c939d5cb41 100644 --- a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex @@ -19,8 +19,8 @@ % These should be moved. % -\def\pgfgetpath#1{\pgfsyssoftpath@getcurrentpath{#1}} -\def\pgfsetpath#1{\pgfsyssoftpath@setcurrentpath{#1}} +\def\pgfgetpath#1{\pgfsyssoftpath@getcurrentpath{#1}}% +\def\pgfsetpath#1{\pgfsyssoftpath@setcurrentpath{#1}}% % Required registers. @@ -40,10 +40,10 @@ \newdimen\pgfdecorationsegmentlength \pgfdecorationsegmentamplitude2.5pt \pgfdecorationsegmentlength10pt -\def\pgfdecorationsegmentangle{45} -\def\pgfdecorationsegmentaspect{0.5} -\def\pgfmetadecorationsegmentamplitude{2.5pt} -\def\pgfmetadecorationsegmentlength{1cm} +\def\pgfdecorationsegmentangle{45}% +\def\pgfdecorationsegmentaspect{0.5}% +\def\pgfmetadecorationsegmentamplitude{2.5pt}% +\def\pgfmetadecorationsegmentlength{1cm}% \pgfkeys{% /pgf/decoration/.code={\pgfkeys{/pgf/decoration/.cd,#1}}, @@ -58,8 +58,8 @@ end radius/.initial=2.5pt, radius/.style={start radius=#1,end radius=#1}, path has corners/.is if=pgfdecoratepathhascorners, - reverse path/.is if=pgf@decorate@inputsegmentobjects@reverse -} + reverse path/.is if=pgf@decorate@inputsegmentobjects@reverse, +}% \newif\ifpgfdecoratepathhascorners \newif\ifpgf@decorate@inputsegmentobjects@reverse @@ -105,14 +105,14 @@ #3% \let\state\pgf@orig@state% }% -} +}% -\def\pgf@decorate@state#1{\pgfutil@ifnextchar[{\pgf@decorate@@start#1}{\pgf@decorate@@start#1[]}}%} +\def\pgf@decorate@state#1{\pgfutil@ifnextchar[{\pgf@decorate@@start#1}{\pgf@decorate@@start#1[]}}%}% \def\pgf@decorate@@start#1[#2]#3{% \pgfutil@namedef{pgf@decorate@@\pgf@decorate@name @#1@options}{#2}% \pgfutil@namedef{pgf@decorate@@\pgf@decorate@name @#1@code}{#3}% -} -\long\def\pgf@mod@dec@firstofone#1{#1} +}% +\long\def\pgf@mod@dec@firstofone#1{#1}% % Test whether something is a decoration @@ -125,7 +125,7 @@ % % \pgfifdecoration{zigzag}{Exists}{Does not exist} -\def\pgfifdecoration#1#2#3{\pgfutil@ifundefined{pgf@decorate@@#1@initial}{#3}{#2}} +\def\pgfifdecoration#1#2#3{\pgfutil@ifundefined{pgf@decorate@@#1@initial}{#3}{#2}}% @@ -153,13 +153,13 @@ #3% \let\state\pgf@orig@state% }% -} +}% -\def\pgf@metadecoration@state#1{\pgfutil@ifnextchar[{\pgf@metadecoration@@state#1}{\pgf@metadecoration@@state#1[]}}%} +\def\pgf@metadecoration@state#1{\pgfutil@ifnextchar[{\pgf@metadecoration@@state#1}{\pgf@metadecoration@@state#1[]}}%}% \def\pgf@metadecoration@@state#1[#2]#3{% \pgfutil@namedef{pgf@metadecoration@@\pgf@metadecoration@name @#1@options}{#2}% \pgfutil@namedef{pgf@metadecoration@@\pgf@metadecoration@name @#1@code}{#3}% -} +}% % Test whether something is a meta-decoration @@ -172,7 +172,7 @@ % % \pgfifmetadecoration{zigzag}{Exists}{Does not exist} -\def\pgfifmetadecoration#1#2#3{\pgfutil@ifundefined{pgf@metadecoration@@#1@initial}{#3}{#2}} +\def\pgfifmetadecoration#1#2#3{\pgfutil@ifundefined{pgf@metadecoration@@#1@initial}{#3}{#2}}% @@ -185,9 +185,9 @@ % % Decorate a path. % -% \pgfdecoratebeforecode and \pgfdecorateaftercode can be used to +% \pgfdecoratebeforecode and \pgfdecorateaftercode can be used to % execute code before and after the decoration. -% +% % #1 - the name of the decoration. % #2 - a (non-empty) path specification. % @@ -211,8 +211,8 @@ % \pgfusepath{stroke,fill} % } % \state{final}{} -% } -% +% } +% % \pgfpicture % \pgfdecoratepath{circles} % { @@ -224,7 +224,7 @@ \long\def\pgfdecoratepath#1#2{% \pgfdecoration{{#1}{\pgfdecoratedpathlength}{\pgfdecoratebeforecode}{\pgfdecorateaftercode}}% #2% - \endpgfdecoration} + \endpgfdecoration}% @@ -232,8 +232,8 @@ % \pgfdecoratecurrentpath % % Decorate the current/existing path, but (unavoidably) destroys it. -% -% \pgfdecoratebeforecode and \pgfdecorateaftercode can be used to +% +% \pgfdecoratebeforecode and \pgfdecorateaftercode can be used to % execute code before and after the decoration. % % #1 - the name of the decoration. @@ -270,7 +270,7 @@ \pgfsetpath\pgfutil@empty% \pgfdecoration{{#1}{\pgfdecoratedpathlength}{\pgfdecoratebeforecode}{\pgfdecorateaftercode}}% \pgfsetpath\pgf@decorate@currentpath% - \endpgfdecoration} + \endpgfdecoration}% @@ -281,8 +281,8 @@ % % Definitions: % -% `existing path' -% - any unsed path exsiting prior to the environment. +% `existing path' +% - any unused path existing prior to the environment. % % `decorated path' % - the path that is being decorated. @@ -295,34 +295,34 @@ % 1. Any existing path is saved. % 2. Construction commands are executed forming the decorated path. % 3. If the first command in the decorated path is not a `move to', -% the last known position from the exisiting path is inserted. -% 4. The saved existing path is reinstalled. +% the last known position from the existing path is inserted. +% 4. The saved existing path is reinstalled. % 5. The decoration automaton is executed along the decorated path. -% +% % Parameters: % % #1 - a comma separated list of decoration specifications. -% +% % A decoration specification takes the format: % % {<name>}{<distance>}{<before code>}{<after code>} % % The decoration <name> is applied to a section of the decorated -% path from the last point on the decorated path the decoration +% path from the last point on the decorated path the decoration % automaton reached to <distance> from that point. -% -% When <distance>} is parsed, the dimension +% +% When <distance>} is parsed, the dimension % \pgfdecoratedreminingdistance holds the distance remaining on the % entire decorated path, and the macro \pgfdecoratedpathlength holds -% the total length of the entire decorated path. -% After <distance> is parsed, both are set to to the value of -% <distance> for the automaton to decorate current section of the +% the total length of the entire decorated path. +% After <distance> is parsed, both are set to to the value of +% <distance> for the automaton to decorate current section of the % decorated path. % % <before code> is executed just before the decoration automaton % starts and <after code> is executed just after the automaton stops. % If <before code> or <after code> are empty, they can be omitted. -% The macros \pgfdecoratedpathfirst and \pgfdecoratedpathlast +% The macros \pgfdecoratedpathfirst and \pgfdecoratedpathlast % will be set up as the first and last points on the current section % of the decorated path. % @@ -337,7 +337,7 @@ % \pgfdecorationpath % - any unused decoration path. % -% \pgfpointdecoratedpathlast +% \pgfpointdecoratedpathlast % - the last point on the decorated path. % % Examples (require pgfdecorations library): @@ -353,9 +353,9 @@ % \pgfpathcurveto{\pgfpoint{0cm}{4cm}}{\pgfpoint{5cm}{0cm}}{\pgfpoint{5cm}{4cm}} % \endpgfdecoration % \pgfusepath{stroke} -% \endpgfpicture -% -% +% \endpgfpicture +% +% % \pgfpicture % \pgfdecoration % { @@ -396,11 +396,11 @@ % \pgfpathmoveto{\pgfpointorigin} % \pgfpathcurveto{\pgfpoint{0cm}{4cm}}{\pgfpoint{5cm}{0cm}}{\pgfpoint{5cm}{4cm}} % \endpgfdecoration -% -% \endpgfpicture -% -% -% +% +% \endpgfpicture +% +% +% % \pgfdeclaredecoration{polygons}{move}{ % \state{move}[width=7.5pt, next state=polygon]{} % \state{polygon}[width=7.5pt, next state=move] @@ -415,23 +415,23 @@ % \pgfpathmoveto{\pgfpointdecoratedpathlast} % } % } -% +% % \pgfpicture % \pgfdecoration % { % {polygons}{45pt}, % {lineto}{30pt} % {\pgfpathmoveto{\pgfpointdecoratedpathfirst}} -% { +% { % \pgfsetstrokecolor{yellow!50!orange} -% \pgfusepath{stroke} +% \pgfusepath{stroke} % }, % {polygons}{45pt}, % {lineto}{30pt} % {\pgfpathmoveto{\pgfpointdecoratedpathfirst}} -% { +% { % \pgfsetstrokecolor{green!50!blue} -% \pgfusepath{stroke} +% \pgfusepath{stroke} % }, % {polygons}{\pgfdecoratedremainingdistance} % } @@ -439,15 +439,15 @@ % \pgfpathcurveto{\pgfpoint{0cm}{4cm}}{\pgfpoint{5cm}{0cm}}{\pgfpoint{5cm}{4cm}} % \endpgfdecoration % \endpgfpicture -% -% +% +% % \pgfpicture % \pgfpathmoveto{\pgfpointorigin} % \pgfpathcurveto{\pgfpoint{0cm}{4cm}}{\pgfpoint{5cm}{0cm}}{\pgfpoint{5cm}{4cm}} % \pgfgetpath\temppath % \pgfsetstrokecolor{red} % \pgfusepath{stroke} -% +% % \pgfset{decoration text={Here is some text all the way along this curve!}} % \pgfdecoration{{text}{\pgfdecoratedremainingdistance}} % \pgfsetpath\temppath @@ -457,16 +457,16 @@ \def\pgfdecoration#1{% \begingroup% \def\pgf@decorate@decorationlist{#1}% - \pgf@decoration@env% -} + \pgf@decoration@env% +}% \def\endpgfdecoration{% \pgf@decoration@endenv% \ifx\pgfdecoratedpath\pgfutil@empty% \else% - % + % % Perform the decoration(s). - % + % \pgf@decorate@for\pgf@temp:=\pgf@decorate@decorationlist\do{% \ifx\pgf@temp\pgfutil@empty% \else% @@ -475,24 +475,24 @@ }% \fi% \pgfgetpath\pgfdecorationpath% - % + % % Take stuff outside the group. - % + % \global\let\pgf@decorate@decorationpathtemp\pgfdecorationpath% \global\let\pgf@decorate@decoratedpathtemp\pgfdecoratedpath% \global\let\pgf@decorate@existingpathtemp\pgfdecorateexistingpath% \global\let\pgfpoint@decorated@pathlasttemp\pgfpoint@decorated@pathlast% \endgroup% - % + % % Are we in LaTeX? - % + % \pgfutil@ifnextchar\@checkend{\aftergroup\pgf@decorate@installmacrosatend}% {\pgf@decorate@installmacrosatend}% -} +}% -% Enviroment \pgfmetadecoration \endpgfmetadecoration +% Environment \pgfmetadecoration \endpgfmetadecoration % % Decorate a path with decoration automatons! % @@ -502,21 +502,21 @@ % \state{line to}[width=1cm, next state=zigzag] % { % \decoration{lineto} -% \beforedecoration{\pgfpathmoveto{\pgfpointdecoratedpathfirst}} +% \beforedecoration{\pgfpathmoveto{\pgfpointdecoratedpathfirst}} % \afterdecoration % { % \pgfsetstrokecolor{black} -% \pgfusepath{stroke} +% \pgfusepath{stroke} % } % } % \state{zigzag}[width=2cm, next state=line to] % { -% \decoration{zigzag} +% \decoration{zigzag} % \beforedecoration{\pgfpathmoveto{\pgfpointdecoratedpathfirst}} % \afterdecoration % { % \pgfsetstrokecolor{red} -% \pgfusepath{stroke} +% \pgfusepath{stroke} % } % } % \state{final} @@ -526,11 +526,11 @@ % \afterdecoration % { % \pgfsetstrokecolor{black} -% \pgfusepath{stroke} +% \pgfusepath{stroke} % } % } % } -% +% % \pgfpicture % \pgfmetadecoration{fancy line} % \pgfpathmoveto{\pgfpointorigin} @@ -541,13 +541,13 @@ % \endpgfpicture % \def\pgfmetadecoration#1{% - \begingroup% + \begingroup% \let\decoration\pgf@metadecoration@decoration% \let\beforedecoration\pgf@metadecoration@beforedecoration% \let\afterdecoration\pgf@metadecoration@afterdecoration% \def\pgf@metadecoration@name{#1}% \pgf@decoration@env% -} +}% \def\endpgfmetadecoration{% \pgf@decoration@endenv% @@ -575,7 +575,7 @@ \pgf@decorate@invoke{% {\pgf@decorate@tempname}{\pgfdecoratedremainingdistance}% {\pgf@decorate@tempbefore}{\pgf@decorate@tempafter}% - }% + }% \fi% \pgfgetpath\pgfdecorationpath% % @@ -588,17 +588,17 @@ \endgroup% % % Are we in LaTeX? - % + % \pgfutil@ifnextchar\@checkend{\aftergroup\pgf@decorate@installmacrosatend}% {\pgf@decorate@installmacrosatend}% -} +}% -% Internal macro for the decoration enironment. +% Internal macro for the decoration environment. % \def\pgf@decoration@env{% \pgfgetpath\pgfdecorateexistingpath% @@ -606,15 +606,15 @@ \let\pgfdecorationpath\pgfutil@empty% \let\pgfdecoratedpath\pgfutil@empty% \let\pgfpoint@decorated@pathlast\pgfpointorigin% - \edef\pgfpoint@decorate@existingpathlast{\pgf@x\the\pgf@path@lastx\pgf@y\the\pgf@path@lasty}% - % + \edef\pgfpoint@decorate@existingpathlast{\pgf@x\the\pgf@path@lastx\pgf@y\the\pgf@path@lasty}% + % % Begin a group so transformations don't mess things up. - % - \bgroup% -} + % + \bgroup% +}% \def\pgf@decorate@path@check@moveto#1{% - \expandafter\pgf@decorate@path@@check@moveto#1\pgf@decorate@stop\pgf@decorate@@stop} + \expandafter\pgf@decorate@path@@check@moveto#1\pgf@decorate@stop\pgf@decorate@@stop}% \def\pgf@decorate@token@stop{\pgf@decorate@stop}% \def\pgf@decorate@path@@check@moveto#1#2#3#4\pgf@decorate@@stop#5#6{% @@ -626,17 +626,17 @@ \else% #6% \fi% -} +}% \def\pgf@decoration@endenv{% - \egroup% + \egroup% \pgftransformreset% - % + % % Save the existing soft path and restore the existing path. - % + % \pgfgetpath\pgfdecoratedpath% \pgfsetpath\pgfdecorateexistingpath% - % + % \ifx\pgfdecoratedpath\pgfutil@empty% \pgferror{I cannot decorate an empty path}% \else% @@ -644,7 +644,7 @@ % If the path consists of a single moveto token, make it % a very small horizontal line. % - \pgf@decorate@path@check@moveto\pgfdecoratedpath{% + \pgf@decorate@path@check@moveto\pgfdecoratedpath{% \advance\pgf@x by0.0001pt\relax% \edef\pgfdecoratedpath{% \expandafter\noexpand\pgfdecoratedpath% @@ -652,13 +652,13 @@ }% }% {}% - % + % % Remove special round tokens and get points. - % + % \pgfprocessround{\pgfdecoratedpath}{\pgfdecoratedpath}% - % + % % Parse the soft path into a series of decorated input segment objects. - % + % \pgf@decorate@parsesoftpath{\pgfdecoratedpath}{\pgf@decorate@inputsegmentobjects}% % % Setup further options @@ -670,24 +670,24 @@ \ifpgf@decorate@inputsegmentobjects@reverse% \pgf@decorate@inputsegmentobjects@reverse{\pgf@decorate@inputsegmentobjects}{\pgf@decorate@inputsegmentobjects}% \fi% - % + % \let\pgf@decorated@remainingdistance\pgf@decorate@totalpathlength% - % + % \let\pgfpoint@decorated@totalpathfirst\pgfpoint@decorated@firstparsed% \let\pgfpoint@decorated@totalpathlast\pgfpoint@decorate@lastnonmovetoparsed% - % + % \let\pgfpoint@decorated@pathfirst\pgfpoint@decorated@totalpathfirst \let\pgfpoint@decorated@pathlast\pgfpoint@decorated@totalpathlast% - % + % % Set up the first input segment. - % + % \let\pgf@decorate@currentinputsegmentobjects\pgf@decorate@inputsegmentobjects% \let\pgf@decorate@transformtoinputsegment\pgfutil@empty% \pgf@decorate@getnextinputsegmentobject\pgf@decorate@nextinputsegmentobject% \pgf@decorate@processnextinputsegmentobject% \pgf@decorate@distancetomove0pt\relax% \fi% -}% +}% @@ -697,7 +697,7 @@ \let\pgfdecoratedpath\pgf@decorate@decoratedpathtemp% \let\pgfdecorateexistingpath\pgf@decorate@existingpathtemp% \let\pgfpoint@decorated@pathlast\pgfpoint@decorated@pathlasttemp% -} +}% \let\pgfdecorationpath\pgfutil@empty \let\pgfdecoratedpath\pgfutil@empty @@ -712,8 +712,8 @@ \def\pgf@decorate@for#1:=#2\do#3{% \def\pgf@decorate@for@var{#1}% \def\pgf@decorate@for@action{#3}% - \expandafter\pgf@decorate@@for#2,\pgf@stop,} - + \expandafter\pgf@decorate@@for#2,\pgf@stop,}% + \def\pgf@decorate@@for#1,{% \ifx#1\pgf@stop% \expandafter\let\pgf@decorate@for@var\pgfutil@empty% @@ -722,7 +722,7 @@ \pgf@decorate@for@action% \expandafter\pgf@decorate@@for% \fi% -} +}% % Invoke a decoration. @@ -730,8 +730,8 @@ % #1 - {<name>}{<distance>}{<before code>}{<after code>} % \def\pgf@decorate@invoke#1{% - \pgf@decorate@@invoke#1\pgf@decorate@invoke\pgf@decorate@invoke\pgf@decorate@invoke\pgf@stop} - + \pgf@decorate@@invoke#1\pgf@decorate@invoke\pgf@decorate@invoke\pgf@decorate@invoke\pgf@stop}% + \def\pgf@decorate@@invoke#1#2#3#4#5\pgf@stop{% \pgfutil@ifundefined{pgf@decorate@@#1@initial}% {% @@ -802,7 +802,7 @@ \global\pgf@y\pgf@y% }% \edef\pgfpoint@decorated@pathlast{\pgf@x\the\pgf@x\pgf@y\the\pgf@y}% - \fi% + \fi% {% \pgftransformreset% \pgf@decorate@transformtoinputsegment% @@ -813,7 +813,7 @@ % % Execute user-defined code after decoration. % - \pgf@decorate@aftercode% + \pgf@decorate@aftercode% % % Update the input segment objects. % @@ -821,7 +821,7 @@ \let\pgf@decorate@inputsegmentobjects\pgf@decorate@inputsegmentobjects@aftersplit% \let\pgfpoint@decorated@pathfirst\pgfpoint@decorated@pathlast% }% -} +}% @@ -855,7 +855,7 @@ % \pgfpointdecoratedinputsegmentfirst % -% The first point of the current sub-path. +% The first point of the current sub-path. % \def\pgfpointdecoratedinputsegmentfirst{% {% @@ -865,11 +865,11 @@ \global\pgf@x\pgf@x% \global\pgf@y\pgf@y% }% -}% +}% % \pgfpointdecoratedinputsegmentlast % -% The final point of the current sub-path. +% The final point of the current sub-path. % \def\pgfpointdecoratedinputsegmentlast{% {% @@ -882,7 +882,7 @@ }% -\def\pgf@final@text{final} +\def\pgf@final@text{final}% % Run a normal decoration. % @@ -891,8 +891,8 @@ \ifx\pgf@decorate@current@state\pgf@final@text% \let\pgf@decorate@next\relax% \fi% - \pgf@decorate@next% -} + \pgf@decorate@next% +}% \def\pgf@decorate@do@state{% \let\pgf@decorate@next\relax% @@ -908,9 +908,9 @@ \let\pgf@decorate@next\pgf@decorate@do@code% \fi% \pgf@decorate@next% -} +}% -\def\pgf@decorate@setter{\pgfqkeys{/pgf/decoration automaton}} +\def\pgf@decorate@setter{\pgfqkeys{/pgf/decoration automaton}}% \pgf@decorate@repeatstate-1\relax @@ -937,7 +937,7 @@ \let\pgf@decorate@current@state\pgf@decorate@next@state% \fi% \pgf@decorate@run% -} +}% \pgfkeys{ /pgf/decoration automaton/width/.code=\def\pgf@decorate@width{#1}\pgf@decorate@switch@if#1 to final\pgf@stop,% @@ -958,7 +958,7 @@ }, /pgf/decoration automaton/auto end on length/.code=\pgf@decorate@auto@end{#1}, /pgf/decoration automaton/auto corner on length/.code=\pgf@decorate@auto@corner{#1}, -} +}% \def\pgf@decorate@auto@end#1{% \ifx\pgf@decorate@next\relax% @@ -995,7 +995,7 @@ \fi% \fi% \fi% -} +}% \def\pgf@decorate@auto@corner#1{% \ifpgfdecoratepathhascorners% @@ -1015,7 +1015,7 @@ \fi% \fi% \fi% -} +}% \def\pgf@decorate@switch@if#1to #2\pgf@stop{% \ifx\pgf@decorate@next\relax% @@ -1032,7 +1032,7 @@ \fi% \fi% \fi% -} +}% \def\pgf@decorate@switch@ifinputsegment#1to #2\pgf@stop{% \ifx\pgf@decorate@next\relax% @@ -1043,7 +1043,7 @@ \let\pgf@decorate@next\pgf@decorate@run% \fi% \fi% -} +}% @@ -1056,7 +1056,7 @@ % % \pgfsetdecorationsegmenttransformation{\pgftransformyshift{5pt}} % -\def\pgfsetdecorationsegmenttransformation#1{\def\pgf@decorate@additionaltransform{#1}} +\def\pgfsetdecorationsegmenttransformation#1{\def\pgf@decorate@additionaltransform{#1}}% \let\pgf@decorate@additionaltransform\pgfutil@empty% @@ -1064,16 +1064,16 @@ \def\pgf@metadecoration@decoration#1{% \edef\pgf@decorate@tempname{#1}% -} +}% \def\pgf@metadecoration@beforedecoration#1{% \def\pgf@decorate@tempbefore{#1}% -} +}% \def\pgf@metadecoration@afterdecoration#1{% \def\pgf@decorate@tempafter{#1}% -} +}% -\def\pgf@final@text{final} +\def\pgf@final@text{final}% % Run a meta decoration. % @@ -1082,8 +1082,8 @@ \ifx\pgf@metadecoration@current@state\pgf@final@text% \let\pgf@metadecoration@next\relax% \fi% - \pgf@metadecoration@next% -} + \pgf@metadecoration@next% +}% \def\pgf@metadecoration@do@state{% \let\pgf@metadecoration@next\relax% @@ -1104,7 +1104,7 @@ \let\pgf@metadecoration@next\pgf@metadecoration@do@code% \fi% \pgf@metadecoration@next% -} +}% \def\pgf@metadecoration@do@code{% % @@ -1128,16 +1128,16 @@ % \let\pgf@metadecoration@current@state\pgf@metadecoration@next@state% \pgf@metadecoration@run% -} +}% -\def\pgf@metadecoration@setter{\pgfqkeys{/pgf/meta-decoration automaton}} +\def\pgf@metadecoration@setter{\pgfqkeys{/pgf/meta-decoration automaton}}% \pgfkeys{ /pgf/meta-decoration automaton/width/.code=\def\pgf@metadecoration@width{#1}\pgf@metadecoration@switch@if#1 to final\pgf@stop,% /pgf/meta-decoration automaton/switch if less than/.code=\pgf@metadecoration@switch@if#1\pgf@stop,% /pgf/meta-decoration automaton/switch if input segment less than/.code=\pgf@metadecoration@switch@ifinputsegment#1\pgf@stop,% /pgf/meta-decoration automaton/next state/.store in=\pgf@metadecoration@next@state,% -} +}% \def\pgf@metadecoration@switch@if#1to #2\pgf@stop{% \ifx\pgf@metadecoration@next\relax% @@ -1147,7 +1147,7 @@ \let\pgf@metadecoration@next\pgf@metadecoration@run% \fi% \fi% -} +}% \def\pgf@metadecoration@switch@ifinputsegment#1to #2\pgf@stop{% \ifx\pgf@metadecoration@next\relax% @@ -1157,7 +1157,7 @@ \let\pgf@metadecoration@next\pgf@metadecoration@run% \fi% \fi% -} +}% @@ -1168,7 +1168,7 @@ \advance\pgfdecoratedcompleteddistance\pgf@decorate@distancetomove% \advance\pgfdecoratedremainingdistance-\pgf@decorate@distancetomove% \pgf@decorate@@movealongpath% -} +}% \def\pgf@decorate@@movealongpath{% \advance\pgfdecoratedinputsegmentcompleteddistance\pgf@decorate@distancetomove% \advance\pgfdecoratedinputsegmentremainingdistance-\pgf@decorate@distancetomove% @@ -1185,7 +1185,7 @@ \fi% \fi% \pgf@next% -} +}% \def\pgf@decorate@@@movealongpath{% % @@ -1206,9 +1206,9 @@ \pgfdecoratedremainingdistance0pt\relax% \fi% \fi% -} +}% -% Return the next input segment object in a macro +% Return the next input segment object in a macro % \def\pgf@decorate@getnextinputsegmentobject#1{% \ifx\pgf@decorate@currentinputsegmentobjects\pgfutil@empty% @@ -1218,12 +1218,12 @@ \let\pgf@next\pgf@decorate@@getnextinputsegmentobject% \fi% \pgf@next% -} +}% \def\pgf@decorate@@getnextinputsegmentobject{% - \expandafter\pgf@decorate@@@getnextinputsegmentobject\pgf@decorate@currentinputsegmentobjects\pgf@stop} + \expandafter\pgf@decorate@@@getnextinputsegmentobject\pgf@decorate@currentinputsegmentobjects\pgf@stop}% \def\pgf@decorate@@@getnextinputsegmentobject#1#2\pgf@stop{% \expandafter\def\pgf@decorate@temp{#1}% - \def\pgf@decorate@currentinputsegmentobjects{#2}} + \def\pgf@decorate@currentinputsegmentobjects{#2}}% % Process the next input segment object. % @@ -1232,7 +1232,7 @@ \let\pgf@decorate@currentinputsegmentobject\pgf@decorate@nextinputsegmentobject% \pgf@decorate@getnextinputsegmentobject\pgf@decorate@nextinputsegmentobject% % - % If the current input segment object is a moveto, execute the + % If the current input segment object is a moveto, execute the % object macro and get the next input segment object. % \pgf@decorate@is@closepath@false% @@ -1289,7 +1289,7 @@ \pgfmath@smuggleone\pgfdecoratedangletonextinputsegment% \endgroup% \let\pgfdecorationnextinputsegmentobject\pgf@decorate@temp% -} +}% % @@ -1302,15 +1302,15 @@ % % These allow comparison with \ifx using % -% \pgfdecorationcurrentinputsegment +% \pgfdecorationcurrentinputsegment % \pgfdecorationnextinputsegment % \pgfdecorationcurrentprevioussegment % -\def\pgfdecorationinputsegmentmoveto{moveto} -\def\pgfdecorationinputsegmentlineto{lineto} -\def\pgfdecorationinputsegmentcurveto{curveto} -\def\pgfdecorationinputsegmentclosepath{closepath} -\def\pgfdecorationinputsegmentlast{last} +\def\pgfdecorationinputsegmentmoveto{moveto}% +\def\pgfdecorationinputsegmentlineto{lineto}% +\def\pgfdecorationinputsegmentcurveto{curveto}% +\def\pgfdecorationinputsegmentclosepath{closepath}% +\def\pgfdecorationinputsegmentlast{last}% % Input segment object moveto. % @@ -1322,7 +1322,7 @@ \edef\pgf@decorate@lastmoveto{#1}% \def\pgfdecoratedinputsegmentlength{0pt}% \let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentmoveto% -} +}% % Input segment object lineto. % @@ -1331,8 +1331,8 @@ \def\pgf@decorate@inputsegment@first{#2}% \def\pgf@decorate@inputsegment@last{#3}% % - % Supports should be defined like this, so if treated as a curve, - % equal time steps will correspond to equal distances. + % Supports should be defined like this, so if treated as a curve, + % equal time steps will correspond to equal distances. % \pgfpointdiff{#2}{#3}% \pgf@xa\pgf@x% @@ -1346,11 +1346,11 @@ \pgf@process{#2}% \advance\pgf@x0.666666\pgf@xa% \advance\pgf@y0.666666\pgf@ya% - }% + }% \let\pgf@decorate@movealonginputsegment\pgf@decorate@movealonginputsegment@line% \let\pgf@decorate@transformtoinputsegment\pgf@decorate@transformtoinputsegment@line% \let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentlineto% -} +}% % Input segment object curveto. % @@ -1359,12 +1359,12 @@ \def\pgf@decorate@inputsegment@first{#2}% \def\pgf@decorate@inputsegment@supporta{#3}% \def\pgf@decorate@inputsegment@supportb{#4}% - \def\pgf@decorate@inputsegment@last{#5}% + \def\pgf@decorate@inputsegment@last{#5}% % \let\pgf@decorate@movealonginputsegment\pgf@decorate@movealonginputsegment@curve% \let\pgf@decorate@transformtoinputsegment\pgf@decorate@transformtoinputsegment@curve% \let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentcurveto% -} +}% % Input segment object closepath. % @@ -1376,7 +1376,7 @@ \def\pgfdecoratedinputsegmentlength{#1}% \def\pgf@decorate@inputsegment@first{#2}% \def\pgf@decorate@inputsegment@last{#3}% - % + % \pgfpointdiff{#2}{#3}% \pgf@xa\pgf@x% \pgf@ya\pgf@y% @@ -1389,19 +1389,19 @@ \pgf@process{#2}% \advance\pgf@x0.666666\pgf@xa% \advance\pgf@y0.666666\pgf@ya% - }% - % + }% + % \let\pgf@decorate@movealonginputsegment\pgf@decorate@movealonginputsegment@line% \let\pgf@decorate@transformtoinputsegment\pgf@decorate@transformtoinputsegment@line% \let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentclosepath% -} +}% % Input segment object endofinputsegments. % \def\pgf@decorate@inputsegmentobject@endofinputsegments{% \let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentlast% -} +}% @@ -1422,7 +1422,7 @@ \pgf@ya\pgf@y% \pgf@xb\pgf@decorate@inputsegmenttime pt\relax% % - % Reduce the initial time step, depending on the length + % Reduce the initial time step, depending on the length % of the path. To do: Optimise this step (should also depend on #1). % \ifdim\pgf@decorate@currentpathlength<128pt\relax% @@ -1445,7 +1445,7 @@ % % We would like to use \pgfpointcurveattime. However, we must not % overuse \pgf@process or \pgfmath stuff within this loop, - % otherwise we increase the chances of save stack overflow. + % otherwise we increase the chances of save stack overflow. % \edef\pgf@decorate@temp{% \pgf@xa\the\pgf@xa% @@ -1499,13 +1499,13 @@ \pgf@marshal% \let\pgfdecoratedangle\pgfmathresult% \fi% -} +}% % \pgfpoint@decorate@curveattime % % A `quick' version of \pgfpointcurveattime % -% No parsing and no use of \pgf@process. +% No parsing and no use of \pgf@process. % This prevents save stack build up when used inside a loop. % \def\pgfpoint@decorate@curveattime#1#2#3#4#5{% @@ -1541,7 +1541,7 @@ % Third iteration: \pgf@x=\pgf@time@t\pgf@x\advance\pgf@x by\pgf@time@s\pgf@xa% \pgf@y=\pgf@time@t\pgf@y\advance\pgf@y by\pgf@time@s\pgf@ya% -} +}% % Applies the necessary transform for a line sub-path. @@ -1551,7 +1551,7 @@ \pgfpointlineatdistance{\pgfdecoratedinputsegmentcompleteddistance}{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@last} }% \pgftransformrotate{\pgfdecoratedangle}% -} +}% % Applies the necessary transform for a curve sub-path. % @@ -1561,47 +1561,47 @@ \pgftransformcurveattime{\pgf@decorate@inputsegmenttime}% {\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@supporta}% {\pgf@decorate@inputsegment@supportb}{\pgf@decorate@inputsegment@last}% -} +}% % \pgf@decorate@parsesoftpath -% +% % Parses an instance of a soft path into intermediate line and curve -% sub-path objects which the decoration automaton can use to traverse -% the decorated path. -% -% The soft path should be well formed and only contain `primative' -% soft path tokens, that is: moveto, lineto, curvetosupporta, +% sub-path objects which the decoration automaton can use to traverse +% the decorated path. +% +% The soft path should be well formed and only contain `primative' +% soft path tokens, that is: moveto, lineto, curvetosupporta, % curvetosupportb, curveto, rectcorner, rectsize, and closepath. -% (i.e., all specialround tokens should have removed using +% (i.e., all specialround tokens should have removed using % \pgfprocessround) -% +% % The overall length of the path is also calculated and returned -% in the macro \pgfdecoratedpathlength. -% +% in the macro \pgfdecoratedpathlength. +% % Parameters: -% +% % #1 - a macro containing a well formed soft path. % #2 - a macro to store the intermediate sub-path representations. % % Example: -% +% % \pgfpathmoveto{\pgfpointorigin} % \pgfpathlineto{\pgfpoint{0pt}{12pt}} % \pgfpathlineto{\pgfpoint{12pt}{0pt}} % \pgfgetpath\softpath -% +% % \pgf@decorate@parsesoftpath{\softpath}{\parsedsoftpath} -% +% % results in: -% +% % \parsedsoftpath -> % {\pgf@decorate@inputsegmentobject@lineto{12pt}{\pgf@x 0pt\pgf@y 0pt}{\pgf@x 0pt\pgf@y 12pt}} % {\pgf@decorate@inputsegmentobject@lineto{12pt}{\pgf@x 0pt\pgf@y 12pt}{\pgf@x 12pt\pgf@y 12pt}} -% +% % \pgfdecoratedpathlength -> % 24pt % @@ -1615,7 +1615,7 @@ \let\pgf@decorate@queueinputsegmentobject\pgfutil@empty% \let\pgfpoint@decorated@firstparsed\pgfutil@empty% \expandafter\pgf@decorate@@parsesoftpath#1\pgf@stop% -} +}% \def\pgf@decorate@@parsesoftpath#1{% \ifx#1\pgf@stop% @@ -1648,7 +1648,7 @@ \fi% \fi% \fi% - \pgf@next} + \pgf@next}% \def\pgf@decorate@addtoinputsegmentobjects#1{% @@ -1667,21 +1667,21 @@ \fi% \expandafter\def\expandafter\pgf@decorate@inputsegmentobjects\expandafter% {\pgf@decorate@inputsegmentobjects{#1}}% -} +}% % Convert \pgfsyssoftpath@movetotoken{<X>}{<Y>} into the following % representation: -% +% % \pgf@decorate@inputsegmentobject@moveto{\pgf@x X\pgf@y Y} % % The moveto input segment object is not added immediately, so that % only the last of multiple movetos is inserted. -% +% \def\pgf@decorate@parsemoveto#1#2{% \def\pgf@decorate@queueinputsegmentobject{\pgf@decorate@inputsegmentobject@moveto{\pgf@x#1\pgf@y#2}}% \def\pgfpoint@decorate@lastparsed{\pgf@x#1\pgf@y#2}% \pgf@decorate@@parsesoftpath% -} +}% % Convert \pgfsyssoftpath@linetotoken{<X>}{<Y>} into the following % representation: @@ -1698,8 +1698,8 @@ \let\pgfpoint@decorate@lastnonmovetoparsed\pgfpoint@decorate@lastparsed% \expandafter\pgf@decorate@addtoinputsegmentobjects\expandafter{\pgf@decorate@temp}% \pgf@decorate@@parsesoftpath% -} - +}% + % Convert \pgfsyssoftpath@curvetosupportatoken{<Xa>}{<Ya>}...etc % into the following representation: % @@ -1717,7 +1717,7 @@ \edef\pgfpoint@decorate@lastparsed{\pgf@x#5\pgf@y#6}% \let\pgfpoint@decorate@lastnonmovetoparsed\pgfpoint@decorate@lastparsed% \pgf@decorate@@parsesoftpath% -} +}% \def\pgf@decorate@parseclosepath#1#2{% @@ -1730,7 +1730,7 @@ \edef\pgfpoint@decorate@lastparsed{\pgf@x#1\pgf@y#2}% \let\pgfpoint@decorate@lastnonmovetoparsed\pgfpoint@decorate@lastparsed% \pgf@decorate@@parsesoftpath% -} +}% % Convert \pgfsyssoftpath@rectcornertoken{<X>}{<Y>}\pgfsyssoftpath@rectsizetoken{<Xa>}{<Ya>} % into either (clockwise) @@ -1762,7 +1762,7 @@ \pgf@decorate@parsemoveto{#1}{#2}% \pgf@xa#1\relax% \pgf@ya#2\relax% - \ifpgfdecoraterectangleclockwise% + \ifpgfdecoraterectangleclockwise% \advance\pgf@ya#4% \pgf@yb\pgf@ya% \edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}% @@ -1792,14 +1792,14 @@ \advance\pgf@ya-#4% \edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}% \expandafter\pgf@decorate@parseclosepath\pgf@temp% - \fi% + \fi% % % Restore the parsing. % \let\pgf@decorate@@parsesoftpath\pgf@decorate@orig@@parsesoftpath% \edef\pgf@marshal{\noexpand\pgf@decorate@parsemoveto{\the\pgf@xb}{\the\pgf@yb}}% \pgf@marshal% -} +}% @@ -1811,15 +1811,15 @@ \def\pgf@decorate@linelength#1#2{% \pgf@process{\pgfpointdiff{#1}{#2}}% \pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}% -} +}% % \pgf@decorate@curvelength % -% Define \pgfmathresult as the length (without units) of the cubic +% Define \pgfmathresult as the length (without units) of the cubic % bezier described by #1,#2,#3 and #4. % % To approximate the length of the curve P (sort of) use: -% +% % curveLength(P,q) % Q = subdivideLeft(P); % R = subdivideRight(P); @@ -1836,9 +1836,9 @@ % Q = subdivideLeft(P); % R = subdivideRight(P); % return curveLength'(Q,q) + curveLength'(R,q); -% +% % Where q is some small value (`tolerance'). -% +% \newif\ifpgf@decorate@subdivide \def\pgf@decorate@curvelength#1#2#3#4{% % @@ -1851,8 +1851,8 @@ \advance\pgfutil@tempdimb\pgfmathresult pt\relax% \pgfmath@returnone\pgfutil@tempdimb% \endgroup% -} - +}% + \def\pgf@decorate@@curvelength#1#2#3#4{% \begingroup% \pgf@decorate@curvecordlength{#1}{#2}{#3}{#4}% @@ -1866,12 +1866,12 @@ \expandafter\pgfmath@returnone\expandafter\pgfmathresult\expandafter p\expandafter t\expandafter% \fi% \endgroup% -} +}% -\def\pgf@decorate@curvelength@tolerance{1pt} +\def\pgf@decorate@curvelength@tolerance{1pt}% \def\pgf@decorate@curvecordlength#1#2#3#4{% - % + % % Calculate the curve cord vector. % #4\relax% @@ -1892,14 +1892,14 @@ \ifdim\pgf@ya<\pgf@decorate@curvelength@tolerance\relax% \pgfmathveclen@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgf@ya}}% \pgf@decorate@subdividefalse% - \fi% + \fi% \fi% -} +}% \def\pgf@decorate@recursive@subdividecurve@left#1#2#3#4{% {% % - % The left curve (from t=0 to t=.5) + % The left curve (from t=0 to t=.5) % #1\relax% \pgfutil@tempdima\pgf@x% @@ -1924,12 +1924,12 @@ }% }% \pgf@marshal% -} +}% \def\pgf@decorate@recursive@subdividecurve@right#1#2#3#4{% {% % - % The right curve (from t=0.5 to t=1) + % The right curve (from t=0.5 to t=1) % #1\relax% \pgfutil@tempdima.125\pgf@x\pgfutil@tempdimb.125\pgf@y% @@ -1953,7 +1953,7 @@ }% }% \pgf@marshal% -} +}% % Macro to reverse a set of input segment objects. @@ -1964,7 +1964,7 @@ \def\pgf@decorate@inputsegmentobjects@reverse#1#2{% \def\pgf@decorate@path@storein{#2}% \def\pgf@decorate@inputsegments@@temp{}% - \expandafter\pgf@decorate@inputsegments@@reverse@pass@first#1\pgf@stop} + \expandafter\pgf@decorate@inputsegments@@reverse@pass@first#1\pgf@stop}% \def\pgf@decorate@inputsegments@@reverse@pass@first#1#2\pgf@stop{% \def\pgf@decorate@temp{#1}% @@ -1980,7 +1980,7 @@ \def\pgf@decorate@next{\pgf@decorate@inputsegments@@reverse@pass@first#2\pgf@stop}% \fi% \pgf@decorate@next% -} +}% \def\pgf@decorate@inputsegmentobjects@reverse@pass@second#1#2#3\pgf@stop{% \def\pgf@decorate@inputsegments@temp{#3}% \def\pgf@decorate@inputsegments@@temp{}% @@ -2010,7 +2010,7 @@ \ifx#1\pgf@decorate@inputsegmentobject@curveto% \let\pgf@decorate@next=\pgf@decorate@inputsegmentobjects@reverse@curveto% \else% - \ifx#1\pgf@decorate@inputsegmentobject@closepath% + \ifx#1\pgf@decorate@inputsegmentobject@closepath% \let\pgf@decorate@next=\pgf@decorate@inputsegmentobjects@reverse@closepath% \else% \fi% @@ -2018,8 +2018,8 @@ \fi% \fi% \fi% - \pgf@decorate@next% -} + \pgf@decorate@next% +}% \newif\ifpgf@decorate@inputsegmentobjects@reverse@moveto@waiting @@ -2038,7 +2038,7 @@ \fi% \pgf@decorate@inputsegmentobjects@reverse@moveto@waitingtrue% \pgf@decorate@path@@@reverse@pass@second% -} +}% \newif\ifpgf@decorate@inputsegmentobjects@reverse@closepath@waiting @@ -2047,7 +2047,7 @@ \def\pgf@decorate@reverse@closepath@length{#1}% \def\pgf@decorate@current@inputsegmentobject{}% \pgf@decorate@inputsegmentobjects@reverse@lineto{#1}{#2}{#3}% -} +}% \def\pgf@decorate@inputsegmentobjects@reverse@lineto#1#2#3#4{% \ifpgf@decorate@inputsegmentobjects@reverse@moveto@waiting% @@ -2070,7 +2070,7 @@ {\expandafter\pgf@decorate@current@inputsegmentobject\pgf@decorate@append@inputsegmentobject} \def\pgf@decorate@last{#2}% \pgf@decorate@path@@@reverse@pass@second#4% -} +}% \def\pgf@decorate@inputsegmentobjects@reverse@curveto#1#2#3#4#5{% \ifpgf@decorate@inputsegmentobjects@reverse@moveto@waiting% @@ -2084,7 +2084,7 @@ \fi% \def\pgf@decorate@last{#2}% \pgf@decorate@path@@@reverse@pass@second% -} +}% \def\pgf@decorate@path@@@reverse@pass@second{% \ifx\pgf@decorate@current@inputsegmentobject\pgfutil@empty% @@ -2092,7 +2092,7 @@ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter% \pgf@decorate@inputsegments@@temp\expandafter\expandafter\expandafter% {\expandafter\pgf@decorate@inputsegments@@temp\pgf@decorate@current@inputsegmentobject}% - \fi% + \fi% \pgf@decorate@path@@reverse@pass@second% }% @@ -2113,35 +2113,35 @@ % -% Simple decorations. +% Simple decorations. -\pgfdeclaredecoration{lineto}{initial}{ +\pgfdeclaredecoration{lineto}{initial}{% \state{initial}[switch if input segment less than=\pgfdecoratedremainingdistance to input segment, width=\pgfdecoratedremainingdistance] { - } + }% \state{input segment}[width=\pgfdecoratedinputsegmentlength,next state=initial] { \pgfpathlineto{\pgfpointdecoratedinputsegmentlast} - } - - \state{final}{\pgfpathlineto{\pgfpointdecoratedpathlast}} -} + }% -\pgfdeclaredecoration{moveto}{initial}{ - \state{initial}[width=\pgfdecoratedremainingdistance]{} - \state{final}{\pgfpathmoveto{\pgfpointdecoratedpathlast}} -} + \state{final}{\pgfpathlineto{\pgfpointdecoratedpathlast}}% +}% + +\pgfdeclaredecoration{moveto}{initial}{% + \state{initial}[width=\pgfdecoratedremainingdistance]{}% + \state{final}{\pgfpathmoveto{\pgfpointdecoratedpathlast}}% +}% % This decorations curves to the end along the line. -\pgfdeclaredecoration{curveto}{initial}{ +\pgfdeclaredecoration{curveto}{initial}{% \state{initial}[width=\pgfdecoratedinputsegmentlength/100] { \pgfpathlineto{\pgfpointorigin} - } - \state{final}{\pgfpathlineto{\pgfpointdecoratedpathlast}} -} + }% + \state{final}{\pgfpathlineto{\pgfpointdecoratedpathlast}}% +}% @@ -2150,7 +2150,7 @@ \let\pgfsnakeremainingdistance=\pgfdecoratedremainingdistance \let\pgfsnakecompleteddistance=\pgfdecoratedcompleteddistance -\def\pgfsnakeangle{\pgfdecoratedangle} +\def\pgfsnakeangle{\pgfdecoratedangle}% \let\pgfdeclaresnake=\pgfdeclaredecoration \let\pgfsetsnakesegmenttransformation=\pgfsetdecorationsegmenttransformation \def\pgfpathsnakesto#1#2{% @@ -2158,8 +2158,8 @@ \expandafter\pgfdecoration\expandafter{\pgf@temp}% \pgfpathlineto{#2}% \endpgfdecoration% -} -\def\pgfpathsnaketo#1#2{\pgfpathsnakesto{{#1}{\pgfsnakeremainingdistance}}{#2}} +}% +\def\pgfpathsnaketo#1#2{\pgfpathsnakesto{{#1}{\pgfsnakeremainingdistance}}{#2}}% \def\pgfpathsnakealongvector#1#2#3{% \pgf@process{#3}% \pgf@xa=\pgf@x% @@ -2171,20 +2171,20 @@ \advance\pgf@ya by\pgf@path@lasty% \edef\pgf@snake@lib@temp{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}% \pgfpathsnaketo{#1}{\pgf@snake@lib@temp}% -} +}% \let\pgfsnakesegmentamplitude=\pgfdecorationsegmentamplitude \let\pgfsnakesegmentlength=\pgfdecorationsegmentlength -\def\pgfsnakesegmentangle{\pgfdecorationsegmentangle} -\def\pgfsnakesegmentobjectlength{\pgfkeysvalueof{/pgf/decoration/shape start width}} -\def\pgfsnakesegmentaspect{\pgfdecorationsegmentaspect} +\def\pgfsnakesegmentangle{\pgfdecorationsegmentangle}% +\def\pgfsnakesegmentobjectlength{\pgfkeysvalueof{/pgf/decoration/shape start width}}% +\def\pgfsnakesegmentaspect{\pgfdecorationsegmentaspect}% \pgfset{% /pgf/segment amplitude/.style={/pgf/decoration={amplitude=#1,shape height=2*#1}}, /pgf/segment length/.style={/pgf/decoration={segment length=#1}}, /pgf/segment angle/.style={/pgf/decoration={angle=#1}}, /pgf/segment aspect/.style={/pgf/decoration={aspect=#1}}, - /pgf/segment object length/.style={/pgf/decoration={shape width=#1,radius=#1}}} + /pgf/segment object length/.style={/pgf/decoration={shape width=#1,radius=#1}}}% |