diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex b/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex new file mode 100644 index 00000000000..838bb20be21 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex @@ -0,0 +1,102 @@ +% 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[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex,v 1.1 2008/01/09 17:57:16 tantau Exp $ + + + +% +% Three point growth +% + +\tikzoption{grow via three points}{\let\tikz@grow=\tikz@grow@three\tikz@parse@three#1} + +\def\tikz@parse@three one child at#1(#2)#3and two children at#4(#5)#6and#7(#8){% + \def\tikz@tree@one@child{\tikz@scan@one@point\pgf@process(#2)} + \def\tikz@tree@left@child{\tikz@scan@one@point\pgf@process(#5)} + \def\tikz@tree@right@child{\tikz@scan@one@point\pgf@process(#8)} +} + +\def\tikz@grow@three{% + \pgf@process{\tikz@tree@one@child}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\tikz@tree@left@child}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \advance\pgf@xb by-\pgf@xa% + \advance\pgf@yb by-\pgf@ya% + \pgf@process{\tikz@tree@right@child}% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \advance\pgf@xc by-\pgf@xa% + \advance\pgf@yc by-\pgf@ya% + \advance\pgf@xc by-\pgf@xb% + \advance\pgf@yc by-\pgf@yb% + \advance\tikznumberofchildren by-1\relax% + \pgf@xb=\tikznumberofchildren\pgf@xb\relax% + \pgf@yb=\tikznumberofchildren\pgf@yb\relax% + \advance\tikznumberofcurrentchild by-1\relax% + \pgf@xc=\tikznumberofcurrentchild\pgf@xc\relax% + \pgf@yc=\tikznumberofcurrentchild\pgf@yc\relax% + \advance\pgf@xa by\pgf@xb% + \advance\pgf@xa by\pgf@xc% + \advance\pgf@ya by\pgf@yb% + \advance\pgf@ya by\pgf@yc% + \edef\pgf@temp{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}% + \pgf@temp% +} + +% +% Circle grow +% + +\tikzstyle{grow cyclic}=[growth function=\tikz@grow@circle] + +\tikzset{sibling angle/.initial=20} + +\def\tikz@grow@circle{% + \pgftransformrotate{% + (\pgfkeysvalueof{/tikz/sibling angle})*(-.5-.5*\tikznumberofchildren+\tikznumberofcurrentchild)}% + \pgftransformxshift{\the\tikzleveldistance}% +} + +\tikzoption{counterclockwise from}{\let\tikz@grow=\tikz@grow@circle@from\def\tikz@grow@circle@from@start{#1}} + +\def\tikz@grow@circle@from{% + \pgftransformshift{\pgfpointpolar{\tikz@grow@circle@from@start+(\pgfkeysvalueof{/tikz/sibling angle})*(\tikznumberofcurrentchild-1)}{\the\tikzleveldistance}}% +} + +\tikzoption{clockwise from}{\let\tikz@grow=\tikz@grow@circle@from@\def\tikz@grow@circle@from@start{#1}} + +\def\tikz@grow@circle@from@{% + \pgftransformshift{\pgfpointpolar{\tikz@grow@circle@from@start-(\pgfkeysvalueof{/tikz/sibling angle})*(\tikznumberofcurrentchild-1)}{\the\tikzleveldistance}}% +} + + + +% +% Connections +% + +\tikzstyle{edge from parent fork down}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(0pt,-.5\tikzleveldistance) -| (\tikzchildnode\tikzchildanchor)}] + +\tikzstyle{edge from parent fork up}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(0pt,.5\tikzleveldistance) -| (\tikzchildnode\tikzchildanchor)}] + +\tikzstyle{edge from parent fork left}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(-.5\tikzleveldistance,0pt) |- (\tikzchildnode\tikzchildanchor)}] + +\tikzstyle{edge from parent fork right}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(.5\tikzleveldistance,0pt) |- (\tikzchildnode\tikzchildanchor)}] + + + +\endinput |