diff options
author | Karl Berry <karl@freefriends.org> | 2010-10-29 00:31:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-10-29 00:31:31 +0000 |
commit | 6bc1f5497cfb2f56d65c80a4c36ea3bad6dc046c (patch) | |
tree | f7751da75030fb1e06653eeb44e579fcee09c65f /Master/texmf-dist/tex/generic/pgf/modules/pgfmodulesorting.code.tex | |
parent | ed0c7c756e441b2d2ba3633da233fc24361ac0d3 (diff) |
pgf 2.10 (28oct10)
git-svn-id: svn://tug.org/texlive/trunk@20236 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/modules/pgfmodulesorting.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/modules/pgfmodulesorting.code.tex | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/modules/pgfmodulesorting.code.tex b/Master/texmf-dist/tex/generic/pgf/modules/pgfmodulesorting.code.tex new file mode 100644 index 00000000000..b85fde14501 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/modules/pgfmodulesorting.code.tex @@ -0,0 +1,69 @@ +% Copyright 2008 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[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/modules/pgfmodulesorting.code.tex,v 1.1 2008/11/12 23:39:37 tantau Exp $ + +% +% This file defines commands for sorting data. This is useful for 3d plots, +% but also for drawing things in the correct order. +% + + +\newcount\pgfsortingbuckets + + +% Init the sorting +% +% #1 = number of buckets +% +% Description: +% +% This macro inits a sorting. At any time there can be only one active +% sorting. When you init the sorting, #1 should be a number of +% buckets. You can then call \pgfsortinginsert to insert code into the +% buckets. Once you are done, calling \pgfsortingexecute will execute +% first the code in buckets 0, then the code in bucket 1, and so on to +% bucket number #1-1. +% +\def\pgfsortinginit#1{ + \pgfsortingbuckets#1\relax% + \c@pgf@counta=0\relax + \pgfutil@loop + \ifnum\c@pgf@counta<\c@pgf@countb\relax% + \expandafter\global\expandafter\let\csname pgf@sort@\the\c@pgf@counta\endcsname\pgfutil@empty% + \advance\c@pgf@counta by1\relax% + \pgfutil@repeat +} + +% Insert code into some bucket +% +% #1 = the bucket +% #2 = the code +% +\def\pgfsortinginsert#1#1{ + \expandafter\let\expandafter\pgf@temp\csname pgf@lib@sort@#1\endcsname% + \expandafter\def\expandafter\pgf@temp\expandafter{\pgf@temp#2}% + \expandafter\global\expandafter\let\csname pgf@lib@sort@\the\c@pgf@counta\endcsname\pgf@temp% +} + + +% After all code has been inserted into the buckets, you can call +% this method to execute the code in the order of the buckets. +\def\pgfsortingexecute{ + \c@pgf@countb=\pgfoovalueof{buckets}\relax + \c@pgf@counta=0\relax + \pgfutil@loop + \ifnum\c@pgf@counta<\c@pgf@countb\relax% + \csname pgf@lib@sort@\the\c@pgf@counta\endcsname% + \advance\c@pgf@counta by1\relax% + \pgfutil@repeat +} + + +\endinput |