summaryrefslogtreecommitdiff
path: root/graphics/pgf/base/tex/generic/basiclayer/pgfcorequick.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/base/tex/generic/basiclayer/pgfcorequick.code.tex')
-rw-r--r--graphics/pgf/base/tex/generic/basiclayer/pgfcorequick.code.tex134
1 files changed, 134 insertions, 0 deletions
diff --git a/graphics/pgf/base/tex/generic/basiclayer/pgfcorequick.code.tex b/graphics/pgf/base/tex/generic/basiclayer/pgfcorequick.code.tex
new file mode 100644
index 0000000000..4180440b00
--- /dev/null
+++ b/graphics/pgf/base/tex/generic/basiclayer/pgfcorequick.code.tex
@@ -0,0 +1,134 @@
+% Copyright 2018 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{pgfcorequick.code.tex}
+
+% Quick version of basic drawing commands. Most high-level commands
+% are not available if these commands are used.
+
+% Move current point to (#1,#2).
+%
+% #1 = x dimension of new current point
+% #2 = y dimension of new current point
+%
+% Example:
+%
+% \pgfpathqmoveto{0pt}{0pt}
+% \pgfpathqlineto{1pt}{1pt}
+% \pgfpathqcurveto{2pt}{1pt}{2pt}{2pt}{3pt}{2pt}
+% \pgfqstroke
+
+\def\pgfpathqmoveto#1#2{\pgfsyssoftpath@moveto{#1}{#2}}
+
+
+% Append a line to (#1,#2) to the current path.
+%
+% #1 = x dimension of target
+% #2 = y dimension of target
+%
+% Example:
+%
+% \pgfpathqmoveto{0pt}{0pt}
+% \pgfpathqlineto{1pt}{1pt}
+% \pgfpathqcurveto{2pt}{1pt}{2pt}{2pt}{3pt}{2pt}
+% \pgfqstroke
+
+\def\pgfpathqlineto#1#2{\pgfsyssoftpath@lineto{#1}{#2}}
+
+
+% Append a bezier spline to the current path.
+%
+% #1 = x dimension of first support point
+% #2 = y dimension of first support point
+% #3 = x dimension of second support point
+% #4 = y dimension of second support point
+% #5 = x dimension of target point
+% #6 = y dimension of target point
+%
+% Example:
+%
+% \pgfpathqmoveto{0pt}{0pt}
+% \pgfpathqlineto{1pt}{1pt}
+% \pgfpathqcurveto{2pt}{1pt}{2pt}{2pt}{3pt}{2pt}
+% \pgfqstroke
+
+\def\pgfpathqcurveto#1#2#3#4#5#6{\pgfsyssoftpath@curveto{#1}{#2}{#3}{#4}{#5}{#6}}
+
+
+
+
+% Append a circle of the given radius around the origin.
+%
+% #1 = radius
+%
+% Example:
+%
+% \pgfpathqcircle{10pt}
+% is quicker than
+% \pgfpathcircle{\pgforigin}{10pt}
+
+\def\pgfpathqcircle#1{%
+ {%
+ \pgf@x=#1%
+ \pgf@y=0.5522847\pgf@x%
+ \pgfsyssoftpath@moveto{\the\pgf@x}{0pt}%
+ \pgfsyssoftpath@curveto{\the\pgf@x}{\the\pgf@y}{\the\pgf@y}{\the\pgf@x}{0pt}{\the\pgf@x}%
+ \pgfsyssoftpath@curveto{-\the\pgf@y}{\the\pgf@x}{-\the\pgf@x}{\the\pgf@y}{-\the\pgf@x}{0pt}%
+ \pgfsyssoftpath@curveto{-\the\pgf@x}{-\the\pgf@y}{-\the\pgf@y}{-\the\pgf@x}{0pt}{-\the\pgf@x}%
+ \pgfsyssoftpath@curveto{\the\pgf@y}{-\the\pgf@x}{\the\pgf@x}{-\the\pgf@y}{\the\pgf@x}{0pt}%
+ \pgfsyssoftpath@closepath%
+ }%
+}
+
+
+
+% Stroke current path. No hooks called.
+%
+% Example:
+%
+% \pgfpathqmoveto{0cm}{0cm}
+% \pgfpathqlineto{1cm}{1cm}
+% \pgfpathqcurveto{2cm}{1cm}{2cm}{2cm}{3cm}{2cm}
+% \pgfqstroke
+
+\def\pgfusepathqstroke{%
+ \pgfsyssoftpath@flushcurrentpath%
+ \pgfsys@stroke%
+ \pgf@resetpathsizes%
+}
+
+
+% Quickly fill current path.
+
+\def\pgfusepathqfill{%
+ \pgfsyssoftpath@flushcurrentpath%
+ \pgfsys@fill%
+ \pgf@resetpathsizes%
+}
+
+
+% Quickly fill and stroke current path.
+
+\def\pgfusepathqfillstroke{%
+ \pgfsyssoftpath@flushcurrentpath%
+ \pgfsys@fillstroke%
+ \pgf@resetpathsizes%
+}
+
+% Quickly clip current path.
+
+\def\pgfusepathqclip{%
+ \pgfsyssoftpath@flushcurrentpath%
+ \pgfsys@clipnext%
+ \pgfsys@discardpath%
+ \pgf@resetpathsizes%
+}
+
+
+\endinput