summaryrefslogtreecommitdiff
path: root/graphics/pgf/base/tex/tikzlibrarysnakes.code.tex
blob: 9acb6de9153c37dffccc9242b487f9c6b80b64c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
% 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{tikzlibrarysnakes.code.tex}

\pgfwarning{Snakes have been superseded by
decorations. Please use the decoration libraries instead of the snakes
library}%

\usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing,decorations.shapes}%


% Old snakes stuff:

\tikzoption{snake}[]{%
  \def\tikz@@snake{#1}%
  \ifx\tikz@@snake\pgfutil@empty%
    \tikz@snakedtrue%
  \else%
    \ifx\tikz@@snake\tikz@nonetext%
      \tikz@snakedfalse%
    \else%
      \tikz@snakedtrue%
      \let\tikz@snake=\tikz@@snake%
    \fi%
  \fi}%

\tikzoption{raise snake}{\def\pgf@snake@raise{\pgftransformyshift{#1}}}%
\tikzoption{mirror snake}[true]{%
  \csname if#1\endcsname
    \def\pgf@snake@mirror{\pgftransformyscale{-1}}%
  \else%
    \let\pgf@snake@mirror=\pgfutil@empty%
  \fi
}%

\tikzoption{gap before snake}{\def\tikz@presnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}}%
\tikzoption{line before snake}{\def\tikz@presnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}}%

\tikzoption{gap after snake}{\def\tikz@postsnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}\def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}}%
\tikzoption{line after snake}{\def\tikz@postsnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}\def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}}%

\tikzoption{gap around snake}{%
  \def\tikz@presnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
  \def\tikz@postsnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
  \def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}%
}%
\tikzoption{line around snake}{%
  \def\tikz@presnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
  \def\tikz@postsnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
  \def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}%
}%
\let\pgf@snake@mirror=\pgfutil@empty
\let\pgf@snake@raise=\pgfutil@empty

\def\tikz@snake@install@trans{\pgfsetsnakesegmenttransformation{\pgf@snake@mirror\pgf@snake@raise}}%

\def\tikz@snake{zigzag}%

\let\tikz@presnake=\pgfutil@empty
\let\tikz@postsnake=\pgfutil@empty
\def\tikz@mainsnakelength{\pgfsnakeremainingdistance}%


\tikzset{snake triangles 45/.style=      {snake=triangles,segment object length=2.41421356\pgfsnakesegmentamplitude}}%
\tikzset{snake triangles 60/.style=      {snake=triangles,segment object length=1.73205081\pgfsnakesegmentamplitude}}%
\tikzset{snake triangles 90/.style=      {snake=triangles,segment object length=\pgfsnakesegmentamplitude}}%



\endinput