diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/basiclayer')
17 files changed, 1366 insertions, 645 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex index 11d0ec2cda1..b83c41b3f96 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseimage.code.tex,v 1.5 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseimage.code.tex,v 1.7 2007/05/31 10:31:50 tantau Exp $ % Declare an image @@ -235,4 +235,172 @@ + + + + + +% The external read/write mechanism is used as follows: +% +% In your document, you put a number or all of your pgfpicture (or +% tikzpicture) environments inside a pair of \beginpgfexternal and +% \endpgfexternal. The \beginpgfexternal gets one parameter called the +% graphics name. +% +% Once this is done, the next step is to declare the names of your +% graphics in the document at the beginning using the +% \pgfdeclaregraphicname command. +% +% Now, when you typeset your document, each time a \beginpgfexternal +% command is encountered, it will be checked whether the corresponding +% graphics file exists. If this is the case, it will be included and +% the code between \beginpgfexternal and \endpgfexternal is +% ignored. Otherwise, the code is executed normally. +% +% Things change when you run tex on your file with the \jobname set to +% the name of a decalred graphics name. In this case, only your +% graphic will be typeset, the rest of the document will be "thrown away". +% To be more precise, everything is gobbled up to the beginning +% of the first \beginpgfexternal with the given graphics name. Then, +% the content of the "environment" is put in a box (this "environment" +% need not contain a graphics, it may contain anything that can be put +% in a box). Then a single page is output whose size is exactly the +% size of the picture. +% +% So, once you have run tex repeatedly, each time with the jobname set +% to each of the graphics, you can then run tex on the whole document +% and this will cause all graphics to be included rather than begin +% typeset. +% +% Finally, once all the graphics have been created, you can also say +% \input pgfexternal.tex instead of including pgf/TikZ. + + + +% Tells pgf which jobname is the name of the real file +% +% #1 = name +% +% Description: +% +% This command is used to tell pgf that the file named #1 should be +% typeset normally. If \jobname is not equal to #1, only +% the graphic called \jobname will be typeset. +% +% Example: +% +% \pgfrealjobname{survey} + +\def\pgfrealjobname#1{% + \edef\pgf@tempa{\expandafter\string\csname #1\endcsname}% + \edef\pgf@tempb{\expandafter\string\csname\jobname\endcsname}% + \ifx\pgf@tempa\pgf@tempb% + \else% + \pgf@external@grabshipouttrue + \fi% +} + + +\newif\ifpgf@external@grabshipout +\newbox\pgfexternal@startupbox + +\AtBeginDocument{% + \ifpgf@external@grabshipout + \global\let\pgfexternal@originalshipout=\shipout% + \global\def\shipout{\setbox\pgfpic=} + \maxdeadcycles=10000% + % Ok, gather everything we have seen up to now in a box. This box + % will contain any specials that have been used. + {% + \output{\global\setbox\pgfexternal@startupbox=\vbox{\csname @begindvi\endcsname\unvbox255}}% + \hbox{}\eject% + }% + \fi% +} + + +% "Environment" for an external graphic. +% +% #1 = graphic name +% +% Example: +% +% \beginpgfgraphicnamed{main-graphic2} +% \begin{tikzpicture} +% ... +% \end{tikzpicture} +% \endpgfgraphicnamed + +\def\pgf@externalbegin#1{% + % First, check whether we wish to grab this graphic: + \let\pgf@next=\pgf@external@normal% + \ifpgf@external@grabshipout + \edef\pgf@tempa{\expandafter\string\csname #1\endcsname}% + \edef\pgf@tempb{\expandafter\string\csname\jobname\endcsname}% + \ifx\pgf@tempa\pgf@tempb% + \let\pgf@next=\pgf@external@grab% + \fi% + \fi% + \pgf@next{#1}% +} + + +\AtBeginDocument{ + \let\beginpgfgraphicnamed=\pgf@externalbegin% overwrite definition of pgfexternal.tex if necessary + \let\endpgfgraphicnamed=\unskip +} + + +% Normal operation: Include an external graphic instead of the +% picture, if such an external picture exists. +\def\pgf@external@normal#1{% + \let\pgf@filename=\pgfutil@empty% + \expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#1}% + \ifx\pgf@filename\pgfutil@empty% + % Ok, no such image... Just typeset the picture normally. + \let\pgf@next=\relax% + \else% + \let\pgf@next=\pgf@replacepicturebygraphic% + \fi% + \pgf@next% +} + +\long\def\pgf@replacepicturebygraphic#1\endpgfgraphicnamed{\includegraphics{\pgf@filename}\unskip} + + +% Grab operation: If jobname matches the graphic name, typeset this +% picture normall. + +\def\pgf@external@grab#1{% + \setbox\pgfpic=\hbox\bgroup\bgroup% + \let\endpgfgraphicnamed=\pgf@externalend% +} + +\def\pgf@externalend{% + \unskip\egroup\egroup% + {% + \parindent0pt% + \leftmargin0pt% + \rightmargin0pt% + \dimen0\ht\pgfpic% + \advance\dimen0\dp\pgfpic% + \pgfsys@papersize{\the\wd\pgfpic}{\the\dimen0}% + \setbox0=\vbox{% + \kern -1truein% + \hbox{% + \kern -1truein% + \hbox to0pt{% + \wd\pgfexternal@startupbox=0pt% + \ht\pgfexternal@startupbox=0pt% + \dp\pgfexternal@startupbox=0pt% + \box\pgfexternal@startupbox% + \pgfsys@atbegindocument\hss}% + \box\pgfpic% + \kern 1truein}% + \kern1truein}% + \pgfexternal@originalshipout\box0% + }% +} + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasematrix.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasematrix.code.tex new file mode 100644 index 00000000000..d72f2206aa7 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasematrix.code.tex @@ -0,0 +1,634 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 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. + +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasematrix.code.tex,v 1.11 2007/03/09 17:49:32 tantau Exp $ + + +\newif\ifpgfmatrix +\newif\ifpgf@matrix@correct@call + +\newif\ifpgf@matrix@fixed + +\newcount\pgfmatrixcurrentrow + +\newcount\pgfmatrixcurrentcolumn +\newcount\pgf@matrix@numberofcolumns + +\let\pgf@matrix@cell=\pgfnodeparttextbox % alias +\let\pgf@matrix@box=\pgf@matrix@cell % alias + + +% Sets the default row or column sep +% +% #1 = default row or column sep list +% +% Description: +% +% Sets the macro \pgfmatrixrowsep or \pgfmatrixcolumnsep to #1. +% +% Example: +% +% \pgfsetmatrixrowsep{5pt} + +\def\pgfsetmatrixrowsep#1{\def\pgfmatrixrowsep{#1}} +\def\pgfsetmatrixcolumnsep#1{\def\pgfmatrixcolumnsep{#1}} + +\def\pgfmatrixrowsep{0pt} +\def\pgfmatrixcolumnsep{0pt} + + + +% The pgfmatrix command creates a node that contains a matrix. Like +% the \pgfnode command, it is to be used inside a pgfpicture +% environment. +% +% #1 = shape type +% #2 = anchor +% #3 = name for later reference +% #4 = path usage command +% #5 = inner shift +% #6 = startup code +% #7 = the matrix code (may contain verbatim stuff) +% +% Description: +% +% This command creates a node that contains a matrix. For +% each cell of the matrix, drawing commands may be given. These +% commands will create a cell picture and a bounding box is computed +% for each cell picture. The cell picture is then placed inside the +% cell. The position inside the cell is computed according to the +% following rules: +% +% 1. In each column, the origins of the cell pictures are all on a +% vertical line. +% 2. In each row, the origins of the cell pictures are all on a +% horizontal line. +% 3. All cells in the same row have the same height and depth. +% 4. All cells in the same column have the same width. +% 5. The size of cells are chosen minimal such that the boxes fit into +% the cells and still meet the above requirement. +% +% Next, the whole resulting matrix, which is given as #7, is placed +% inside a node whose name is given as #3, whose shape is #1, and +% whose anchor is #1. This means that the resulting node is shifted +% such that the given anchor lies at the origin. Then, as for a normal +% node, the #4 path usage command is used for the node. +% +% The parameter #5 is an additional negative shift for the node. Normally, such +% a shift could be given beforehand (that is, the shift could be +% preapplied to the current transformation matrix). However, when #5 +% is evaluated, you can refer to temporary positions of nodes inside +% the matrix. In detail, the following happens: When the matrix has +% been typeset, all nodes in the matrix temporarily get assigned their +% positions in the matrix box. The origin of this coordinate system is +% at the left baseline end of the matrix box, which corresponds to the +% text anchor. The position #5 is then interpreted inside this +% coordinate system and then used for shifting. +% +% The idea behind using the parameter #5 is the following: If you +% specify "text" as anchor #2 and specify \pgfpointanchor{inner +% node}{some anchor} for parameter #5, where inner node is a node that +% is created in the matrix, then the whole matrix will be shifted such +% that inner node.some anchor lies at the origin of the whole picture. +% +% At the beginning and at the end of each cell, the macros +% \pgfmatrixbegincode and \pgfmatrixendcode are called. Inside these +% macros you can use \pgfmatrixcurrentcolumn and \pgfmatrixcurrentrow +% to access the current row and column. +% +% Before each column except for the first, an extra space given by the +% macro \pgfmatrixcolumnsep is added. Additionally, an extra space +% given by the optional argument of the \pgfmatrixnextcell commands in +% the first line are added, which may vary between columns. Between +% rows, an extra space given by the macro \pgfmatrixrowsep is +% added. You can also change this value for each row by using a \gdef. +% +% Inside the matrix, \\ must be used to end every line ***including +% the last***. You can pass an optional parameter to \\ as in \\[2pt] +% to give an additional space after this particular line. +% +% The usage of \\ at the end of the matrix is imporant since this +% command is used to find the end of the matrix. What happens is that +% \\ followed by a closing brace ends the matrix. +% +% Inside the matrix, you must use \pgfmatrixnextcell to separate +% columns. The reason is that two columns are used internally for +% every single column shown. The macro \pgfmatrixnextcell is yields +% (more or less) two && (and some further trickery). +% +% The parameter #6 is executed at the beginning of the matrix +% group. It is inside the protecting group of the matrix, but outside +% the matrix itself. It can be used for different purposes: 1) It can be +% used to simplify the next cell macro. 2) It can be used to issue an +% \aftergroup command. 3) It can be used to setup local settings. For +% example, by setting #6 to \let\&=\pgfmatrixnextcell you can use \& +% instead of \pgfmatrixnextcell. You can also set the catcode of & to +% active. +% +% +% Example: +% +% \begin{tikzpicture} +% +% \draw (0,0) circle (1mm); % b.north will lie on the center of this circle +% +% \pgfmatrix{rectangle}{text}{mymatrix}{\pgfusepath{}}{\pgfpointanchor{b}{north}}{\let\&=\pgfmatrixnextcell} +% { +% \draw (0,0) circle (1cm); \& \node (a) [draw] {Hallo}; \\ +% \node (b) [draw] {Welt}; \& \draw (0,0) circle (5mm); \\ +% } +% +% \draw [->] (a) -- (b); +% +% \end{tikzpicture} + +\def\pgfmatrix#1#2#3#4#5#6{% + \ifpgfmatrix% + \PackageError{pgf}{You cannot nest pgfmatrix environments, yet}{} + \fi% + \bgroup% + #6% + \def\pgf@matrix@par@shape{#1}% + \def\pgf@matrix@par@anchor{#2}% + \def\pgf@matrix@par@name{#3}% + \def\pgf@matrix@par@usage{#4}% + \def\pgf@matrix@par@shift{#5}% + % the matrix must have a name: + \ifx\pgf@matrix@par@name\pgfutil@empty% + \def\pgf@matrix@par@name{pgf@matrix@internal}% + \fi% + \pgfmatrixcurrentrow=0\relax% + \pgfmatrixcurrentcolumn=0\relax% + \pgf@matrix@numberofcolumns=0\relax% + \let\\=\pgf@matrix@eol% + \tabskip=0pt% + \offinterlineskip% + \pgfmatrixtrue% + \let\pgf@matrix@node@list=\pgfutil@empty% + \expandafter\let\csname pgf@matrix@column@finish@1\endcsname=\pgfutil@empty% + \let\pgf@matrix@row@finish=\pgfutil@empty% + % + % Get rid of bgroup + % + \afterassignment\pgf@matrix@cont\let\pgf@next=% +} +\def\pgf@matrix@cont{% + \setbox\pgf@matrix@box=\hbox\bgroup\vbox\bgroup% + \halign\bgroup% + \pgf@matrix@init@row% + \pgf@matrix@step@column% + {% + \pgf@matrix@startcell% + ##% + \pgf@matrix@endcell% + }% + &% + ##\pgf@matrix@padding&&% + \pgf@matrix@step@column% + {% + \pgf@matrix@startcell% + ##% + \pgf@matrix@endcell% + }&% + ##\pgf@matrix@padding% + \cr% +} + +\def\pgf@end@matrix{% + \egroup\egroup% + \egroup% + % + % If there are named nodes, we must adjust their coordinates. + % + \ifx\pgf@matrix@node@list\pgfutil@empty% + \else% + % Ok, this means we got a lot of work to do... + \pgf@matrix@compute@origin% + \pgf@matrix@shift@nodes@initial% + \fi% + % + % Compute additional shift + % + \pgftransformresetnontranslations% + \pgftransformshift{\pgf@process{\pgftransformreset\pgf@matrix@par@shift\pgf@x=-\pgf@x\pgf@y=-\pgf@y}}% + % + % Create node + % + \pgfmultipartnode{\pgf@matrix@par@shape}{\pgf@matrix@par@anchor}{\pgf@matrix@par@name}{\pgf@matrix@par@usage}% + % + % If there are named nodes, we must adjust their coordinates, again. + % + \ifx\pgf@matrix@node@list\pgfutil@empty% + \else% + {% + \pgftransformreset% + \pgf@process{\pgfpointanchor{\pgf@matrix@par@name}{text}}% + \xdef\pgf@matrix@offset{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% + \pgf@matrix@shift@nodes@secondary{\pgf@matrix@offset}% + }% + \fi% +} + + + + +% Ending a cell +% +% #1 = (optional) spacing between previous and next column. This +% parameter only has an effect in the first row. +% +% Description: +% +% This command ends a cell of a matrix. +% +% Example: +% +% \pgfmatrix{rectangle}{text}{mymatrix}{\pgfusepath{}}{\pgfpointanchor{b}{north}}{} +% { +% \draw (0,0) circle (1cm); \pgfmatrixnextcell[1cm] \node (a) [draw] {Hallo}; \\ +% \node (b) [draw] {Welt}; \pgfmatrixnextcell \draw (0,0) circle (5mm); \\ +% } + +\def\pgfmatrixnextcell{% + % if the cell contains nothing, the following \let will be at the + % beginning (macro expansion has stopped here since neither \omit + % nor \span was found) + \let\pgf@matrix@signal@cell@end=\pgf@matrix@signal@cell@end% + \pgfutil@ifnextchar[{\pgf@matrix@cell@cont}{\pgf@matrix@cell@cont[0pt]}}%} + +\def\pgf@matrix@cell@cont[#1]{% + \ifnum\pgfmatrixcurrentcolumn<\pgf@matrix@numberofcolumns% + \else% + {% + \global\pgf@matrix@fixedfalse% + \pgf@x=0pt% + \pgf@matrix@addtolength{\pgf@x}{\pgfmatrixcolumnsep}% + \pgf@matrix@addtolength{\pgf@x}{#1}% + \ifpgf@matrix@fixed% + \expandafter\pgfutil@g@addto@macro\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname% + {\global\pgf@picmaxx=0pt}% + \fi% + \advance\pgfmatrixcurrentcolumn by1\relax % only temporary for the following: + \expandafter\xdef\csname pgf@matrix@column@sep@\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@x}% + \ifpgf@matrix@fixed% + \expandafter\gdef\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname{\global\pgf@picminx=0pt}% + \else% + \expandafter\global\expandafter\let\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname=\pgfutil@empty% + \fi% + }% + \fi% + &\pgf@matrix@correct@calltrue&% +}% + + +\def\pgf@matrix@fixed@text{between origins} +\def\pgf@matrix@natural@text{between borders} + +\def\pgf@matrix@addtolength#1#2{\edef\pgf@temp{#2}\expandafter\pgf@matrix@addtolength@\expandafter#1#2,\pgf@stop} +\def\pgf@matrix@addtolength@#1#2,#3\pgf@stop{% + \def\pgf@temp{#2}% + \ifx\pgf@temp\pgfutil@empty% + \else% + \ifx\pgf@temp\pgf@matrix@fixed@text% + \global\pgf@matrix@fixedtrue% + \else% + \ifx\pgf@temp\pgf@matrix@natural@text% + \global\pgf@matrix@fixedfalse% + \else% + \pgfmathaddtolength{#1}{#2}% + \fi% + \fi% + \fi% + \def\pgf@temp{#3}% + \ifx\pgf@temp\pgfutil@empty% + \else% + \pgf@matrix@addtolength@#1#3\pgf@stop% + \fi% +} + + + +% Init a line + +\def\pgf@matrix@init@row{% + \relax% + \global\advance\pgfmatrixcurrentrow by 1\relax% + \global\pgfmatrixcurrentcolumn=0\relax% + \expandafter\gdef\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname{0pt}% + \expandafter\gdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{0pt}% +} + + + +% Step the row column number + +\def\pgf@matrix@step@column{% + \relax% + \global\advance\pgfmatrixcurrentcolumn by1\relax% +} + + + +% Start a cell + +\def\pgf@matrix@startcell{% + % + % Step 1: Init the list of nodes for this cell + % + \let\pgf@nodecallback=\pgf@matrix@nodecallback% + % + % Step 2: Setup the bounding box + % + \pgfinterruptboundingbox% + % + % Step 3: Reset the transformation matrix + % + \pgftransformreset% + % + % Step 4: Collect everything in a cell box + % + \setbox\pgf@matrix@cell=\hbox\bgroup\bgroup% + \pgfsys@beginpicture% + \normalbaselines% + % Find out whether the cell is empty: + \pgfutil@ifnextchar\let% + {% ok, candidate, check following symbol + \afterassignment\pgf@matrix@empty@check\let\pgf@next=% get rid of \let + }% + {% no, not empty + \pgf@matrix@empty@cell@false% + \pgfmatrixbegincode% + }% +} + +\def\pgf@matrix@empty@check{% + \pgfutil@ifnextchar\pgf@matrix@signal@cell@end% + {% Bingo! + \pgf@matrix@empty@cell@true% + \pgfmatrixemptycode% + \let% reinserted + }% + {% Nope! + \pgf@matrix@empty@cell@false% + \pgfmatrixbegincode% + \let% reinserted + } +}% + +\newif\ifpgf@matrix@empty@cell@ + + +% End a cell + +\def\pgf@matrix@endcell{% + \ifpgf@matrix@empty@cell@% + \else% + \expandafter\pgfmatrixendcode% + \fi + \pgfsys@endpicture% + \csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname% + \pgf@matrix@row@finish% + \egroup\egroup% + % Special case of the empty picture + \ifdim\pgf@picmaxx=-16000pt\relax% + \pgf@picmaxx=0pt\relax% + \pgf@picminx=0pt\relax% + \pgf@picmaxy=0pt\relax% + \pgf@picminy=0pt\relax% + \fi% + % + % Step 5: Horizontal gap + % + \ifnum\pgfmatrixcurrentcolumn>1\relax% + \pgf@y=\csname pgf@matrix@column@sep@\the\pgfmatrixcurrentcolumn\endcsname\relax% + \advance\pgf@picminx by-\pgf@y% + \fi% + % + % Step 6: Protocol and adjust height and depth + % + % Step 6.1: Protocol... + % + \ifdim\pgf@picmaxy>\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname% + \expandafter\xdef\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname{\the\pgf@picmaxy}% + \fi% + \ifdim\pgf@picminy<\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname% + \expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@picminy}% + \fi% + % + % Step 6.2: and setup. + % + \ht\pgf@matrix@cell=\pgf@picmaxy% + \dp\pgf@matrix@cell=-\pgf@picminy% + % + % Step 7: Protocol and adjust left and right width + % + % Step 7.1: Protocol... + % + \ifnum\pgfmatrixcurrentcolumn>\pgf@matrix@numberofcolumns\relax% + \expandafter\xdef\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picmaxx}% + \expandafter\xdef\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picminx}% + \global\pgf@matrix@numberofcolumns=\pgfmatrixcurrentcolumn\relax% + \else% + \ifdim\pgf@picmaxx>\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname% + \expandafter\xdef\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picmaxx}% + \fi% + \ifdim\pgf@picminx<\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname% + \expandafter\xdef\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picminx}% + \fi% + \fi% + % + % Step 7.2: and setup. + % + \xdef\pgf@matrix@paddingskip{\the\pgf@picmaxx}% + % + % Step 8: Put in the box now + % + \hfil\hskip-\pgf@picminx% + \wd\pgf@matrix@cell=0pt% + \box\pgf@matrix@cell% + % + % Step 9: End bounding box + \endpgfinterruptboundingbox% +} + +% Default code for the start and end code +\let\pgfmatrixbegincode=\relax +\let\pgfmatrixendcode=\relax +\let\pgfmatrixemptycode=\relax + + +% The following callback is called for every node that is produced +% inside a cell + +\def\pgf@matrix@nodecallback#1{% + \def\pgf@temp{#1}% + \ifx\pgf@temp\pgfutil@empty% + \else% + \xdef\pgf@matrix@node@list{\pgf@matrix@node@list,{#1}}% + \expandafter\xdef\csname pgf@matrix@node@location@#1\endcsname{{\the\pgfmatrixcurrentrow}{\the\pgfmatrixcurrentcolumn}}% + \fi% +} + + + +% Padding code + +\def\pgf@matrix@padding{% + \ifpgf@matrix@correct@call% + \else% + \PackageError{pgfbasematrix}{Single ampersand used with wrong + catcode}{}% + \fi% + \hskip\pgf@matrix@paddingskip\hfil% +} + + +% Compute the real positions of the origins + +% We must now compute the real positions of the origins of all the +% small pictures. To this end, we need to compute prefix sums. After +% the procedure is done, the minx and the maxy will contain the origin +% positions. + +\def\pgf@matrix@compute@origin{% + % + % Inverse prefix sum on the vertical positions + % + {% + \ifnum\pgfmatrixcurrentrow>0\relax% + \expandafter\gdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{0pt}% + \fi + \c@pgf@counta=\pgfmatrixcurrentrow\relax% + \loop% + \ifnum\c@pgf@counta>1\relax% + \pgf@y=\csname pgf@matrix@miny\the\c@pgf@counta\endcsname\relax% + \advance\pgf@y by\csname pgf@matrix@maxy\the\c@pgf@counta\endcsname\relax + \advance\c@pgf@counta by-1\relax% + \pgf@ya=\csname pgf@matrix@miny\the\c@pgf@counta\endcsname\relax% + \advance\pgf@y by-\pgf@ya\relax% + \expandafter\xdef\csname pgf@matrix@miny\the\c@pgf@counta\endcsname{\the\pgf@y}% + \repeat% + }% + % + % Prefix sum on the horizontal positions + % + {% + \ifnum\pgf@matrix@numberofcolumns>0\relax% + \pgf@x=\csname pgf@matrix@minx1\endcsname\relax% + \pgf@x=-\pgf@x% + \expandafter\xdef\csname pgf@matrix@minx1\endcsname{\the\pgf@x}% + \fi + \c@pgf@counta=1\relax% + \loop% + \ifnum\c@pgf@counta<\pgf@matrix@numberofcolumns\relax% + \pgf@x=\csname pgf@matrix@minx\the\c@pgf@counta\endcsname\relax% + \advance\pgf@x by\csname pgf@matrix@maxx\the\c@pgf@counta\endcsname\relax% + \advance\c@pgf@counta by1\relax% + \pgf@xa=\csname pgf@matrix@minx\the\c@pgf@counta\endcsname\relax% + \advance\pgf@x by-\pgf@xa\relax% + \expandafter\xdef\csname pgf@matrix@minx\the\c@pgf@counta\endcsname{\the\pgf@x}% + \repeat% + }% +} + + +% Shift the nodes to their origins + +% The following procedure shifts all nodes in +% \pgf@matrix@node@list to their location inside a temporary +% picture. This picture will later be shifted again to its final +% position in the real picture. + +\def\pgf@matrix@shift@nodes@initial{% + {% + \pgfutil@for\pgf@matrix@node@name:=\pgf@matrix@node@list\do{% + \ifx\pgf@matrix@node@name\pgfutil@empty% + \else% + \expandafter\ifx\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname\relax% + \pgf@shift@node{\pgf@matrix@node@name}{% + \pgf@x=\csname pgf@matrix@minx% + \expandafter\expandafter\expandafter\pgfutil@secondoftwo\csname pgf@matrix@node@location@\pgf@matrix@node@name\endcsname\endcsname% + \pgf@y=\csname pgf@matrix@miny% + \expandafter\expandafter\expandafter\pgfutil@firstoftwo\csname pgf@matrix@node@location@\pgf@matrix@node@name\endcsname\endcsname% + }% + \expandafter\let\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname=\pgfutil@empty% + \fi% + \fi% + }% + }% +} + + +% The second shifting, done in the following procedure, shifts all +% nodes to their real positions inside the real picture. + +\def\pgf@matrix@shift@nodes@secondary#1{% + \pgfutil@for\pgf@matrix@node@name:=\pgf@matrix@node@list\do{% + \ifx\pgf@matrix@node@name\pgfutil@empty% + \else% + \expandafter\ifx\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname\relax% + \pgf@shift@node{\pgf@matrix@node@name}{#1}% + \expandafter\let\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname=\pgfutil@empty% + \fi% + \fi% + }% +} + + +% End of line +\def\pgf@matrix@eol{% + % if the cell contains nothing, the following \let will be at the + % beginning (macro expansion has stopped here since neither \omit + % nor \span was found) + \let\pgf@matrix@signal@cell@end=\pgf@matrix@signal@cell@end% + &\pgf@matrix@correct@calltrue% + \global\pgf@matrix@fixedfalse% + \pgf@y=0pt% + \pgf@matrix@addtolength\pgf@y{\pgfmatrixrowsep}% + \pgfutil@ifnextchar[{\pgf@matrix@eol@skip}{\pgf@matrix@finish@line}% +} + +\def\pgf@matrix@signal@cell@end{\pgf@matrix@signal@cell@end} +% exact definition does not matter, only needs to be unique. + +\def\pgf@matrix@eol@skip[#1]{% + \pgf@matrix@addtolength\pgf@y{#1}% + \pgf@matrix@finish@line% +} + +\def\pgf@matrix@finish@line{% + \global\pgf@y=\pgf@y% + \pgf@ya=-\pgf@y% + \global\advance\pgf@ya by\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname% + \expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@ya}% + \@ifnextchar\egroup{\cr\pgf@end@matrix}{\pgf@matrix@no@eom@found}% +} + +\def\pgf@matrix@eom@found{% + \cr% + \pgf@end@matrix% +} + +\def\pgf@matrix@no@eom@found{% + \cr% + \noalign{\vskip\pgf@y% + \ifpgf@matrix@fixed% + \vskip\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname% unskip + \vskip\pgf@y% + \pgf@y=-\pgf@y% + \expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@y}% + \gdef\pgf@matrix@row@finish{\global\pgf@picmaxy=0pt}% + \else% + \global\let\pgf@matrix@row@finish=\pgfutil@empty% + \fi% + }% +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex index 816f50c0d19..199d38e3b7b 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasepatterns.code.tex,v 1.9 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasepatterns.code.tex,v 1.10 2007/02/05 11:23:22 tantau Exp $ % Creates a new uncolored pattern @@ -112,10 +112,10 @@ \pgf@xc=\pgf@x% \pgf@yc=\pgf@y% % Now, build a name for the pattern - \@tempcnta=\pgf@pattern@number% - \advance\@tempcnta by1\relax% - \xdef\pgf@pattern@number{\the\@tempcnta}% - \expandafter\xdef\csname pgf@pattern@name@#1\endcsname{\the\@tempcnta}% + \pgfutil@tempcnta=\pgf@pattern@number% + \advance\pgfutil@tempcnta by1\relax% + \xdef\pgf@pattern@number{\the\pgfutil@tempcnta}% + \expandafter\xdef\csname pgf@pattern@name@#1\endcsname{\the\pgfutil@tempcnta}% \expandafter\gdef\csname pgf@pattern@type@#1\endcsname{#6}% \xdef\pgf@marshal{\noexpand\pgfsys@declarepattern {\csname pgf@pattern@name@#1\endcsname} diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex index 9ca915d5981..3e019c5feec 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseplot.code.tex,v 1.5 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseplot.code.tex,v 1.7 2007/05/02 14:08:27 tantau Exp $ % PGF's plotting interface works as follows: @@ -198,10 +198,11 @@ \endgroup% } +\let\pgf@savedpar=\par% \def\pgf@partext{\par} \def\pgf@readxyfile{% \read1 to \pgf@temp% - \let\par=\@@par% + \let\par=\pgf@savedpar% \edef\pgf@temp{\pgf@temp}% \ifx\pgf@temp\pgfutil@empty% \else\ifx\pgf@temp\pgf@partext% @@ -294,15 +295,15 @@ \def\pgf@plotgnuplot[#1]#2{% \pgf@resample@plottrue% % Check, whether it is up-to-date - \openin\@inputcheck=#1.gnuplot - \ifeof\@inputcheck% + \openin\pgfutil@inputcheck=#1.gnuplot + \ifeof\pgfutil@inputcheck% \else% - \read\@inputcheck to\pgf@temp% ignored - \read\@inputcheck to\pgf@plot@line% + \read\pgfutil@inputcheck to\pgf@temp% ignored + \read\pgfutil@inputcheck to\pgf@plot@line% \edef\pgf@plot@code{#2\space}% \ifx\pgf@plot@code\pgf@plot@line% - \openin\@inputcheck=#1.table - \ifeof\@inputcheck% + \openin\pgfutil@inputcheck=#1.table + \ifeof\pgfutil@inputcheck% \else% \pgf@resample@plotfalse% \fi% @@ -320,5 +321,37 @@ +% This producer handler plots a function using pgf's mathematical engine. +% +% #1 = variable +% #2 = domain for the variable +% #3 = point, typically defined in terms of the value of the variable +% +% Description: +% +% This producer will iterate the variable #1 over all variables in #2 +% (using the \foreach statement). For each value, a plot coordinate +% #3 is created. +% +% Note that this command is pretty slow. +% +% Example: +% +% \pgfplothandlerlineto +% \pgfplotfunction{\x}{0,0.1,...,3.141}{\pgfpointxy{\x}{sin(\x)}} + +\def\pgfplotfunction#1#2#3{% + \pgfplotstreamstart% + \foreach#1in{#2}% + {% + \pgf@process{#3}% + \edef\pgf@marshal{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}% + \pgf@marshal% + } + \pgfplotstreamend% +} + + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex index 5535010cbbb..dc9f660d0c2 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseshapes.code.tex,v 1.16 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseshapes.code.tex,v 1.19 2007/06/07 07:41:10 tantau Exp $ \newbox\pgfnodeparttextbox @@ -28,12 +28,12 @@ % pgf's transformation matrix prior to calling this command. % % When this command is called, the shape-specific TeX boxes of the -% node must be have been setup correctly. +% node must have been setup correctly. % % Example: % % \pgftransformshift{\pgfpoint{1cm}{1cm}} -% \pgfmultipartnode{rectangle}{center}{Hello}{hellonode}{\pgfusepath{stroke}} +% \pgfmultipartnode{rectangle}{center}{hellonode}{\pgfusepath{stroke}} \def\pgfmultipartnode#1#2#3#4{% \pgfutil@ifundefined{pgf@sh@s@#1}% @@ -79,11 +79,31 @@ {\csname pgf@sh@fg@#1\endcsname#4}% \pgfutil@ifundefined{pgf@sh@ffg@#1}{}% {{\pgfscope\csname pgf@sh@ffg@#1\endcsname\endpgfscope}}% + \pgf@nodecallback{#3}% }% }% } +\def\pgf@shift@node#1#2{% + % This internal command shifts the recorded coordinates for node #1 + % by the vector #2. It is used to + % correct the position of the node if the recorded coordinate + % happens to be wrong + {% + \pgfsettransform{\csname pgf@sh@nt@#1\endcsname}% + \pgf@process{#2}% + \advance\pgf@pt@x by\pgf@x% + \advance\pgf@pt@y by\pgf@y% + \pgfgettransform{\pgf@temp}% + \expandafter\xdef\csname pgf@sh@nt@#1\endcsname{\pgf@temp}% + }% +} + +\let\pgf@nodecallback=\pgfutil@gobble + + + % Creates a node % % #1 = shape type @@ -120,7 +140,7 @@ \pgf@process{#2}% \edef\pgf@sh@marshal{% \noexpand\pgfutil@g@addto@macro\noexpand\pgf@sh@savedpoints{% - \noexpand\def\noexpand#1{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \noexpand\def\noexpand#1{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% }}% \pgf@sh@marshal% } @@ -139,8 +159,8 @@ \def\pgf@sh@reanchor#1#2{% \pgfutil@ifundefined{pgf@anchor@#1@#2}% {% - \pgflatex@setcounter{pgf@counta}{#2}% - \csname pgf@anchor@#1@border\endcsname{\pgfpointpolar{\c@pgf@counta}{1pt}}% + \pgfmathsetcounter{pgf@counta}{#2}% + \csname pgf@anchor@#1@border\endcsname{\pgfqpointpolar{\c@pgf@counta}{1pt}}% }% {\csname pgf@anchor@#1@#2\endcsname}% } @@ -243,7 +263,7 @@ \pgf@process{\pgf@shape@interpictureshift{#1}}%% \advance\pgf@xa by-\pgf@x% \advance\pgf@ya by-\pgf@y% - \csname pgf@anchor@\csname pgf@sh@ns@#1\endcsname @border\endcsname{\pgfpoint{\pgf@xa}{\pgf@ya}}% + \csname pgf@anchor@\csname pgf@sh@ns@#1\endcsname @border\endcsname{\pgfqpoint{\pgf@xa}{\pgf@ya}}% \pgfsettransform{\csname pgf@sh@nt@#1\endcsname}% \pgf@pos@transform{\pgf@x}{\pgf@y}% \global\pgf@x=\pgf@x% @@ -523,9 +543,9 @@ % % First, is width < minimum width? \pgf@x=\the\wd\pgfnodeparttextbox% - \setlength\pgf@xc{\pgfshapeinnerxsep}% + \pgfmathsetlength\pgf@xc{\pgfshapeinnerxsep}% \advance\pgf@x by 2\pgf@xc% - \setlength\pgf@xb{\pgfshapeminwidth}% + \pgfmathsetlength\pgf@xb{\pgfshapeminwidth}% \ifdim\pgf@x<\pgf@xb% % yes, too small. Enlarge... \pgf@x=\pgf@xb% @@ -533,16 +553,16 @@ % Now, calculate right border: .5\wd\pgfnodeparttextbox + .5 \pgf@x + outer sep \pgf@x=.5\pgf@x% \advance\pgf@x by.5\wd\pgfnodeparttextbox% - \setlength\pgf@xa{\pgfshapeouterxsep}% + \pgfmathsetlength\pgf@xa{\pgfshapeouterxsep}% \advance\pgf@x by\pgf@xa% % Calculate y % % First, is height+depth < minimum height? \pgf@y=\ht\pgfnodeparttextbox% \advance\pgf@y by\dp\pgfnodeparttextbox% - \setlength\pgf@yc{\pgfshapeinnerysep}% + \pgfmathsetlength\pgf@yc{\pgfshapeinnerysep}% \advance\pgf@y by 2\pgf@yc% - \setlength\pgf@yb{\pgfshapeminheight}% + \pgfmathsetlength\pgf@yb{\pgfshapeminheight}% \ifdim\pgf@y<\pgf@yb% % yes, too small. Enlarge... \pgf@y=\pgf@yb% @@ -551,7 +571,7 @@ \pgf@y=.5\pgf@y% \advance\pgf@y by-.5\dp\pgfnodeparttextbox% \advance\pgf@y by.5\ht\pgfnodeparttextbox% - \setlength\pgf@ya{\pgfshapeouterysep}% + \pgfmathsetlength\pgf@ya{\pgfshapeouterysep}% \advance\pgf@y by\pgf@ya% } @@ -560,9 +580,9 @@ % % First, is width < minimum width? \pgf@x=\wd\pgfnodeparttextbox% - \setlength\pgf@xc{\pgfshapeinnerxsep}% + \pgfmathsetlength\pgf@xc{\pgfshapeinnerxsep}% \advance\pgf@x by 2\pgf@xc% - \setlength\pgf@xb{\pgfshapeminwidth}% + \pgfmathsetlength\pgf@xb{\pgfshapeminwidth}% \ifdim\pgf@x<\pgf@xb% % yes, too small. Enlarge... \pgf@x=\pgf@xb% @@ -570,16 +590,16 @@ % Now, calculate left border: .5\wd\pgfnodeparttextbox - .5 \pgf@x - outer sep \pgf@x=-.5\pgf@x% \advance\pgf@x by.5\wd\pgfnodeparttextbox% - \setlength\pgf@xa{\pgfshapeouterxsep}% + \pgfmathsetlength\pgf@xa{\pgfshapeouterxsep}% \advance\pgf@x by-\pgf@xa% % Calculate y % % First, is height+depth < minimum height? \pgf@y=\ht\pgfnodeparttextbox% \advance\pgf@y by\dp\pgfnodeparttextbox% - \setlength\pgf@yc{\pgfshapeinnerysep}% + \pgfmathsetlength\pgf@yc{\pgfshapeinnerysep}% \advance\pgf@y by 2\pgf@yc% - \setlength\pgf@yb{\pgfshapeminheight}% + \pgfmathsetlength\pgf@yb{\pgfshapeminheight}% \ifdim\pgf@y<\pgf@yb% % yes, too small. Enlarge... \pgf@y=\pgf@yb% @@ -588,7 +608,7 @@ \pgf@y=-.5\pgf@y% \advance\pgf@y by-.5\dp\pgfnodeparttextbox% \advance\pgf@y by.5\ht\pgfnodeparttextbox% - \setlength\pgf@ya{\pgfshapeouterysep}% + \pgfmathsetlength\pgf@ya{\pgfshapeouterysep}% \advance\pgf@y by-\pgf@ya% } @@ -605,7 +625,7 @@ \advance\pgf@x by \pgf@xa% \advance\pgf@y by \pgf@ya% } - \anchor{mid}{\pgf@anchor@rectangle@center\setlength\pgf@y{.5ex}} + \anchor{mid}{\pgf@anchor@rectangle@center\pgfmathsetlength\pgf@y{.5ex}} \anchor{base}{\pgf@anchor@rectangle@center\pgf@y=0pt} \anchor{north}{ \pgf@process{\southwest}% @@ -628,7 +648,7 @@ \pgf@y=.5\pgf@y% \advance\pgf@y by \pgf@ya% } - \anchor{mid west}{\southwest\setlength\pgf@y{.5ex}} + \anchor{mid west}{\southwest\pgfmathsetlength\pgf@y{.5ex}} \anchor{base west}{\southwest\pgf@y=0pt} \anchor{north west}{ \southwest @@ -643,7 +663,7 @@ \pgf@y=.5\pgf@y% \advance\pgf@y by \pgf@ya% } - \anchor{mid east}{\northeast\setlength\pgf@y{.5ex}} + \anchor{mid east}{\northeast\pgfmathsetlength\pgf@y{.5ex}} \anchor{base east}{\northeast\pgf@y=0pt} \anchor{north east}{\northeast} \anchor{south east}{ @@ -667,8 +687,8 @@ \advance\pgf@ya by\pgf@yc% \edef\pgf@marshal{% \noexpand\pgfpointborderrectangle - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}} - {\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}} + {\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}% }% \pgf@process{\pgf@marshal}% \advance\pgf@x by\pgf@xa% @@ -690,8 +710,8 @@ % Special current bounding box rectangle: \expandafter\def\csname pgf@sh@ns@current bounding box\endcsname{rectangle} \expandafter\def\csname pgf@sh@np@current bounding box\endcsname{% - \def\southwest{\pgfpoint{\pgf@picminx}{\pgf@picminy}}% - \def\northeast{\pgfpoint{\pgf@picmaxx}{\pgf@picmaxy}}% + \def\southwest{\pgfqpoint{\pgf@picminx}{\pgf@picminy}}% + \def\northeast{\pgfqpoint{\pgf@picmaxx}{\pgf@picmaxy}}% } \expandafter\def\csname pgf@sh@nt@current bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}} \expandafter\def\csname pgf@sh@pi@current bounding box\endcsname{\pgfpictureid} @@ -700,8 +720,8 @@ % Special current path bounding box rectangle: \expandafter\def\csname pgf@sh@ns@current path bounding box\endcsname{rectangle} \expandafter\def\csname pgf@sh@np@current path bounding box\endcsname{% - \def\southwest{\pgfpoint{\pgf@pathminx}{\pgf@pathminy}}% - \def\northeast{\pgfpoint{\pgf@pathmaxx}{\pgf@pathmaxy}}% + \def\southwest{\pgfqpoint{\pgf@pathminx}{\pgf@pathminy}}% + \def\northeast{\pgfqpoint{\pgf@pathmaxx}{\pgf@pathmaxy}}% } \expandafter\def\csname pgf@sh@nt@current path bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}} \expandafter\def\csname pgf@sh@pi@current path bounding box\endcsname{\pgfpictureid} @@ -710,8 +730,8 @@ % Special current page bounding box rectangle: \expandafter\def\csname pgf@sh@ns@current page\endcsname{rectangle} \expandafter\def\csname pgf@sh@np@current page\endcsname{% - \def\southwest{\pgfpoint{0pt}{0pt}}% - \def\northeast{\pgfpoint{\paperwidth}{\paperheight}}% + \def\southwest{\pgfqpoint{0pt}{0pt}}% + \def\northeast{\pgfqpoint{\paperwidth}{\paperheight}}% } \expandafter\def\csname pgf@sh@nt@current page\endcsname{{1}{0}{0}{1}{0pt}{0pt}} \expandafter\def\csname pgf@sh@pi@current page\endcsname{pgfpageorigin} @@ -739,18 +759,18 @@ % \pgf@ya=.5\ht\pgfnodeparttextbox% \advance\pgf@ya by.5\dp\pgfnodeparttextbox% - \setlength\pgf@yb{\pgfshapeinnerysep}% + \pgfmathsetlength\pgf@yb{\pgfshapeinnerysep}% \advance\pgf@ya by\pgf@yb% % % Caculate ``width radius'' % \pgf@xa=.5\wd\pgfnodeparttextbox% - \setlength\pgf@xb{\pgfshapeinnerxsep}% + \pgfmathsetlength\pgf@xb{\pgfshapeinnerxsep}% \advance\pgf@xa by\pgf@xb% % % Calculate length of radius vector: % - \pgf@process{\pgfpointnormalised{\pgfpoint{\pgf@xa}{\pgf@ya}}}% + \pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}% \ifdim\pgf@x>\pgf@y% \c@pgf@counta=\pgf@x% \ifnum\c@pgf@counta=0\relax% @@ -775,8 +795,8 @@ % If necessary, adjust radius so that the size requirements are % met: % - \setlength{\pgf@xb}{\pgfshapeminwidth}% - \setlength{\pgf@yb}{\pgfshapeminheight}% + \pgfmathsetlength{\pgf@xb}{\pgfshapeminwidth}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeminheight}% \ifdim\pgf@x<.5\pgf@xb% \pgf@x=.5\pgf@xb% \fi% @@ -786,8 +806,8 @@ % % Now, add larger of outer sepearations. % - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% \ifdim\pgf@xb<\pgf@yb% \advance\pgf@x by\pgf@yb% \else% @@ -799,14 +819,14 @@ % Anchors % \anchor{center}{\centerpoint} - \anchor{mid}{\centerpoint\setlength\pgf@y{.5ex}} + \anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}} \anchor{base}{\centerpoint\pgf@y=0pt} \anchor{north}{\centerpoint\advance\pgf@y by\radius} \anchor{south}{\centerpoint\advance\pgf@y by-\radius} \anchor{west}{\centerpoint\advance\pgf@x by-\radius} \anchor{east}{\centerpoint\advance\pgf@x by\radius} - \anchor{mid west}{\centerpoint\advance\pgf@x by-\radius\setlength\pgf@y{.5ex}} - \anchor{mid east}{\centerpoint\advance\pgf@x by\radius\setlength\pgf@y{.5ex}} + \anchor{mid west}{\centerpoint\advance\pgf@x by-\radius\pgfmathsetlength\pgf@y{.5ex}} + \anchor{mid east}{\centerpoint\advance\pgf@x by\radius\pgfmathsetlength\pgf@y{.5ex}} \anchor{base west}{\centerpoint\advance\pgf@x by-\radius\pgf@y=0pt} \anchor{base east}{\centerpoint\advance\pgf@x by\radius\pgf@y=0pt} \anchor{north west}{ @@ -838,8 +858,8 @@ \pgf@ya=\pgf@y% \edef\pgf@marshal{% \noexpand\pgfpointborderellipse - {\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}} - {\noexpand\pgfpoint{\radius}{\radius}}% + {\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}} + {\noexpand\pgfqpoint{\radius}{\radius}}% }% \pgf@marshal% \pgf@xa=\pgf@x% @@ -853,15 +873,15 @@ % Background path % \backgroundpath{ - \@tempdima=\radius% - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% + \pgfutil@tempdima=\radius% + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% \ifdim\pgf@xb<\pgf@yb% - \advance\@tempdima by-\pgf@yb% + \advance\pgfutil@tempdima by-\pgf@yb% \else% - \advance\@tempdima by-\pgf@xb% + \advance\pgfutil@tempdima by-\pgf@xb% \fi% - \pgfpathcircle{\centerpoint}{\@tempdima}% + \pgfpathcircle{\centerpoint}{\pgfutil@tempdima}% } } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex index e20b2ca3c9e..5259624c57a 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasesnakes.code.tex,v 1.10 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasesnakes.code.tex,v 1.11 2007/03/09 17:49:32 tantau Exp $ \newdimen\pgfsnakeremainingdistance \newdimen\pgfsnakecompleteddistance @@ -174,9 +174,9 @@ } \def\pgf@snake@invoke#1#2{% - \setlength\pgf@xa{#2}% + \pgfmathsetlength\pgf@xa{#2}% {% - \edef\pgf@marshal{\noexpand\pgfpathsnakealongvector{#1}{\the\pgf@xa}{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}}% + \edef\pgf@marshal{\noexpand\pgfpathsnakealongvector{#1}{\the\pgf@xa}{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}}% \pgf@marshal% }% \advance\pgfsnakecompleteddistance by\pgf@xa% @@ -246,7 +246,7 @@ \expandafter\let\expandafter\pgf@snake@current@state\expandafter=\csname pgf@snake@@#1@initial\endcsname% \def\pgf@snake@name{#1}% \pgfsnakecompleteddistance=0pt% - \setlength\pgfsnakeremainingdistance{#2}% + \pgfmathsetlength\pgfsnakeremainingdistance{#2}% \pgf@snake@run% % Last step: {% @@ -289,7 +289,7 @@ \csname pgf@snake@@\pgf@snake@name @\pgf@snake@current@state @code\endcsname% }% % next, do transformation and update - \setlength{\pgf@xa}{\pgf@snake@width}% + \pgfmathsetlength{\pgf@xa}{\pgf@snake@width}% \advance\pgfsnakeremainingdistance by-\pgf@xa% \advance\pgfsnakecompleteddistance by\pgf@xa% % Next iteration: @@ -310,7 +310,7 @@ \def\pgf@snake@switch@if#1to #2\pgf@stop{% \ifx\pgf@snake@next\relax% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \ifdim\pgfsnakeremainingdistance<\pgf@x% \def\pgf@snake@current@state{#2}% \let\pgf@snake@next=\pgf@snake@run% @@ -328,7 +328,7 @@ \pgfdeclaresnake{lineto}{final} { \state{final} - { \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } + { \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -341,7 +341,7 @@ \pgfdeclaresnake{moveto}{final} { \state{final} - { \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } + { \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex index 80e932c4571..8cbb060e1c1 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex @@ -7,11 +7,12 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcore.code.tex,v 1.4 2006/10/11 15:22:25 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcore.code.tex,v 1.5 2007/03/09 17:49:32 tantau Exp $ \newif\ifpgf@draftmode -\input pgfcoremath.code.tex +\input pgfmath.code.tex + \input pgfcorepoints.code.tex \input pgfcorepathconstruct.code.tex \input pgfcorepathusage.code.tex diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex index bbbe9580b26..bdf4906c1be 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorearrows.code.tex,v 1.6 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorearrows.code.tex,v 1.8 2007/06/07 07:41:10 tantau Exp $ % Sets the end arrow @@ -186,8 +186,8 @@ }% } -\def\pgfarrowsleftextend#1{\setlength\pgf@xa{#1}} -\def\pgfarrowsrightextend#1{\setlength\pgf@xb{#1}} +\def\pgfarrowsleftextend#1{\pgfmathsetlength\pgf@xa{#1}} +\def\pgfarrowsrightextend#1{\pgfmathsetlength\pgf@xb{#1}} \def\pgf@arrows@repeat#1#2{% \edef\pgf@arrows@marshal{\noexpand\let\expandafter\noexpand\csname#2\endcsname=\expandafter\noexpand\csname#1\endcsname}% @@ -283,7 +283,7 @@ {\expandafter\noexpand\csname pgf@arrow@code@#7\endcsname}% \noexpand\endpgfscope% {% - \noexpand\setlength\pgf@x{#1}% + \noexpand\pgfmathsetlength\pgf@x{#1}% \noexpand\pgf@process{\expandafter\noexpand\csname pgf@arrow@left@#7\endcsname}% \noexpand\pgf@process{\expandafter\noexpand\csname pgf@arrow@right@#5\endcsname}% \pgf@x=-\pgf@x% @@ -293,7 +293,7 @@ \pgf@arrows@repeat{pgf@arrow@right@#7}{pgf@arrow@right@#3}% \expandafter\def\csname pgf@arrow@left@#3\endcsname{% \pgf@process{% - \setlength\pgf@y{#1}% + \pgfmathsetlength\pgf@y{#1}% \advance\pgf@x by\pgf@y% \pgf@process{\csname pgf@arrow@left@#7\endcsname}% \pgf@process{\csname pgf@arrow@right@#5\endcsname}% @@ -317,7 +317,7 @@ \expandafter\edef\csname pgf@arrow@code@#3\endcsname{% \noexpand\pgfscope% {% - \noexpand\setlength\pgf@x{#1}% + \noexpand\pgfmathsetlength\pgf@x{#1}% \pgf@process{\expandafter\noexpand\csname pgf@arrow@left@#7\endcsname}% \pgf@process{\expandafter\noexpand\csname pgf@arrow@right@#5\endcsname}% \noexpand\pgflowlevel{\noexpand\pgftransformxshift{\pgf@x}}% @@ -329,7 +329,7 @@ \pgf@arrows@repeat{pgf@arrow@left@#7}{pgf@arrow@left@#3}% \expandafter\def\csname pgf@arrow@right@#3\endcsname{% \pgf@process{% - \setlength\pgf@y{#1}% + \pgfmathsetlength\pgf@y{#1}% \advance\pgf@x by\pgf@y% \pgf@process{\csname pgf@arrow@left@#7\endcsname}% \pgf@process{\csname pgf@arrow@right@#5\endcsname}% @@ -373,18 +373,18 @@ \pgfarrowsdeclare{stealth}{stealth} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfarrowsleftextend{-3\@tempdima} - \pgfarrowsrightextend{5\@tempdima} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{+-3\pgfutil@tempdima} + \pgfarrowsrightextend{+5\pgfutil@tempdima} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfpathmoveto{\pgfpoint{5\@tempdima}{0pt}} - \pgfpathlineto{\pgfpoint{-3\@tempdima}{4\@tempdima}} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfpathmoveto{\pgfqpoint{5\pgfutil@tempdima}{0pt}} + \pgfpathlineto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}} \pgfpathlineto{\pgfpointorigin} - \pgfpathlineto{\pgfpoint{-3\@tempdima}{-4\@tempdima}} + \pgfpathlineto{\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfusepathqfill } @@ -399,57 +399,57 @@ \pgfarrowsdeclare{to}{to} { - \@tempdima=-0.84pt% - \advance\@tempdima by-1.3\pgflinewidth% - \@tempdimb=0.21pt% - \advance\@tempdimb by.625\pgflinewidth% - \pgfarrowsleftextend{\@tempdima} - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=-0.84pt% + \advance\pgfutil@tempdima by-1.3\pgflinewidth% + \pgfutil@tempdimb=0.21pt% + \advance\pgfutil@tempdimb by.625\pgflinewidth% + \pgfarrowsleftextend{+\pgfutil@tempdima} + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% \pgfsetlinewidth{0.8\pgflinewidth} - \pgfsetdash{}{0pt} + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{-3\@tempdima}{4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-2.75\@tempdima}{2.5\@tempdima}} - {\pgfpoint{0pt}{0.25\@tempdima}} - {\pgfpoint{0.75\@tempdima}{0pt}} + {\pgfqpoint{-2.75\pgfutil@tempdima}{2.5\pgfutil@tempdima}} + {\pgfqpoint{0pt}{0.25\pgfutil@tempdima}} + {\pgfqpoint{0.75\pgfutil@tempdima}{0pt}} \pgfpathcurveto - {\pgfpoint{0pt}{-0.25\@tempdima}} - {\pgfpoint{-2.75\@tempdima}{-2.5\@tempdima}} - {\pgfpoint{-3\@tempdima}{-4\@tempdima}} + {\pgfqpoint{0pt}{-0.25\pgfutil@tempdima}} + {\pgfqpoint{-2.75\pgfutil@tempdima}{-2.5\pgfutil@tempdima}} + {\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfusepathqstroke } \pgfarrowsdeclare{to reversed}{to reversed} { - \@tempdima=-0.21pt% - \advance\@tempdima by-0.475\pgflinewidth% - \@tempdimb=0.98pt% - \advance\@tempdimb by1.45\pgflinewidth% - \pgfarrowsleftextend{\@tempdima} - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=-0.21pt% + \advance\pgfutil@tempdima by-0.475\pgflinewidth% + \pgfutil@tempdimb=0.98pt% + \advance\pgfutil@tempdimb by1.45\pgflinewidth% + \pgfarrowsleftextend{+\pgfutil@tempdima} + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfsetlinewidth{0.8\pgflinewidth} - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfsetlinewidth{+0.8\pgflinewidth} + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{3.5\@tempdima}{4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{3.5\pgfutil@tempdima}{4\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{3.25\@tempdima}{2.5\@tempdima}} - {\pgfpoint{0.5\@tempdima}{0.25\@tempdima}} - {\pgfpoint{-0.25\@tempdima}{0\@tempdima}} + {\pgfqpoint{3.25\pgfutil@tempdima}{2.5\pgfutil@tempdima}} + {\pgfqpoint{0.5\pgfutil@tempdima}{0.25\pgfutil@tempdima}} + {\pgfqpoint{-0.25\pgfutil@tempdima}{0\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{0.5\@tempdima}{-0.25\@tempdima}} - {\pgfpoint{3.25\@tempdima}{-2.5\@tempdima}} - {\pgfpoint{3.5\@tempdima}{-4\@tempdima}} + {\pgfqpoint{0.5\pgfutil@tempdima}{-0.25\pgfutil@tempdima}} + {\pgfqpoint{3.25\pgfutil@tempdima}{-2.5\pgfutil@tempdima}} + {\pgfqpoint{3.5\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfusepathqstroke } @@ -463,24 +463,24 @@ \pgfarrowsdeclare{latex}{latex} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfarrowsleftextend{-1\@tempdima} - \pgfarrowsrightextend{9\@tempdima} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{+-1\pgfutil@tempdima} + \pgfarrowsrightextend{+9\pgfutil@tempdima} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfpathmoveto{\pgfpoint{9\@tempdima}{0pt}} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfpathmoveto{\pgfqpoint{9\pgfutil@tempdima}{0pt}} \pgfpathcurveto - {\pgfpoint{6.3333\@tempdima}{.5\@tempdima}} - {\pgfpoint{2\@tempdima}{2\@tempdima}} - {\pgfpoint{-1\@tempdima}{3.75\@tempdima}} - \pgfpathlineto{\pgfpoint{-1\@tempdima}{-3.75\@tempdima}} + {\pgfqpoint{6.3333\pgfutil@tempdima}{.5\pgfutil@tempdima}} + {\pgfqpoint{2\pgfutil@tempdima}{2\pgfutil@tempdima}} + {\pgfqpoint{-1\pgfutil@tempdima}{3.75\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-1\pgfutil@tempdima}{-3.75\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{2\@tempdima}{-2\@tempdima}} - {\pgfpoint{6.3333\@tempdima}{-.5\@tempdima}} - {\pgfpoint{9\@tempdima}{0pt}} + {\pgfqpoint{2\pgfutil@tempdima}{-2\pgfutil@tempdima}} + {\pgfqpoint{6.3333\pgfutil@tempdima}{-.5\pgfutil@tempdima}} + {\pgfqpoint{9\pgfutil@tempdima}{0pt}} \pgfusepathqfill } \pgfarrowsdeclarereversed{latex reversed}{latex reversed}{latex}{latex} @@ -495,16 +495,16 @@ \pgfarrowsdeclare{|}{|} { - \pgfarrowsleftextend{-0.25\pgflinewidth} - \pgfarrowsrightextend{.75\pgflinewidth} + \pgfarrowsleftextend{+-0.25\pgflinewidth} + \pgfarrowsrightextend{+.75\pgflinewidth} } { - \@tempdima=2pt% - \advance\@tempdima by1.5\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=2pt% + \advance\pgfutil@tempdima by1.5\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetrectcap - \pgfpathmoveto{\pgfpoint{0.25\pgflinewidth}{-\@tempdima}} - \pgfpathlineto{\pgfpoint{0.25\pgflinewidth}{\@tempdima}} + \pgfpathmoveto{\pgfqpoint{0.25\pgflinewidth}{-\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0.25\pgflinewidth}{\pgfutil@tempdima}} \pgfusepathqstroke } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex index 236dc6a80cb..38f60266178 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex,v 1.6 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex,v 1.7 2007/03/09 17:49:32 tantau Exp $ % Globals @@ -23,7 +23,7 @@ % \pgfsetlinewidth{3pt} \def\pgfsetlinewidth#1{% - \setlength\pgflinewidth{#1}% + \pgfmathsetlength\pgflinewidth{#1}% \global\pgflinewidth=\pgflinewidth% \pgfsys@setlinewidth{\the\pgflinewidth}% \ignorespaces} @@ -57,7 +57,7 @@ \def\pgf@temp{}% \def\pgf@next{\pgf@strip}% \pgf@strip#1{pgf@stop}% - \setlength\pgf@x{#2}% + \pgfmathsetlength\pgf@x{#2}% \pgfsys@setdash{\pgf@temp}{\the\pgf@x}% \ignorespaces} @@ -66,7 +66,7 @@ \ifx\pgf@@temp\pgf@stop% \let\pgf@next=\relax% \else% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \ifx\pgf@temp\pgfutil@empty% \edef\pgf@temp{\the\pgf@x}% \else% diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoremath.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoremath.code.tex deleted file mode 100644 index 2a0187b13a8..00000000000 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoremath.code.tex +++ /dev/null @@ -1,271 +0,0 @@ -% Copyright 2006 by Till Tantau -% -% This file may be distributed and/or modified -% -% 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/pgfcoremath.code.tex,v 1.3 2006/10/15 15:54:25 tantau Exp $ - - -% Mathematical stuff - - -% Internal registers -\ifx\pgflatex@setcounter\@undefined - \def\pgflatex@setcounter{\setcounter} -\fi - -\newcount\c@pgf@counta -\newcount\c@pgf@countb -\newcount\c@pgf@countc -\newcount\c@pgf@countd - - -% Internal setting function -\def\pgf@setmath#1#2{\edef\pgf@temp{#2pt}\csname pgf@#1\endcsname=\pgf@temp} - - -% Calculate sin of a degree -% -% #1 = degree -% -% x = sin of #1 -% -% Example: -% -% \pgfsin{30} - -\def\pgfsin#1{% - \pgf@setcounter{pgf@counta}{#1}\relax% - \c@pgf@countb=90% - \advance\c@pgf@countb by-\c@pgf@counta% - \ifnum\c@pgf@countb>179% - \advance\c@pgf@countb by-360% - \else% - \ifnum\c@pgf@countb<-179% - \advance\c@pgf@countb by360% - \fi\fi% - \ifnum\c@pgf@countb<0\relax% - \c@pgf@countb=-\c@pgf@countb% - \fi% - \pgf@setmath{x}{\csname pgf@cos\the\c@pgf@countb\endcsname}} - - -% Calculate cos of a degree -% -% #1 = degree -% -% x = cos of #1 -% -% Example: -% -% \pgfcos{30} - -\def\pgfcos#1{% - \pgf@setcounter{pgf@counta}{#1}% - \ifnum\c@pgf@counta>179% - \advance\c@pgf@counta by-360% - \else% - \ifnum\c@pgf@counta<-179% - \advance\c@pgf@counta by360% - \fi\fi% - \ifnum\c@pgf@counta<0\relax% - \c@pgf@counta=-\c@pgf@counta% - \fi% - \pgf@setmath{x}{\csname pgf@cos\the\c@pgf@counta\endcsname}} - - - -% Calculate sin and cos of a degree -% -% #1 = degree -% -% x = cos of #1 -% y = sin of #1 -% -% Example: -% -% \pgfcos{30} - -\def\pgfsincos#1{% - \pgf@setcounter{pgf@counta}{#1}% - \ifnum\c@pgf@counta>179% - \advance\c@pgf@counta by-360% - \else% - \ifnum\c@pgf@counta<-179% - \advance\c@pgf@counta by360% - \fi\fi\relax% - \c@pgf@countb=\c@pgf@counta\relax% - \ifnum\c@pgf@counta<0\relax% - \c@pgf@counta=-\c@pgf@counta% - \fi\relax% - \pgf@setmath{y}{\csname pgf@cos\the\c@pgf@counta\endcsname}% - \c@pgf@counta=90% - \advance\c@pgf@counta by-\c@pgf@countb\relax% - \ifnum\c@pgf@counta>179% - \advance\c@pgf@counta by-360% - \else% - \ifnum\c@pgf@counta<-179% - \advance\c@pgf@counta by360% - \fi\fi\relax% - \ifnum\c@pgf@counta<0\relax% - \c@pgf@counta=-\c@pgf@counta% - \fi\relax% - \pgf@setmath{x}{\csname pgf@cos\the\c@pgf@counta\endcsname}} - - -% Internal tables - -\def\pgf@def#1#2#3{\expandafter\def\csname pgf@#1#2\endcsname{#3}} -\pgf@def{cos}{0}{1} \pgf@def{cos}{1}{0.999848} -\pgf@def{cos}{2}{0.999391} \pgf@def{cos}{3}{0.99863} -\pgf@def{cos}{4}{0.997564} \pgf@def{cos}{5}{0.996195} -\pgf@def{cos}{6}{0.994522} \pgf@def{cos}{7}{0.992546} -\pgf@def{cos}{8}{0.990268} \pgf@def{cos}{9}{0.987688} -\pgf@def{cos}{10}{0.984808} \pgf@def{cos}{11}{0.981627} -\pgf@def{cos}{12}{0.978148} \pgf@def{cos}{13}{0.97437} -\pgf@def{cos}{14}{0.970296} \pgf@def{cos}{15}{0.965926} -\pgf@def{cos}{16}{0.961262} \pgf@def{cos}{17}{0.956305} -\pgf@def{cos}{18}{0.951057} \pgf@def{cos}{19}{0.945519} -\pgf@def{cos}{20}{0.939693} \pgf@def{cos}{21}{0.93358} -\pgf@def{cos}{22}{0.927184} \pgf@def{cos}{23}{0.920505} -\pgf@def{cos}{24}{0.913545} \pgf@def{cos}{25}{0.906308} -\pgf@def{cos}{26}{0.898794} \pgf@def{cos}{27}{0.891007} -\pgf@def{cos}{28}{0.882948} \pgf@def{cos}{29}{0.87462} -\pgf@def{cos}{30}{0.866025} \pgf@def{cos}{31}{0.857167} -\pgf@def{cos}{32}{0.848048} \pgf@def{cos}{33}{0.838671} -\pgf@def{cos}{34}{0.829038} \pgf@def{cos}{35}{0.819152} -\pgf@def{cos}{36}{0.809017} \pgf@def{cos}{37}{0.798636} -\pgf@def{cos}{38}{0.788011} \pgf@def{cos}{39}{0.777146} -\pgf@def{cos}{40}{0.766044} \pgf@def{cos}{41}{0.75471} -\pgf@def{cos}{42}{0.743145} \pgf@def{cos}{43}{0.731354} -\pgf@def{cos}{44}{0.71934} \pgf@def{cos}{45}{0.707107} -\pgf@def{cos}{46}{0.694658} \pgf@def{cos}{47}{0.681998} -\pgf@def{cos}{48}{0.669131} \pgf@def{cos}{49}{0.656059} -\pgf@def{cos}{50}{0.642788} \pgf@def{cos}{51}{0.62932} -\pgf@def{cos}{52}{0.615661} \pgf@def{cos}{53}{0.601815} -\pgf@def{cos}{54}{0.587785} \pgf@def{cos}{55}{0.573576} -\pgf@def{cos}{56}{0.559193} \pgf@def{cos}{57}{0.544639} -\pgf@def{cos}{58}{0.529919} \pgf@def{cos}{59}{0.515038} -\pgf@def{cos}{60}{0.5} \pgf@def{cos}{61}{0.48481} -\pgf@def{cos}{62}{0.469472} \pgf@def{cos}{63}{0.45399} -\pgf@def{cos}{64}{0.438371} \pgf@def{cos}{65}{0.422618} -\pgf@def{cos}{66}{0.406737} \pgf@def{cos}{67}{0.390731} -\pgf@def{cos}{68}{0.374607} \pgf@def{cos}{69}{0.358368} -\pgf@def{cos}{70}{0.34202} \pgf@def{cos}{71}{0.325568} -\pgf@def{cos}{72}{0.309017} \pgf@def{cos}{73}{0.292372} -\pgf@def{cos}{74}{0.275637} \pgf@def{cos}{75}{0.258819} -\pgf@def{cos}{76}{0.241922} \pgf@def{cos}{77}{0.224951} -\pgf@def{cos}{78}{0.207912} \pgf@def{cos}{79}{0.190809} -\pgf@def{cos}{80}{0.173648} \pgf@def{cos}{81}{0.156434} -\pgf@def{cos}{82}{0.139173} \pgf@def{cos}{83}{0.121869} -\pgf@def{cos}{84}{0.104528} \pgf@def{cos}{85}{0.0871557} -\pgf@def{cos}{86}{0.0697565} \pgf@def{cos}{87}{0.052336} -\pgf@def{cos}{88}{0.0348995} \pgf@def{cos}{89}{0.0174524} -\pgf@def{cos}{90}{0} \pgf@def{cos}{91}{-0.0174524} -\pgf@def{cos}{92}{-0.0348995} \pgf@def{cos}{93}{-0.052336} -\pgf@def{cos}{94}{-0.0697565} \pgf@def{cos}{95}{-0.0871557} -\pgf@def{cos}{96}{-0.104528} \pgf@def{cos}{97}{-0.121869} -\pgf@def{cos}{98}{-0.139173} \pgf@def{cos}{99}{-0.156434} -\pgf@def{cos}{100}{-0.173648} \pgf@def{cos}{101}{-0.190809} -\pgf@def{cos}{102}{-0.207912} \pgf@def{cos}{103}{-0.224951} -\pgf@def{cos}{104}{-0.241922} \pgf@def{cos}{105}{-0.258819} -\pgf@def{cos}{106}{-0.275637} \pgf@def{cos}{107}{-0.292372} -\pgf@def{cos}{108}{-0.309017} \pgf@def{cos}{109}{-0.325568} -\pgf@def{cos}{110}{-0.34202} \pgf@def{cos}{111}{-0.358368} -\pgf@def{cos}{112}{-0.374607} \pgf@def{cos}{113}{-0.390731} -\pgf@def{cos}{114}{-0.406737} \pgf@def{cos}{115}{-0.422618} -\pgf@def{cos}{116}{-0.438371} \pgf@def{cos}{117}{-0.45399} -\pgf@def{cos}{118}{-0.469472} \pgf@def{cos}{119}{-0.48481} -\pgf@def{cos}{120}{-0.5} \pgf@def{cos}{121}{-0.515038} -\pgf@def{cos}{122}{-0.529919} \pgf@def{cos}{123}{-0.544639} -\pgf@def{cos}{124}{-0.559193} \pgf@def{cos}{125}{-0.573576} -\pgf@def{cos}{126}{-0.587785} \pgf@def{cos}{127}{-0.601815} -\pgf@def{cos}{128}{-0.615661} \pgf@def{cos}{129}{-0.62932} -\pgf@def{cos}{130}{-0.642788} \pgf@def{cos}{131}{-0.656059} -\pgf@def{cos}{132}{-0.669131} \pgf@def{cos}{133}{-0.681998} -\pgf@def{cos}{134}{-0.694658} \pgf@def{cos}{135}{-0.707107} -\pgf@def{cos}{136}{-0.71934} \pgf@def{cos}{137}{-0.731354} -\pgf@def{cos}{138}{-0.743145} \pgf@def{cos}{139}{-0.75471} -\pgf@def{cos}{140}{-0.766044} \pgf@def{cos}{141}{-0.777146} -\pgf@def{cos}{142}{-0.788011} \pgf@def{cos}{143}{-0.798636} -\pgf@def{cos}{144}{-0.809017} \pgf@def{cos}{145}{-0.819152} -\pgf@def{cos}{146}{-0.829038} \pgf@def{cos}{147}{-0.838671} -\pgf@def{cos}{148}{-0.848048} \pgf@def{cos}{149}{-0.857167} -\pgf@def{cos}{150}{-0.866025} \pgf@def{cos}{151}{-0.87462} -\pgf@def{cos}{152}{-0.882948} \pgf@def{cos}{153}{-0.891007} -\pgf@def{cos}{154}{-0.898794} \pgf@def{cos}{155}{-0.906308} -\pgf@def{cos}{156}{-0.913545} \pgf@def{cos}{157}{-0.920505} -\pgf@def{cos}{158}{-0.927184} \pgf@def{cos}{159}{-0.93358} -\pgf@def{cos}{160}{-0.939693} \pgf@def{cos}{161}{-0.945519} -\pgf@def{cos}{162}{-0.951057} \pgf@def{cos}{163}{-0.956305} -\pgf@def{cos}{164}{-0.961262} \pgf@def{cos}{165}{-0.965926} -\pgf@def{cos}{166}{-0.970296} \pgf@def{cos}{167}{-0.97437} -\pgf@def{cos}{168}{-0.978148} \pgf@def{cos}{169}{-0.981627} -\pgf@def{cos}{170}{-0.984808} \pgf@def{cos}{171}{-0.987688} -\pgf@def{cos}{172}{-0.990268} \pgf@def{cos}{173}{-0.992546} -\pgf@def{cos}{174}{-0.994522} \pgf@def{cos}{175}{-0.996195} -\pgf@def{cos}{176}{-0.997564} \pgf@def{cos}{177}{-0.99863} -\pgf@def{cos}{178}{-0.999391} \pgf@def{cos}{179}{-0.999848} -\pgf@def{cos}{180}{-1} - - - -\pgf@def{cosfrac}{0}{1} -\pgf@def{cosfrac}{1}{0.99995} \pgf@def{cosfrac}{2}{0.9998} -\pgf@def{cosfrac}{3}{0.99955} \pgf@def{cosfrac}{4}{0.999201} -\pgf@def{cosfrac}{5}{0.998752} \pgf@def{cosfrac}{6}{0.998205} -\pgf@def{cosfrac}{7}{0.997559} \pgf@def{cosfrac}{8}{0.996815} -\pgf@def{cosfrac}{9}{0.995974} \pgf@def{cosfrac}{10}{0.995037} -\pgf@def{cosfrac}{11}{0.994004} \pgf@def{cosfrac}{12}{0.992877} -\pgf@def{cosfrac}{13}{0.991656} \pgf@def{cosfrac}{14}{0.990342} -\pgf@def{cosfrac}{15}{0.988936} \pgf@def{cosfrac}{16}{0.987441} -\pgf@def{cosfrac}{17}{0.985856} \pgf@def{cosfrac}{18}{0.984183} -\pgf@def{cosfrac}{19}{0.982424} \pgf@def{cosfrac}{20}{0.980581} -\pgf@def{cosfrac}{21}{0.978653} \pgf@def{cosfrac}{22}{0.976644} -\pgf@def{cosfrac}{23}{0.974555} \pgf@def{cosfrac}{24}{0.972387} -\pgf@def{cosfrac}{25}{0.970143} \pgf@def{cosfrac}{26}{0.967823} -\pgf@def{cosfrac}{27}{0.965429} \pgf@def{cosfrac}{28}{0.962964} -\pgf@def{cosfrac}{29}{0.960429} \pgf@def{cosfrac}{30}{0.957826} -\pgf@def{cosfrac}{31}{0.955157} \pgf@def{cosfrac}{32}{0.952424} -\pgf@def{cosfrac}{33}{0.949629} \pgf@def{cosfrac}{34}{0.946773} -\pgf@def{cosfrac}{35}{0.943858} \pgf@def{cosfrac}{36}{0.940887} -\pgf@def{cosfrac}{37}{0.937862} \pgf@def{cosfrac}{38}{0.934784} -\pgf@def{cosfrac}{39}{0.931655} \pgf@def{cosfrac}{40}{0.928477} -\pgf@def{cosfrac}{41}{0.925252} \pgf@def{cosfrac}{42}{0.921982} -\pgf@def{cosfrac}{43}{0.918669} \pgf@def{cosfrac}{44}{0.915315} -\pgf@def{cosfrac}{45}{0.911922} \pgf@def{cosfrac}{46}{0.90849} -\pgf@def{cosfrac}{47}{0.905024} \pgf@def{cosfrac}{48}{0.901523} -\pgf@def{cosfrac}{49}{0.89799} \pgf@def{cosfrac}{50}{0.894427} -\pgf@def{cosfrac}{51}{0.890835} \pgf@def{cosfrac}{52}{0.887217} -\pgf@def{cosfrac}{53}{0.883573} \pgf@def{cosfrac}{54}{0.879905} -\pgf@def{cosfrac}{55}{0.876216} \pgf@def{cosfrac}{56}{0.872506} -\pgf@def{cosfrac}{57}{0.868777} \pgf@def{cosfrac}{58}{0.865031} -\pgf@def{cosfrac}{59}{0.861269} \pgf@def{cosfrac}{60}{0.857493} -\pgf@def{cosfrac}{61}{0.853704} \pgf@def{cosfrac}{62}{0.849903} -\pgf@def{cosfrac}{63}{0.846092} \pgf@def{cosfrac}{64}{0.842271} -\pgf@def{cosfrac}{65}{0.838444} \pgf@def{cosfrac}{66}{0.834609} -\pgf@def{cosfrac}{67}{0.83077} \pgf@def{cosfrac}{68}{0.826927} -\pgf@def{cosfrac}{69}{0.82308} \pgf@def{cosfrac}{70}{0.819232} -\pgf@def{cosfrac}{71}{0.815383} \pgf@def{cosfrac}{72}{0.811534} -\pgf@def{cosfrac}{73}{0.807687} \pgf@def{cosfrac}{74}{0.803842} -\pgf@def{cosfrac}{75}{0.8} \pgf@def{cosfrac}{76}{0.796162} -\pgf@def{cosfrac}{77}{0.792329} \pgf@def{cosfrac}{78}{0.788502} -\pgf@def{cosfrac}{79}{0.784682} \pgf@def{cosfrac}{80}{0.780869} -\pgf@def{cosfrac}{81}{0.777064} \pgf@def{cosfrac}{82}{0.773268} -\pgf@def{cosfrac}{83}{0.769481} \pgf@def{cosfrac}{84}{0.765705} -\pgf@def{cosfrac}{85}{0.761939} \pgf@def{cosfrac}{86}{0.758185} -\pgf@def{cosfrac}{87}{0.754443} \pgf@def{cosfrac}{88}{0.750714} -\pgf@def{cosfrac}{89}{0.746997} \pgf@def{cosfrac}{90}{0.743294} -\pgf@def{cosfrac}{91}{0.739605} \pgf@def{cosfrac}{92}{0.735931} -\pgf@def{cosfrac}{93}{0.732272} \pgf@def{cosfrac}{94}{0.728628} -\pgf@def{cosfrac}{95}{0.724999} \pgf@def{cosfrac}{96}{0.721387} -\pgf@def{cosfrac}{97}{0.717792} \pgf@def{cosfrac}{98}{0.714213} -\pgf@def{cosfrac}{99}{0.710651} \pgf@def{cosfrac}{100}{0.707107} - - - -\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex index ad0a8fff031..2886ffa8a53 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex,v 1.6 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex,v 1.9 2007/06/07 07:41:10 tantau Exp $ \newdimen\pgf@path@lastx @@ -218,8 +218,8 @@ % \pgfstroke \def\pgfpatharc#1#2#3{% - \pgf@setcounter{pgf@countc}{#1}% - \pgf@setcounter{pgf@countd}{#2}% + \pgfmathsetcounter{pgf@countc}{#1}% + \pgfmathsetcounter{pgf@countd}{#2}% \ifnum\c@pgf@countc>360\relax% \advance\c@pgf@countc by-360\relax% \fi% @@ -233,21 +233,21 @@ \advance\c@pgf@countd by360\relax% \fi% \loop% - \@tempcnta=\c@pgf@countc\relax% - \advance\@tempcnta by-\c@pgf@countd\relax% - \ifnum\@tempcnta<0\relax% - \@tempcnta=-\@tempcnta\relax% + \pgfutil@tempcnta=\c@pgf@countc\relax% + \advance\pgfutil@tempcnta by-\c@pgf@countd\relax% + \ifnum\pgfutil@tempcnta<0\relax% + \pgfutil@tempcnta=-\pgfutil@tempcnta\relax% \fi% - \ifnum\@tempcnta>90\relax% + \ifnum\pgfutil@tempcnta>90\relax% \ifnum\c@pgf@countd>\c@pgf@countc\relax% - \@tempcnta=\c@pgf@countc\relax% - \advance\@tempcnta by 90\relax% - \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\@tempcnta}{#3}% + \pgfutil@tempcnta=\c@pgf@countc\relax% + \advance\pgfutil@tempcnta by 90\relax% + \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\pgfutil@tempcnta}{#3}% \advance\c@pgf@countc by 90\relax% \else - \@tempcnta=\c@pgf@countc\relax% - \advance\@tempcnta by -90\relax% - \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\@tempcnta}{#3}% + \pgfutil@tempcnta=\c@pgf@countc\relax% + \advance\pgfutil@tempcnta by -90\relax% + \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\pgfutil@tempcnta}{#3}% \advance\c@pgf@countc by -90\relax% \fi% \repeat% @@ -256,53 +256,53 @@ } \def\pgf@arc#1#2#3{% - \pgfutil@in@/{#3}% + \pgfutil@in@{and }{#3}% \ifpgfutil@in@% \pgf@@arc{#1}{#2}#3\@@% \else - \pgf@@arc{#1}{#2}#3/#3\@@% + \pgf@@arc{#1}{#2}#3and #3\@@% \fi% } -\def\pgf@@arc#1#2#3/#4\@@{% - \setlength{\@tempdima}{#3}% - \setlength{\@tempdimb}{#4}% - \@tempcnta=#1\relax% - \@tempcntb=#2\relax% - \advance\@tempcntb by-\@tempcnta\relax% - \ifnum\@tempcntb<0\relax% - \@tempcntb=-\@tempcntb\relax% +\def\pgf@@arc#1#2#3and #4\@@{% + \pgfmathsetlength{\pgfutil@tempdima}{#3}% + \pgfmathsetlength{\pgfutil@tempdimb}{#4}% + \pgfutil@tempcnta=#1\relax% + \pgfutil@tempcntb=#2\relax% + \advance\pgfutil@tempcntb by-\pgfutil@tempcnta\relax% + \ifnum\pgfutil@tempcntb<0\relax% + \pgfutil@tempcntb=-\pgfutil@tempcntb\relax% \fi% - \ifnum\@tempcntb>85\relax% hackery to correct the control points - \@tempdima=0.0555\@tempdima\relax% - \@tempdimb=0.0555\@tempdimb\relax% + \ifnum\pgfutil@tempcntb>85\relax% hackery to correct the control points + \pgfutil@tempdima=0.0555\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.0555\pgfutil@tempdimb\relax% \else% - \ifnum\@tempcntb>75\relax% - \@tempdima=0.055\@tempdima\relax% - \@tempdimb=0.055\@tempdimb\relax% + \ifnum\pgfutil@tempcntb>75\relax% + \pgfutil@tempdima=0.055\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.055\pgfutil@tempdimb\relax% \else% - \ifnum\@tempcntb>60\relax% - \@tempdima=0.0545\@tempdima\relax% - \@tempdimb=0.0545\@tempdimb\relax% + \ifnum\pgfutil@tempcntb>60\relax% + \pgfutil@tempdima=0.0545\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.0545\pgfutil@tempdimb\relax% \else% - \@tempdima=0.054\@tempdima\relax% - \@tempdimb=0.054\@tempdimb\relax% + \pgfutil@tempdima=0.054\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.054\pgfutil@tempdimb\relax% \fi% \fi% \fi - \@tempdima=\@tempcntb\@tempdima\relax% - \divide\@tempdima by 9\relax% - \@tempdimb=\@tempcntb\@tempdimb\relax% - \divide\@tempdimb by 9\relax% - %.. controls +(\@tempcnta+90:\@tempdima) and +(\@tempcntb-90:\@tempdima) .. +(-(#1:#3)+(#2:#3))% + \pgfutil@tempdima=\pgfutil@tempcntb\pgfutil@tempdima\relax% + \divide\pgfutil@tempdima by 9\relax% + \pgfutil@tempdimb=\pgfutil@tempcntb\pgfutil@tempdimb\relax% + \divide\pgfutil@tempdimb by 9\relax% + %.. controls +(\pgfutil@tempcnta+90:\pgfutil@tempdima) and +(\pgfutil@tempcntb-90:\pgfutil@tempdima) .. +(-(#1:#3)+(#2:#3))% % store first support vector in xa/ya: - \@tempcnta=#1\relax% + \pgfutil@tempcnta=#1\relax% \ifnum#2>#1\relax% - \advance\@tempcnta by 90\relax% + \advance\pgfutil@tempcnta by 90\relax% \else% - \advance\@tempcnta by -90\relax% + \advance\pgfutil@tempcnta by -90\relax% \fi% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{\@tempdima/\@tempdimb}}% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{\pgfutil@tempdima and \pgfutil@tempdimb}}% \advance\pgf@x by-\pgf@pt@x% \advance\pgf@y by-\pgf@pt@y% \pgf@xa=\pgf@path@lastx% @@ -310,24 +310,24 @@ \advance\pgf@xa by \pgf@x% \advance\pgf@ya by \pgf@y% % store target in xb/yb: - \@tempcnta=#1\relax% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{#3/#4}}% + \pgfutil@tempcnta=#1\relax% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{#3and #4}}% \pgf@xb=\pgf@path@lastx% \pgf@yb=\pgf@path@lasty% \advance\pgf@xb by -\pgf@x% \advance\pgf@yb by -\pgf@y% - \@tempcnta=#2\relax% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{#3/#4}}% + \pgfutil@tempcnta=#2\relax% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{#3and #4}}% \advance\pgf@xb by \pgf@x% \advance\pgf@yb by \pgf@y% % store second support xc/yc: - \@tempcnta=#2\relax% + \pgfutil@tempcnta=#2\relax% \ifnum#2>#1\relax% - \advance\@tempcnta by -90\relax% + \advance\pgfutil@tempcnta by -90\relax% \else% - \advance\@tempcnta by 90\relax% + \advance\pgfutil@tempcnta by 90\relax% \fi% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{\@tempdima/\@tempdimb}}% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{\pgfutil@tempdima and \pgfutil@tempdimb}}% \advance\pgf@x by-\pgf@pt@x% \advance\pgf@y by-\pgf@pt@y% \pgf@xc=\pgf@xb\relax% @@ -554,12 +554,12 @@ \pgf@yb=\pgf@y% \advance\pgf@xa by\pgf@xb% \advance\pgf@ya by\pgf@yb% - \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}% - \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}% - \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}% - \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}% + \pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}% + \pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@ya}}% + \pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}% + \pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}% \pgfpathclose% - \pgfpathmoveto{\pgfpoint{\pgf@xb}{\pgf@yb}}% + \pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@yb}}% } % Append a rectangle to the current path @@ -579,7 +579,7 @@ \pgf@process{#1}% \advance\pgf@xc by-\pgf@x% \advance\pgf@yc by-\pgf@y% - \pgfpathrectangle{#1}{\pgfpoint{\pgf@xc}{\pgf@yc}}% + \pgfpathrectangle{#1}{\pgfqpoint{\pgf@xc}{\pgf@yc}}% } @@ -601,8 +601,8 @@ % \pgfsetlinewidth{0.4pt} % \pgfgrid[stepx=1cm,stepy=1cm]{\pgfxy(0,0)}{\pgfxy(3,2)} -\define@key{pgfbase}{stepx}{\setlength{\pgf@x}{#1}\relax} -\define@key{pgfbase}{stepy}{\setlength{\pgf@y}{#1}\relax} +\define@key{pgfbase}{stepx}{\pgfmathsetlength{\pgf@x}{#1}\relax} +\define@key{pgfbase}{stepy}{\pgfmathsetlength{\pgf@y}{#1}\relax} \define@key{pgfbase}{step}{\pgf@process{#1}} \def\pgfpathgrid{\pgfutil@ifnextchar[{\pgf@pathgrid}{\pgf@pathgrid[]}} @@ -774,9 +774,9 @@ \pgf@pt@x=\pgf@path@lastx% \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.1125\pgf@xc}{.225\pgf@yc}}% found by trial and error - {\pgfpoint{.5\pgf@xc}{\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.1125\pgf@xc}{.225\pgf@yc}}% found by trial and error + {\pgfqpoint{.5\pgf@xc}{\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% \fi% }% @@ -787,9 +787,9 @@ \pgf@pt@x=\pgf@path@lastx% \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.5\pgf@xc}{0\pgf@yc}}% found by trial and error - {\pgfpoint{.8875\pgf@xc}{.775\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.5\pgf@xc}{0\pgf@yc}}% found by trial and error + {\pgfqpoint{.8875\pgf@xc}{.775\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% \fi% }% @@ -822,9 +822,9 @@ \pgf@pt@x=\pgf@path@lastx% evil trickery to transform to the last point \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.31830988618\pgf@xc}{.5\pgf@yc}}% found by trial and error - {\pgfpoint{.63502822294\pgf@xc}{\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.31831\pgf@xc}{.5\pgf@yc}}% found by trial and error + {\pgfqpoint{.63503\pgf@xc}{\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% } @@ -847,9 +847,9 @@ \pgf@pt@x=\pgf@path@lastx% evil trickery to transform to the last point \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.36497177706\pgf@xc}{0pt}}% found by trial and error - {\pgfpoint{.68169011382\pgf@xc}{.5\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.36497\pgf@xc}{0pt}}% found by trial and error + {\pgfqpoint{.68169\pgf@xc}{.5\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex index a913b30d52a..072585ba3a8 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex,v 1.5 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex,v 1.6 2007/03/09 17:49:32 tantau Exp $ @@ -103,7 +103,7 @@ } \def\pgf@extractprocessorfirst#1#2#3#4{% - \def\pgfpointfirstonpath{\pgfpoint{#2}{#3}}% + \def\pgfpointfirstonpath{\pgfqpoint{#2}{#3}}% \ifx#4\pgf@stop% % pretty short path... \let\pgfpointsecondonpath=\pgfpointfirstonpath% @@ -126,7 +126,7 @@ \pgf@next#1% } \def\pgf@@extractprocessorsecond#1#2#3#4{% - \def\pgfpointsecondonpath{\pgfpoint{#2}{#3}}% + \def\pgfpointsecondonpath{\pgfqpoint{#2}{#3}}% \let\pgfpointsecondlastonpath=\pgfpointfirstonpath% \let\pgfpointlastonpath=\pgfpointsecondonpath% \ifx#4\pgf@stop% @@ -149,7 +149,7 @@ } \def\pgf@@extractprocessorother#1#2#3#4{% \let\pgfpointsecondlastonpath=\pgfpointlastonpath% - \def\pgfpointlastonpath{\pgfpoint{#2}{#3}}% + \def\pgfpointlastonpath{\pgfqpoint{#2}{#3}}% \ifx#4\pgf@stop% % end! \let\next=\pgfutil@gobble% @@ -330,8 +330,8 @@ % \edef\pgf@marshal% {\noexpand\pgfpointlineatdistance{\pgfprocess@savex}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - {\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + {\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}% \pgf@process{\pgf@marshal}% \pgf@xa=\pgf@x% save start point of added curve \pgf@ya=\pgf@y% @@ -342,8 +342,8 @@ % \edef\pgf@marshal% {\noexpand\pgfpointlineatdistance{\pgfprocess@savey}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - {\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + {\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}}% \pgf@process{\pgf@marshal}% \pgf@xc=\pgf@x% save end point of added curve \pgf@yc=\pgf@y% diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex index c7d20093db9..e7d918f5210 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathusage.code.tex,v 1.7 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathusage.code.tex,v 1.8 2007/03/09 17:49:32 tantau Exp $ % Stroke/fill/clip/etc. the current path. Depending on the options, @@ -128,8 +128,8 @@ % \pgfpathmoveto{\pgfpointorigin} % \pgfpathlineto{\pgfpoint{11pt}{0pt} -\def\pgfsetshortenstart#1{\setlength\pgf@shorten@start@additional{#1}} -\def\pgfsetshortenend#1{\setlength\pgf@shorten@end@additional{#1}} +\def\pgfsetshortenstart#1{\pgfmathsetlength\pgf@shorten@start@additional{#1}} +\def\pgfsetshortenend#1{\pgfmathsetlength\pgf@shorten@end@additional{#1}} \newif\ifpgf@drawarrows @@ -183,8 +183,8 @@ \global\advance\pgf@x by\pgf@xa% \global\advance\pgf@y by\pgf@ya% }% - \edef\pgfpointfirstonpath{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - \edef\pgfpointsecondonpath{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \edef\pgfpointfirstonpath{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + \edef\pgfpointsecondonpath{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% {% \pgf@x=0pt% \pgf@shorten@end% @@ -197,8 +197,8 @@ \global\advance\pgf@x by\pgf@xa% \global\advance\pgf@y by\pgf@ya% }% - \edef\pgfpointlastonpath{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - \edef\pgfpointsecondlastonpath{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \edef\pgfpointlastonpath{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + \edef\pgfpointsecondlastonpath{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% \pgfprocesspathreplacestartandend{\pgf@arrowpath}{\pgfpointfirstonpath}{\pgfpointlastonpath}% \pgfsyssoftpath@setcurrentpath\pgf@arrowpath% } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex index 3f2a26be578..0edcd6d7b2c 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepoints.code.tex,v 1.7 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepoints.code.tex,v 1.9 2007/04/19 11:57:08 tantau Exp $ \newdimen\pgf@picminx \newdimen\pgf@picmaxx @@ -23,27 +23,6 @@ \def\pgf@process#1{{#1\global\pgf@x=\pgf@x\global\pgf@y=\pgf@y}} -\newdimen\pgf@tempdim -\def\pgf@setlength#1#2{% these will be used only when \nullfont is active - \begingroup% keep font setting local - \pgf@selectfontorig% restore font - \pgf@setlengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) - \global\pgf@tempdim\pgf@tempdim% make dimension global - \endgroup% - #1=\pgf@tempdim\relax} -\def\pgf@addtolength#1#2{% - \begingroup% keep font setting local - \pgf@selectfontorig% restore font - \pgf@tempdim#1\relax% - \pgf@addtolengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) - \global\pgf@tempdim\pgf@tempdim% make dimension global - \endgroup% - #1=\pgf@tempdim\relax} -\newcount\c@pgf@tempcount -\def\pgf@setcounter#1#2{% - \pgflatex@setcounter{pgf@tempcount}{#2}% makes change global! - \csname c@#1\endcsname=\c@pgf@tempcount\relax} -\def\pgf@selectfont{\pgf@selectfontorig\nullfont} @@ -60,8 +39,8 @@ % \pgfpathmoveto{\pgfpoint{2pt+3cm}{3cm}} \def\pgfpoint#1#2{% - \setlength\pgf@x{#1}% - \setlength\pgf@y{#2}\ignorespaces} + \pgfmathsetlength\pgf@x{#1}% + \pgfmathsetlength\pgf@y{#2}\ignorespaces} % Quickly a point @@ -89,7 +68,7 @@ % % \pgfpathmoveto{\pgfpointorigin} -\def\pgfpointorigin{\pgfpoint{0pt}{0pt}\ignorespaces} +\def\pgfpointorigin{\pgf@x=0pt\pgf@y=\pgf@x\ignorespaces} @@ -321,7 +300,7 @@ \advance\pgf@x by-\pgf@xb\relax% \advance\pgf@y by-\pgf@yb\relax% \pgf@process{\pgfpointnormalised{}}% x/y = normalised vector - \setlength\pgf@xa{#1}% + \pgfmathsetlength\pgf@xa{#1}% \pgf@ya=\pgf@xa\relax% \pgf@xa=\pgf@sys@tonumber{\pgf@x}\pgf@xa% \pgf@ya=\pgf@sys@tonumber{\pgf@y}\pgf@ya% @@ -353,8 +332,9 @@ % \pgfpathmoveto{\pgfpointcurveattime{0.5}{\pgfpointxy{0}{1}}{\pgfpointxy{1}{1}}{\pgfpointxy{1}{1}}{\pgfpointxy{2}{3}}} \def\pgfpointcurveattime#1#2#3#4#5{% - \def\pgf@time@s{#1}% - \pgf@x=#1pt% + \pgfmathparse{#1}% + \let\pgf@time@s=\pgfmathresult% + \pgf@x=\pgfmathresult pt% \pgf@x=-\pgf@x% \advance\pgf@x by 1pt% \edef\pgf@time@t{\pgf@sys@tonumber{\pgf@x}}% @@ -406,8 +386,8 @@ % A polar coordinate % % #1 = a degree -% #2 = a radius -- either a dimension or two dimensions separated by a -% slash. +% #2 = a radius -- either a dimension or two dimensions separated by +% " and ". % % x = (first dimension in #2) * cos(#1) % y = (second dimension in #2) * sin(#2) @@ -415,26 +395,41 @@ % Example: % % \pgfpathmoveto{\pgfpointpolar{30}{1cm}} -% \pgfpathlineto{\pgfpointpolar{30}{1cm/2cm}} +% \pgfpathlineto{\pgfpointpolar{30}{1cm and 2cm}} \def\pgfpointpolar#1#2{% - \pgfsincos{#1}% - \pgfutil@in@/{#2}% + \pgfutil@in@{and }{#2}% \ifpgfutil@in@% \pgf@polar@#2\@@% \else% - \pgf@polar@#2/#2\@@% + \pgf@polar@#2 and #2\@@% \fi% - \pgf@xa=\pgf@sys@tonumber{\pgf@x}\pgf@xa% - \pgf@ya=\pgf@sys@tonumber{\pgf@y}\pgf@ya% - \pgf@y=\pgf@xa\relax% - \pgf@x=\pgf@ya\ignorespaces} + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@x=\pgfmathresult\pgf@x% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@y=\pgfmathresult\pgf@y% +} -\def\pgf@polar@#1/#2\@@{% - \setlength{\pgf@xa}{#2}% - \setlength{\pgf@ya}{#1}% +\def\pgf@polar@#1and #2\@@{% + \pgfmathsetlength{\pgf@y}{#2}% + \pgfmathsetlength{\pgf@x}{#1}% } +% Quick version of the polar coordinate method + +\def\pgfqpointpolar#1#2{% + \pgf@x=#2% + \pgf@y=\pgf@x% + \pgfmathcos@{#1}% + \pgf@x=\pgfmathresult\pgf@x% + \pgfmathsin@{#1}% + \pgf@y=\pgfmathresult\pgf@y\relax% +} + + + % A polar coordinate in the xy plane. % @@ -449,21 +444,26 @@ % \pgfpathmoveto{\pgfpointpolarxy{30}{2}} \def\pgfpointpolarxy#1#2{% - \pgfsincos{#1}% - \pgfutil@in@/{#2}% + \pgfutil@in@{and }{#2}% \ifpgfutil@in@% \pgf@polarxy@#2\@@% \else% - \pgf@polarxy@#2/#2\@@% + \pgf@polarxy@#2and #2\@@% \fi% + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@xa=\pgfmathresult\pgf@xa% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@ya=\pgfmathresult\pgf@ya% \pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@xx% \advance\pgf@x by \pgf@sys@tonumber{\pgf@ya}\pgf@yx% \pgf@y=\pgf@sys@tonumber{\pgf@xa}\pgf@xy% \advance\pgf@y by \pgf@sys@tonumber{\pgf@ya}\pgf@yy} -\def\pgf@polarxy@#1/#2\@@{% - \pgf@xa=#1\pgf@y% - \pgf@ya=#2\pgf@x% +\def\pgf@polarxy@#1and #2\@@{% + \pgfmathsetlength{\pgf@xa}{#1}% + \pgfmathsetlength{\pgf@ya}{#2}% } @@ -482,8 +482,9 @@ \def\pgfpointcylindrical#1#2#3{% \pgfpointpolarxy{#1}{#2}% - \advance\pgf@x by #3\pgf@zx% - \advance\pgf@y by #3\pgf@zy} + \pgfmathparse{#3}% + \advance\pgf@x by \pgfmathresult\pgf@zx% + \advance\pgf@y by \pgfmathresult\pgf@zy} % A spherical coordinate. @@ -499,18 +500,26 @@ % \pgfpathmoveto{\pgfpointspherical{30}{30}{2}} \def\pgfpointspherical#1#2#3{% - \pgfsincos{#1}% - \pgf@xb=\pgf@sys@tonumber{\pgf@y}\pgf@xx% - \advance\pgf@xb by \pgf@sys@tonumber{\pgf@x}\pgf@yx% - \pgf@yb=\pgf@sys@tonumber{\pgf@y}\pgf@xy% - \advance\pgf@yb by \pgf@sys@tonumber{\pgf@x}\pgf@yy% - \pgfsincos{#2}% - \pgf@xc=\pgf@sys@tonumber{\pgf@y}\pgf@xb% - \advance\pgf@xc by \pgf@sys@tonumber{\pgf@x}\pgf@zx% - \pgf@yc=\pgf@sys@tonumber{\pgf@y}\pgf@yb% - \advance\pgf@yc by \pgf@sys@tonumber{\pgf@x}\pgf@zy% - \pgf@x=#3\pgf@xc% - \pgf@y=#3\pgf@yc% + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@xb=\pgfmathresult\pgf@xx% + \pgf@yb=\pgfmathresult\pgf@xy% + \pgfmathcos@{\pgfpoint@angle}% + \advance\pgf@xb by \pgfmathresult\pgf@yx% + \advance\pgf@yb by \pgfmathresult\pgf@yy% + % + \pgfmathparse{#2}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@xc=\pgfmathresult\pgf@xb% + \pgf@yc=\pgfmathresult\pgf@yb% + \pgfmathsin@{\pgfpoint@angle}% + \advance\pgf@xc by \pgfmathresult\pgf@zx% + \advance\pgf@yc by \pgfmathresult\pgf@zy% + \pgfmathparse{#3}% + \pgf@x=\pgfmathresult\pgf@xc% + \pgf@y=\pgfmathresult\pgf@yc\relax% } @@ -542,10 +551,15 @@ % \pgfpathlineto{\pgfpointxy{0}{1}} % \pgfclosestroke -\def\pgfpointxy#1#2{\pgf@x=#1\pgf@xx% - \advance\pgf@x by #2\pgf@yx% - \pgf@y=#1\pgf@xy% - \advance\pgf@y by #2\pgf@yy} +\def\pgfpointxy#1#2{% + \pgfmathparse{#1}% + \let\pgftemp@x=\pgfmathresult% + \pgfmathparse{#2}% + \let\pgftemp@y=\pgfmathresult% + \pgf@x=\pgftemp@x\pgf@xx% + \advance\pgf@x by \pgftemp@y\pgf@yx% + \pgf@y=\pgftemp@x\pgf@xy% + \advance\pgf@y by \pgftemp@y\pgf@yy} % Store the vector #1 * x-vec + #2 * y-vec + #3 * z-vec @@ -581,12 +595,18 @@ % \pgfline{\pgfpointxyz{0}{1}{1}}{\pgfpointxyz{1}{1}{1}} \def\pgfpointxyz#1#2#3{% - \pgf@x=#1\pgf@xx% - \advance\pgf@x by #2\pgf@yx% - \advance\pgf@x by #3\pgf@zx% - \pgf@y=#1\pgf@xy% - \advance\pgf@y by #2\pgf@yy% - \advance\pgf@y by #3\pgf@zy} + \pgfmathparse{#1}% + \let\pgftemp@x=\pgfmathresult% + \pgfmathparse{#2}% + \let\pgftemp@y=\pgfmathresult% + \pgfmathparse{#3}% + \let\pgftemp@z=\pgfmathresult% + \pgf@x=\pgftemp@x\pgf@xx% + \advance\pgf@x by \pgftemp@y\pgf@yx% + \advance\pgf@x by \pgftemp@z\pgf@zx% + \pgf@y=\pgftemp@x\pgf@xy% + \advance\pgf@y by \pgftemp@y\pgf@yy% + \advance\pgf@y by \pgftemp@z\pgf@zy} @@ -688,7 +708,7 @@ \pgf@y=0pt\relax% \else% \divide\c@pgf@countb by \c@pgf@counta% - \pgf@setmath{x}{\csname pgf@cosfrac\the\c@pgf@countb\endcsname}% + \pgf@x=\csname pgf@cosfrac\the\c@pgf@countb\endcsname pt% \pgf@xc=8192pt% \divide\pgf@xc by\c@pgf@counta% \pgf@y=\pgf@sys@tonumber{\pgf@xc}\pgf@ya% @@ -719,7 +739,7 @@ \pgf@x=0pt\relax% \else% \divide\c@pgf@countb by \c@pgf@counta% - \pgf@setmath{y}{\csname pgf@cosfrac\the\c@pgf@countb\endcsname}% + \pgf@y=\csname pgf@cosfrac\the\c@pgf@countb\endcsname pt% \pgf@xc=8192pt% \divide\pgf@xc by\c@pgf@counta% \pgf@x=\pgf@sys@tonumber{\pgf@xc}\pgf@xa% @@ -728,7 +748,8 @@ \ifdim\pgf@ya<0pt% \pgf@y=-\pgf@y% \fi% - \fi\ignorespaces} + \fi\ignorespaces% +} @@ -919,4 +940,60 @@ #1=\pgf@y\relax} + +\def\pgf@def#1#2#3{\expandafter\def\csname pgf@#1#2\endcsname{#3}} +\pgf@def{cosfrac}{0}{1} +\pgf@def{cosfrac}{1}{0.99995} \pgf@def{cosfrac}{2}{0.9998} +\pgf@def{cosfrac}{3}{0.99955} \pgf@def{cosfrac}{4}{0.999201} +\pgf@def{cosfrac}{5}{0.998752} \pgf@def{cosfrac}{6}{0.998205} +\pgf@def{cosfrac}{7}{0.997559} \pgf@def{cosfrac}{8}{0.996815} +\pgf@def{cosfrac}{9}{0.995974} \pgf@def{cosfrac}{10}{0.995037} +\pgf@def{cosfrac}{11}{0.994004} \pgf@def{cosfrac}{12}{0.992877} +\pgf@def{cosfrac}{13}{0.991656} \pgf@def{cosfrac}{14}{0.990342} +\pgf@def{cosfrac}{15}{0.988936} \pgf@def{cosfrac}{16}{0.987441} +\pgf@def{cosfrac}{17}{0.985856} \pgf@def{cosfrac}{18}{0.984183} +\pgf@def{cosfrac}{19}{0.982424} \pgf@def{cosfrac}{20}{0.980581} +\pgf@def{cosfrac}{21}{0.978653} \pgf@def{cosfrac}{22}{0.976644} +\pgf@def{cosfrac}{23}{0.974555} \pgf@def{cosfrac}{24}{0.972387} +\pgf@def{cosfrac}{25}{0.970143} \pgf@def{cosfrac}{26}{0.967823} +\pgf@def{cosfrac}{27}{0.965429} \pgf@def{cosfrac}{28}{0.962964} +\pgf@def{cosfrac}{29}{0.960429} \pgf@def{cosfrac}{30}{0.957826} +\pgf@def{cosfrac}{31}{0.955157} \pgf@def{cosfrac}{32}{0.952424} +\pgf@def{cosfrac}{33}{0.949629} \pgf@def{cosfrac}{34}{0.946773} +\pgf@def{cosfrac}{35}{0.943858} \pgf@def{cosfrac}{36}{0.940887} +\pgf@def{cosfrac}{37}{0.937862} \pgf@def{cosfrac}{38}{0.934784} +\pgf@def{cosfrac}{39}{0.931655} \pgf@def{cosfrac}{40}{0.928477} +\pgf@def{cosfrac}{41}{0.925252} \pgf@def{cosfrac}{42}{0.921982} +\pgf@def{cosfrac}{43}{0.918669} \pgf@def{cosfrac}{44}{0.915315} +\pgf@def{cosfrac}{45}{0.911922} \pgf@def{cosfrac}{46}{0.90849} +\pgf@def{cosfrac}{47}{0.905024} \pgf@def{cosfrac}{48}{0.901523} +\pgf@def{cosfrac}{49}{0.89799} \pgf@def{cosfrac}{50}{0.894427} +\pgf@def{cosfrac}{51}{0.890835} \pgf@def{cosfrac}{52}{0.887217} +\pgf@def{cosfrac}{53}{0.883573} \pgf@def{cosfrac}{54}{0.879905} +\pgf@def{cosfrac}{55}{0.876216} \pgf@def{cosfrac}{56}{0.872506} +\pgf@def{cosfrac}{57}{0.868777} \pgf@def{cosfrac}{58}{0.865031} +\pgf@def{cosfrac}{59}{0.861269} \pgf@def{cosfrac}{60}{0.857493} +\pgf@def{cosfrac}{61}{0.853704} \pgf@def{cosfrac}{62}{0.849903} +\pgf@def{cosfrac}{63}{0.846092} \pgf@def{cosfrac}{64}{0.842271} +\pgf@def{cosfrac}{65}{0.838444} \pgf@def{cosfrac}{66}{0.834609} +\pgf@def{cosfrac}{67}{0.83077} \pgf@def{cosfrac}{68}{0.826927} +\pgf@def{cosfrac}{69}{0.82308} \pgf@def{cosfrac}{70}{0.819232} +\pgf@def{cosfrac}{71}{0.815383} \pgf@def{cosfrac}{72}{0.811534} +\pgf@def{cosfrac}{73}{0.807687} \pgf@def{cosfrac}{74}{0.803842} +\pgf@def{cosfrac}{75}{0.8} \pgf@def{cosfrac}{76}{0.796162} +\pgf@def{cosfrac}{77}{0.792329} \pgf@def{cosfrac}{78}{0.788502} +\pgf@def{cosfrac}{79}{0.784682} \pgf@def{cosfrac}{80}{0.780869} +\pgf@def{cosfrac}{81}{0.777064} \pgf@def{cosfrac}{82}{0.773268} +\pgf@def{cosfrac}{83}{0.769481} \pgf@def{cosfrac}{84}{0.765705} +\pgf@def{cosfrac}{85}{0.761939} \pgf@def{cosfrac}{86}{0.758185} +\pgf@def{cosfrac}{87}{0.754443} \pgf@def{cosfrac}{88}{0.750714} +\pgf@def{cosfrac}{89}{0.746997} \pgf@def{cosfrac}{90}{0.743294} +\pgf@def{cosfrac}{91}{0.739605} \pgf@def{cosfrac}{92}{0.735931} +\pgf@def{cosfrac}{93}{0.732272} \pgf@def{cosfrac}{94}{0.728628} +\pgf@def{cosfrac}{95}{0.724999} \pgf@def{cosfrac}{96}{0.721387} +\pgf@def{cosfrac}{97}{0.717792} \pgf@def{cosfrac}{98}{0.714213} +\pgf@def{cosfrac}{99}{0.710651} \pgf@def{cosfrac}{100}{0.707107} + + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex index a3bb4b05cef..286ac78c216 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorescopes.code.tex,v 1.20 2006/10/23 08:38:17 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorescopes.code.tex,v 1.24 2007/06/07 07:41:10 tantau Exp $ % Globals @@ -150,7 +150,7 @@ \def\pgf@text@options{#1}% \pgf@maketext\pgf@after@text} \def\pgf@after@text{% - { + {% \def\pgf@text@hshift{center}% \def\pgf@text@vshift{center}% \def\pgf@marshal{\setkeys{pgfbox}}% @@ -158,13 +158,13 @@ \csname pgf@halign\pgf@text@hshift\endcsname% \csname pgf@valign\pgf@text@vshift\endcsname% % Protocol sizes: - \pgf@process{\pgfpointtransformed{\pgfpoint{0pt}{\dp\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{0pt}{\dp\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% - \pgf@process{\pgfpointtransformed{\pgfpoint{\wd\pgf@hbox}{\dp\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{\wd\pgf@hbox}{\dp\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% - \pgf@process{\pgfpointtransformed{\pgfpoint{0pt}{\ht\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{0pt}{\ht\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% - \pgf@process{\pgfpointtransformed{\pgfpoint{\wd\pgf@hbox}{\ht\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{\wd\pgf@hbox}{\ht\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% \pgfqboxsynced{\pgf@hbox}% }% @@ -182,12 +182,12 @@ \define@key{pgfbox}{rotate}{\pgftransformrotate{#1}} \def\pgf@halignleft{}% do nothing -\def\pgf@haligncenter{\pgftransformxshift{-.5\wd\pgf@hbox}} -\def\pgf@halignright{\pgftransformxshift{-\wd\pgf@hbox}}% +\def\pgf@haligncenter{\pgftransformxshift{+-.5\wd\pgf@hbox}} +\def\pgf@halignright{\pgftransformxshift{+-\wd\pgf@hbox}}% \def\pgf@valignbase{}% do nothing -\def\pgf@valignbottom{\pgftransformyshift{\dp\pgf@hbox}}% -\def\pgf@valigncenter{\pgftransformyshift{.5\dp\pgf@hbox}\pgftransformyshift{-.5\ht\pgf@hbox}}% -\def\pgf@valigntop{\pgftransformyshift{-\ht\pgf@hbox}}% +\def\pgf@valignbottom{\pgftransformyshift{+\dp\pgf@hbox}}% +\def\pgf@valigncenter{\pgftransformyshift{+.5\dp\pgf@hbox}\pgftransformyshift{+-.5\ht\pgf@hbox}}% +\def\pgf@valigntop{\pgftransformyshift{+-\ht\pgf@hbox}}% % Internal function for creating a hbox. @@ -237,6 +237,7 @@ \pgfpicturetrue% \global\advance\pgf@picture@serial@count by1\relax% \edef\pgfpictureid{pgfid\the\pgf@picture@serial@count}% + \let\pgf@nodecallback=\pgfutil@gobble% \pgf@picmaxx=-16000pt\relax% \pgf@picminx=16000pt\relax% \pgf@picmaxy=-16000pt\relax% @@ -245,10 +246,10 @@ \pgf@resetpathsizes% \pgfutil@ifnextchar\bgroup\pgf@oldpicture\pgf@picture} \def\pgf@oldpicture#1#2#3#4{% - \setlength\pgf@picminx{#1}% - \setlength\pgf@picminy{#2}% - \setlength\pgf@picmaxx{#3}% - \setlength\pgf@picmaxy{#4}% + \pgfmathsetlength\pgf@picminx{#1}% + \pgfmathsetlength\pgf@picminy{#2}% + \pgfmathsetlength\pgf@picmaxx{#3}% + \pgfmathsetlength\pgf@picmaxy{#4}% \pgf@relevantforpicturesizefalse% \pgf@picture} @@ -309,7 +310,22 @@ \box\pgf@layerbox@main% } +\def\pgf@selectfont{\pgf@selectfontorig\nullfont} +\def\pgf@setlength#1#2{% these will be used only when \nullfont is active + \begingroup% keep font setting local + \pgfutil@selectfont% restore font + \pgf@setlengthorig#1{#2}% calculate dimension (possibly using calc) + \expandafter% + \endgroup% + \expandafter#1\expandafter=\the#1\relax} +\def\pgf@addtolength#1#2{% + \begingroup% keep font setting local + \pgfutil@selectfont% restore font + \pgf@addtolengthorig#1{#2}% calculate dimension (possibly using calc) + \expandafter% + \endgroup% + \expandafter#1\expandafter=\the#1\relax} % Sets the baseline at the y-coordinate of a given point @@ -409,6 +425,47 @@ +% Interrupt bounding box +% +% Description: +% +% The environment can be used to temporarily setup a new bounding box +% computation. The bounding box will be made empty at the beginning of +% the environment and will be reset to its old value after the +% environment. +% +% Example: +% +% \begin{pgfinterruptboundinbox} +% \pgfmoveto{\pgfpoint{1cm}{0cm}} +% \pgfmoveto{\pgfpoint{1cm}{1cm}} +% \pgfusepath{stroke} +% \end{pgfinterruptboundinbox} + +\def\pgfinterruptboundingbox +{% + \begingroup% + \edef\pgf@interrupt@savemaxx{\the\pgf@picmaxx}% + \edef\pgf@interrupt@saveminx{\the\pgf@picminx}% + \edef\pgf@interrupt@savemaxy{\the\pgf@picmaxy}% + \edef\pgf@interrupt@saveminy{\the\pgf@picminy}% + \pgf@picmaxx=-16000pt\relax% + \pgf@picminx=16000pt\relax% + \pgf@picmaxy=-16000pt\relax% + \pgf@picminy=16000pt\relax% +} +\def\endpgfinterruptboundingbox +{% + \global\pgf@picmaxx=\pgf@interrupt@savemaxx% + \global\pgf@picmaxy=\pgf@interrupt@savemaxy% + \global\pgf@picminx=\pgf@interrupt@saveminx% + \global\pgf@picminy=\pgf@interrupt@saveminy% + \endgroup% +} + + + + % Interrupts a picture % @@ -450,30 +507,24 @@ \def\pgfinterruptpicture {% \begingroup% - \edef\pgf@interrupt@savemaxx{\the\pgf@picmaxx}% - \edef\pgf@interrupt@saveminx{\the\pgf@picminx}% - \edef\pgf@interrupt@savemaxy{\the\pgf@picmaxy}% - \edef\pgf@interrupt@saveminy{\the\pgf@picminy}% - \pgftransformreset% - \pgfinterruptpath% - \ifx\pgf@setlengthorig\@undefined% - \else% - \let\setlength\pgf@setlengthorig% - \let\addtolength\pgf@addtolengthorig% - \let\selectfont\pgf@selectfontorig% - \fi% - \selectfont% - \pgfpicturefalse% - \pgf@savelayers% + \pgfinterruptboundingbox% + \pgftransformreset% + \pgfinterruptpath% + \ifx\pgf@selectfontorig\@undefined% + \else% + \let\setlength\pgf@setlengthorig% + \let\addtolength\pgf@addtolengthorig% + \let\selectfont\pgf@selectfontorig% + \fi% + \pgfutil@selectfont% + \pgfpicturefalse% + \pgf@savelayers% } \def\endpgfinterruptpicture {% - \pgf@restorelayers% - \endpgfinterruptpath% - \global\pgf@picmaxx=\pgf@interrupt@savemaxx% - \global\pgf@picmaxy=\pgf@interrupt@savemaxy% - \global\pgf@picminx=\pgf@interrupt@saveminx% - \global\pgf@picminy=\pgf@interrupt@saveminy% + \pgf@restorelayers% + \endpgfinterruptpath% + \endpgfinterruptboundingbox% \endgroup% } 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 e7d4c0a8081..05142e8c0db 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreshade.code.tex,v 1.7 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreshade.code.tex,v 1.8 2007/03/09 17:49:32 tantau Exp $ % % Parsing functions @@ -42,7 +42,7 @@ \xdef\pgf@psfuncs{\pgf@psfuncs}% } \def\pgf@parsefirst[rgb(#1)=(#2,#3,#4)#5]{% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \edef\pgf@sys@shading@start@pos{\the\pgf@x}% \pgf@sys@bp@correct\pgf@x% \edef\pgf@doma{\pgf@sys@tonumber{\pgf@x}}% @@ -55,7 +55,7 @@ \edef\pgf@firstcolor{\pgf@rgb}} \def\pgf@parselastdom[rgb(#1)=(#2,#3,#4); {% \pgfutil@ifnextchar]{% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \edef\pgf@sys@shading@end@pos{\the\pgf@x}% \pgf@max=\pgf@x\relax% \pgf@sys@bp@correct\pgf@x% @@ -75,12 +75,12 @@ << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 [\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }% \edef\pgf@psfuncs{\pgf@prevx\space \pgf@rgb\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \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% \pgfutil@gobble}{% - \setlength\pgf@x{#1}% + \pgfmathsetlength\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}}}% \edef\pgf@sys@prevpos{\the\pgf@x}% @@ -397,15 +397,19 @@ \pgfsys@clipnext% \pgfsys@discardpath% % Compute new transformation matrix: - \pgf@process{\pgfsincos{#2}}% - \pgf@xa=-\pgf@x% \pgfsys@transformcm{1}{0}{0}{1}{\pgf@xb}{\pgf@yb}% \pgfsys@transformcm% {\pgf@sys@tonumber{\pgf@xc}}{0}% {0}{\pgf@sys@tonumber{\pgf@yc}}{0pt}{0pt}% - \pgfsys@transformcm% - {\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}% - {\pgf@sys@tonumber{\pgf@xa}}{\pgf@sys@tonumber{\pgf@y}}{0pt}{0pt}% + \pgfmathparse{#2}% + \let\pgfshade@angle=\pgfmathresult% + \pgfmathsin@{\pgfshade@angle}% + \let\pgfshade@sin=\pgfmathresult% + \pgfmathcos@{\pgfshade@angle}% + \let\pgfshade@cos=\pgfmathresult% + \pgf@x=\pgfshade@sin pt% + \pgf@xa=-\pgf@x% + \pgfsys@transformcm{\pgfshade@cos}{\pgfshade@sin}{\pgf@sys@tonumber{\pgf@xa}}{\pgfshade@cos}{0pt}{0pt}% \ifx\pgf@shade@extra@transform\pgfutil@empty% \else% \pgflowlevel{\pgf@shade@extra@transform}% diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex index 54eff0c9c0e..4a9a23f0d2c 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoretransformations.code.tex,v 1.4 2006/10/11 15:22:25 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoretransformations.code.tex,v 1.6 2007/06/07 07:41:10 tantau Exp $ % Position transformations @@ -120,24 +120,24 @@ % Matrix = (aa ab % ba bb) {% - \@tempdima=\pgf@pt@aa pt% - \@tempdima=\pgf@pt@bb\@tempdima% aa * bb - \@tempdimb=\pgf@pt@ba pt% - \@tempdimb=\pgf@pt@ab\@tempdimb% ba * ab - \advance\@tempdima by -\@tempdimb% aa*bb - ba*ab + \pgfutil@tempdima=\pgf@pt@aa pt% + \pgfutil@tempdima=\pgf@pt@bb\pgfutil@tempdima% aa * bb + \pgfutil@tempdimb=\pgf@pt@ba pt% + \pgfutil@tempdimb=\pgf@pt@ab\pgfutil@tempdimb% ba * ab + \advance\pgfutil@tempdima by -\pgfutil@tempdimb% aa*bb - ba*ab % Invert - \@tempdima=.125\@tempdima% - \c@pgf@counta=\@tempdima\relax% 8192*determinant - \@tempdima=8192pt% - \divide\@tempdima by\c@pgf@counta% - \pgf@x=\pgf@pt@bb\@tempdima% bb/(det A) + \pgfutil@tempdima=.125\pgfutil@tempdima% + \c@pgf@counta=\pgfutil@tempdima\relax% 8192*determinant + \pgfutil@tempdima=8192pt% + \divide\pgfutil@tempdima by\c@pgf@counta% + \pgf@x=\pgf@pt@bb\pgfutil@tempdima% bb/(det A) \xdef\pgf@new@pt@aa{\pgf@sys@tonumber{\pgf@x}}% - \pgf@x=\pgf@pt@aa\@tempdima% aa/(det A) + \pgf@x=\pgf@pt@aa\pgfutil@tempdima% aa/(det A) \xdef\pgf@new@pt@bb{\pgf@sys@tonumber{\pgf@x}}% - \@tempdima=-\@tempdima% - \pgf@x=\pgf@pt@ba\@tempdima% -ba/(det A) + \pgfutil@tempdima=-\pgfutil@tempdima% + \pgf@x=\pgf@pt@ba\pgfutil@tempdima% -ba/(det A) \xdef\pgf@new@pt@ba{\pgf@sys@tonumber{\pgf@x}}% - \pgf@x=\pgf@pt@ab\@tempdima% -ab/(det A) + \pgf@x=\pgf@pt@ab\pgfutil@tempdima% -ab/(det A) \xdef\pgf@new@pt@ab{\pgf@sys@tonumber{\pgf@x}}% }% \expandafter\def\expandafter\pgf@pt@aa\expandafter{\pgf@new@pt@aa}% @@ -358,11 +358,15 @@ % \pgftransformrotate{30} \def\pgftransformrotate#1{% - \pgfsincos{#1}% + \pgfmathparse{#1}% + \let\pgftransform@angle=\pgfmathresult% + \pgfmathsin@{\pgftransform@angle}% + \let\pgftransform@sin=\pgfmathresult% + \pgfmathcos@{\pgftransform@angle}% + \let\pgftransform@cos=\pgfmathresult% + \pgf@x=\pgftransform@sin pt% \pgf@xa=-\pgf@x% - \pgftransformcm% - {\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}% - {\pgf@sys@tonumber{\pgf@xa}}{\pgf@sys@tonumber{\pgf@y}}{\pgfpointorigin}% + \pgftransformcm{\pgftransform@cos}{\pgftransform@sin}{\pgf@sys@tonumber{\pgf@xa}}{\pgftransform@cos}{\pgfpointorigin}% } @@ -463,7 +467,7 @@ % \def\pgftransformcurveattime#1#2#3#4#5{% \pgfpointcurveattime{#1}{#2}{#3}{#4}{#5}% - \pgftransformshift{\pgfpoint{\pgf@x}{\pgf@y}}% + \pgftransformshift{\pgfqpoint{\pgf@x}{\pgf@y}}% \ifpgfresetnontranslationattime% \pgftransformresetnontranslations% \fi% @@ -515,7 +519,7 @@ \pgf@ya=-\pgf@y% \pgftransformcm% {\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}% - {\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfpoint{0pt}{0pt}}% + {\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfqpoint{0pt}{0pt}}% } |