diff options
Diffstat (limited to 'graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.contourlua.code.tex')
-rw-r--r-- | graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.contourlua.code.tex | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.contourlua.code.tex b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.contourlua.code.tex new file mode 100644 index 0000000000..f7821013eb --- /dev/null +++ b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.contourlua.code.tex @@ -0,0 +1,91 @@ +%-------------------------------------------- +% +% Package pgfplots +% +% Provides a user-friendly interface to create function plots (normal +% plots, semi-logplots and double-logplots). +% +% It is based on Till Tantau's PGF package. +% +% Copyright 2007-2021 by Christian Feuersänger. +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see <http://www.gnu.org/licenses/>. + + +\ifpgfplots@LUA@supported + \pgfplotsutil@directlua{require("prepcontour");} + \pgfplotsset{ + contour lua/.style={ + contour external={% + % we decided to NOT precompute contour/levels: + % @before cmd=\pgfplotscontourpopulateallkeys, + scanline marks=required, + script type=lua, + % + % this library consumes FOUR coordinates... + script input format=x y z meta, + % ... and it also generates FOUR. Always read the last one + % as it is never subject to rounding issues within the + % same contour line: + output point meta=explicit, + % + script={ + copylines = 0; + nblocks = \if 0\ordering \pgfkeysvalueof{/pgfplots/mesh/rows}\else \pgfkeysvalueof{/pgfplots/mesh/cols}\fi; + nlines = \if 0\ordering \pgfkeysvalueof{/pgfplots/mesh/cols}\else \pgfkeysvalueof{/pgfplots/mesh/rows}\fi; + if copylines == nil or nblocks == nil or nlines == nil then + io.stderr:write("failed to parse arguments"); + os.exit(2); + end; + yvaries = \if 0\ordering 'x'\else 'y'\fi; + yvaries = (yvaries == 'y'); + infile = io.open(\"\infile\", \"r\"); + outfile = io.open(\"\outfile\", \"w\"); + mesh = PrepcMesh.new(yvaries, nblocks, nlines, copylines, infile, outfile); + \ifpgfplotsplothandlercontour@corners + corners = true; + \else + corners = false; + \fi + \ifx\thecontourlevels\pgfutil@empty + mesh:autocontour(\thecontournumber, \pgfplotsmetamin, \pgfplotsmetamax, corners); + \else + levels = {\thecontourlevels}; + for n = 1, \#levels do + level = tonumber(levels[n]); + if level then + mesh:contour(level, corners); + end; + end; + \fi + io.close(infile); + mesh:printcontours(); + io.close(outfile); + },% + #1,% + }, + } + } +\else + % do not throw the exception at load time ... this library is + % included as default + \pgfplotsset{ + contour lua/.code={ + \pgfplots@error{Library 'contour lua' requires you to run in LUA mode (i.e. lualatex instead of pdflatex)}% + } + } +\fi + + + |