summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-10-15 22:37:32 +0000
committerKarl Berry <karl@freefriends.org>2006-10-15 22:37:32 +0000
commit237df1eb06d422ff243a05b9a25501ba287681c1 (patch)
tree4cc4f2032474921cb986d1ca63b3cf9a267b480a /Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
parent15e21b5bab66eca251ac48fdc052126505428d4e (diff)
pgf/tikz 1.09 big update (13oct06)
git-svn-id: svn://tug.org/texlive/trunk@2332 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex95
1 files changed, 61 insertions, 34 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
index 707c1708789..2eebc7d6035 100644
--- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
@@ -1,10 +1,13 @@
-\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreshade.code.tex,v 1.3 2005/07/17 22:34:19 tantau Exp $
-
-% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+% Copyright 2006 by Till Tantau
+%
+% This file may be distributed and/or modified
%
-% This program can be redistributed and/or modified under the terms
-% of the GNU Public License, version 2.
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/generic/pgf/licenses/LICENSE for more details.
+\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreshade.code.tex,v 1.6 2006/10/11 15:22:25 tantau Exp $
%
% Parsing functions
@@ -17,16 +20,16 @@
\edef\temp{{\pgf@rgbconv}}%
\expandafter\pgf@@parsefunc\temp}
\def\pgf@@parsefunc#1{%
- \let\pgf@bounds=\@empty%
- \let\pgf@funcs=\@empty%
- \let\pgf@psfuncs=\@empty%
- \let\pgf@encode=\@empty%
- \let\pgf@sys@shading@ranges=\@empty%
+ \let\pgf@bounds=\pgf@empty%
+ \let\pgf@funcs=\pgf@empty%
+ \let\pgf@psfuncs=\pgf@empty%
+ \let\pgf@encode=\pgf@empty%
+ \let\pgf@sys@shading@ranges=\pgf@empty%
\pgf@sys@shading@range@num=0\relax%
\pgf@parsefirst[#1; ]%
\pgf@parselastdom[#1; ]%
\pgf@parsemid[#1; ]%
- \ifx\pgf@bounds\@empty%
+ \ifx\pgf@bounds\pgf@empty%
\edef\pgf@pdfparseddomain{0 1}%
\edef\pgf@pdfparsedfunction{\pgf@singlefunc\space}%
\else%
@@ -51,7 +54,7 @@
\edef\pgf@prevcolor{\pgf@rgb}%
\edef\pgf@firstcolor{\pgf@rgb}}
\def\pgf@parselastdom[rgb(#1)=(#2,#3,#4); {%
- \@ifnextchar]{%
+ \pgf@ifnextchar]{%
\setlength\pgf@x{#1}%
\edef\pgf@sys@shading@end@pos{\the\pgf@x}%
\pgf@max=\pgf@x\relax%
@@ -59,11 +62,11 @@
\edef\pgf@domb{\pgf@sys@tonumber{\pgf@x}}%
\pgf@getrgbtuplewithmixin{#2}{#3}{#4}%
\edef\pgf@sys@shading@end@rgb{\pgf@sys@rgb}%
- \@gobble}{\pgf@parselastdom[}}
+ \pgf@gobble}{\pgf@parselastdom[}}
\def\pgf@parsemid[rgb(#1)=(#2,#3,#4); {\pgf@parserest[}
\def\pgf@parserest[rgb(#1)=(#2,#3,#4); {%
\advance\pgf@sys@shading@range@num by1\relax%
- \@ifnextchar]{%
+ \pgf@ifnextchar]{%
\pgf@getrgbtuplewithmixin{#2}{#3}{#4}%
\edef\pgf@singlefunc{\space%
<< /FunctionType 2 /Domain [0 1] /C0
@@ -76,7 +79,7 @@
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@rgb}}}%
\edef\pgf@sys@prevpos{\the\pgf@x}%
\let\pgf@sys@prevcolor=\pgf@sys@rgb%
- \@gobble}{%
+ \pgf@gobble}{%
\setlength\pgf@x{#1}%
\pgf@getrgbtuplewithmixin{#2}{#3}{#4}%
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@rgb}}}%
@@ -98,7 +101,7 @@
\def\pgf@getrgbtuplewithmixin#1#2#3{%
\definecolor{pgfshadetemp}{rgb}{#1,#2,#3}%
- \@ifundefined{applycolormixins}{}{\applycolormixins{pgfshadetemp}}%
+ \pgf@ifundefined{applycolormixins}{}{\applycolormixins{pgfshadetemp}}%
\extractcolorspec{pgfshadetemp}{\pgf@tempcolor}%
\expandafter\convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}%
\expandafter\pgf@getrgb@@\pgf@rgbcolor!}
@@ -113,15 +116,15 @@
\pgf@converttorgb#1]%
}
\def\pgf@converttorgb{%
- \@ifnextchar]{\@gobble}%done!
+ \pgf@ifnextchar]{\pgf@gobble}%done!
{%
- \@ifnextchar;{\pgf@grabsemicolor}%
+ \pgf@ifnextchar;{\pgf@grabsemicolor}%
{%
- \@ifnextchar r{\pgf@grabrgb}%
+ \pgf@ifnextchar r{\pgf@grabrgb}%
{%
- \@ifnextchar g{\pgf@grabgray}%
+ \pgf@ifnextchar g{\pgf@grabgray}%
{%
- \@ifnextchar c{\pgf@grabcolor}%
+ \pgf@ifnextchar c{\pgf@grabcolor}%
{\PackageError{pgfshade}{Illformed shading
specification}{}\pgf@converttorgb}%
}%
@@ -171,15 +174,15 @@
% The following bar is 2cm long: \pgfuseshading{redtogreentoblue}.
% \end{document}
-\def\pgfdeclarehorizontalshading{\@ifnextchar[\pgf@declarehorizontalshading{\pgf@declarehorizontalshading[]}}%
+\def\pgfdeclarehorizontalshading{\pgf@ifnextchar[\pgf@declarehorizontalshading{\pgf@declarehorizontalshading[]}}%
\def\pgf@declarehorizontalshading[#1]#2#3#4{%
\expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}%
- \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\@empty%
+ \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\pgf@empty%
\pgfsys@horishading{#2}{#3}{#4}%
\else%
\expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@horishading}%
\expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}%
- \expandafter\let\csname @pgfshading#2!\endcsname=\@empty%
+ \expandafter\let\csname @pgfshading#2!\endcsname=\pgf@empty%
\fi}
@@ -200,15 +203,15 @@
% The following bar is 2cm high: \pgfuseshading{redtogreentoblue}.
% \end{document}
-\def\pgfdeclareverticalshading{\@ifnextchar[\pgf@declareverticalshading{\pgf@declareverticalshading[]}}%
+\def\pgfdeclareverticalshading{\pgf@ifnextchar[\pgf@declareverticalshading{\pgf@declareverticalshading[]}}%
\def\pgf@declareverticalshading[#1]#2#3#4{%
\expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}%
- \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\@empty%
+ \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\pgf@empty%
\pgfsys@vertshading{#2}{#3}{#4}%
\else%
\expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@vertshading}%
\expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}%
- \expandafter\let\csname @pgfshading#2!\endcsname=\@empty%
+ \expandafter\let\csname @pgfshading#2!\endcsname=\pgf@empty%
\fi}
@@ -242,15 +245,15 @@
% The following ball has diameter 3cm: \pgfuseshading{redtogreentoblue}.
% \end{document}
-\def\pgfdeclareradialshading{\@ifnextchar[\pgf@declareradialshading{\pgf@declareradialshading[]}}%
+\def\pgfdeclareradialshading{\pgf@ifnextchar[\pgf@declareradialshading{\pgf@declareradialshading[]}}%
\def\pgf@declareradialshading[#1]#2#3#4{%
\expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}%
- \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\@empty%
+ \expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\pgf@empty%
\pgfsys@radialshading{#2}{#3}{#4}%
\else%
\expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@radialshading}%
\expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}%
- \expandafter\let\csname @pgfshading#2!\endcsname=\@empty%
+ \expandafter\let\csname @pgfshading#2!\endcsname=\pgf@empty%
\fi}
@@ -266,19 +269,19 @@
\def\pgfuseshading#1{%
\edef\pgf@shadingname{@pgfshading#1}%
\pgf@tryextensions{\pgf@shadingname}{\pgfalternateextension}%
- \expandafter\@ifundefined\expandafter{\pgf@shadingname}%
+ \expandafter\pgf@ifundefined\expandafter{\pgf@shadingname}%
{\PackageError{pgfshade}{Undefined shading "#1"}{}}%
{%
{%
\globalcolorsfalse%
\def\pgf@shade@adds{}%
- \@ifundefined{pgf@deps\pgf@shadingname}%
+ \pgf@ifundefined{pgf@deps\pgf@shadingname}%
{}%
{%
\edef\@list{\csname pgf@deps\pgf@shadingname\endcsname}%
\@for\@temp:=\@list\do{%
{%
- \@ifundefined{applycolormixins}{}{\applycolormixins{\@temp}}%
+ \pgf@ifundefined{applycolormixins}{}{\applycolormixins{\@temp}}%
\extractcolorspec{\@temp}{\pgf@tempcolor}%
\expandafter\convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}%
\xdef\pgf@shade@adds{\pgf@shade@adds,\pgf@rgbcolor}%
@@ -286,7 +289,7 @@
}%
}%
\expandafter\pgf@strip@shadename\pgf@shadingname!!%
- \@ifundefined{@pgfshading\pgf@basename\pgf@shade@adds!}%
+ \pgf@ifundefined{@pgfshading\pgf@basename\pgf@shade@adds!}%
{%
{%
\expandafter\def\expandafter\@temp\expandafter{\csname pgf@func\pgf@shadingname\endcsname}%
@@ -352,6 +355,9 @@
% completely covers the path. Then the path will be used (locally) for
% clipping and the shading is drawn.
%
+% In addition to the rotation, any transformation set by the
+%\pgfsetadditionalshadetransform will also be applied.
+%
% After all this, the path can still be used for the normal
% stroking/clipping operations.
%
@@ -400,10 +406,31 @@
\pgfsys@transformcm%
{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}%
{\pgf@sys@tonumber{\pgf@xa}}{\pgf@sys@tonumber{\pgf@y}}{0pt}{0pt}%
+ \ifx\pgf@shade@extra@transform\pgf@empty%
+ \else%
+ \pgflowlevel{\pgf@shade@extra@transform}%
+ \fi%
\pgfuseshading{#1}%
\pgfsys@endscope%
\endgroup%
\fi%
}
+
+% Additionally transform shade paths
+%
+% #1 = Transformation code that is used in addition to the normal
+% shading transformation.
+%
+% Example:
+%
+% \pgfsetadditionalshadetransform{\pgftransformrotate{30}}
+
+\def\pgfsetadditionalshadetransform#1{\def\pgf@shade@extra@transform{#1}}
+\let\pgf@shade@extra@transform=\pgf@empty
+
+
+
+
+
\endinput