summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex')
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex259
1 files changed, 259 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex
new file mode 100644
index 00000000000..f94f0a8f8a7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex
@@ -0,0 +1,259 @@
+% pgf/tikz library
+% for signal flow diagrams
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+
+
+%
+% Styles for nodes, terminals, and operators.
+%
+% - nodes and terminals
+\tikzstyle{node style}%
+ = [draw=\pathdrawcolor,
+ fill=\pathdrawcolor,
+ minimum size=\nodesize]
+\tikzstyle{terminal style}%
+ = [draw=\pathdrawcolor,
+ fill=\pathfillcolor,
+ line width=\pathlinewidth,
+ minimum size=\terminalsize]
+\tikzstyle{node}%
+ = [node shape,
+ node style]
+\tikzstyle{input}%
+ = [input terminal shape,
+ terminal style]
+\tikzstyle{output}%
+ = [output terminal shape,
+ terminal style]
+% - operators
+\tikzstyle{operator color}%
+ = [draw=\operatordrawcolor,
+ fill=\operatorfillcolor]
+\tikzstyle{operator style}%
+ = [operator color,
+ line width=\operatorlinewidth,
+ minimum size=\operatorsize]
+\tikzstyle{multiplier}%
+ = [multiplier shape,
+ operator style]
+\tikzstyle{modulator}%
+ = [modulator shape,
+ operator style]
+\tikzstyle{adder}%
+ = [adder shape,
+ operator style]
+\tikzstyle{delay}%
+ = [rectangle,
+ operator style,
+ minimum size=\delaysize]
+
+
+%
+% Circular shapes of operator symbols.
+%
+% #1 = additional inner symbol
+\newcommand{\circularshape}[1]{%
+ \savedanchor\centerpoint{\pgfpointorigin}
+ % radius is half of maximum of \pgfshapeminwidth and \pgfshapeminheight
+ \saveddimen\radius{%
+ \setlength{\pgf@xa}{\pgfshapeminwidth}
+ \setlength{\pgf@ya}{\pgfshapeminheight}
+ \ifdim\pgf@xa>\pgf@ya
+ \pgf@x=.5\pgf@xa
+ \else
+ \pgf@x=.5\pgf@ya
+ \fi
+ }
+ \inheritanchor[from=circle]{center}
+ \inheritanchorborder[from=circle]
+ \inheritanchor[from=circle]{north}
+ \inheritanchor[from=circle]{north east}
+ \inheritanchor[from=circle]{east}
+ \inheritanchor[from=circle]{south east}
+ \inheritanchor[from=circle]{south}
+ \inheritanchor[from=circle]{south west}
+ \inheritanchor[from=circle]{west}
+ \inheritanchor[from=circle]{north west}
+ \inheritanchor[from=circle]{mid}
+ \inheritanchor[from=circle]{mid west}
+ \inheritanchor[from=circle]{mid east}
+ \inheritanchor[from=circle]{base}
+ \inheritanchor[from=circle]{base west}
+ \inheritanchor[from=circle]{base east}
+ % circular shaped frame
+ \inheritbackgroundpath[from=circle]
+ % additional inner symbol
+ \foregroundpath{
+ \centerpoint%
+ \pgf@xc=\pgf@x%
+ \pgf@yc=\pgf@y%
+ \@tempdima=\radius%
+ #1
+ }
+ % no text
+ \nodeparts{}
+}
+
+
+%
+% Anchors for default text box, see below.
+%
+\newcommand{\stdaboveanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodeparttextbox%
+ \advance\pgf@y by\radius
+ \advance\pgf@y by+0.5mm
+ }
+}
+\newcommand{\stdrightanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by\radius
+ \advance\pgf@x by+0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+}
+\newcommand{\stdbelowanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodeparttextbox%
+ \advance\pgf@y by-\ht\pgfnodeparttextbox%
+ \advance\pgf@y by-\radius
+ \advance\pgf@y by-0.5mm
+ }
+}
+\newcommand{\stdleftanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by-\radius
+ \advance\pgf@x by-\wd\pgfnodeparttextbox%
+ \advance\pgf@x by-0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+}
+
+
+%
+% Circular shapes of operator symbols with default text box.
+%
+% #1 = place of the default text box
+\newbox\pgfnodepartabovebox
+\newbox\pgfnodepartrightbox
+\newbox\pgfnodepartbelowbox
+\newbox\pgfnodepartleftbox
+\newcommand{\labelledcircularshape}[1]{%
+ % node parts
+ \nodeparts{text,above,right,below,left}
+ % anchors
+ \savedanchor\centerpoint{\pgfpointorigin}
+ % radius is half of maximum of \pgfshapeminwidth and \pgfshapeminheight
+ \saveddimen\radius{%
+ \setlength{\pgf@xa}{\pgfshapeminwidth}
+ \setlength{\pgf@ya}{\pgfshapeminheight}
+ \ifdim\pgf@xa>\pgf@ya
+ \pgf@x=.5\pgf@xa
+ \else
+ \pgf@x=.5\pgf@ya
+ \fi
+ }
+ \inheritanchor[from=circle]{center}
+ \inheritanchorborder[from=circle]
+ \inheritanchor[from=circle]{north}
+ \inheritanchor[from=circle]{north east}
+ \inheritanchor[from=circle]{east}
+ \inheritanchor[from=circle]{south east}
+ \inheritanchor[from=circle]{south}
+ \inheritanchor[from=circle]{south west}
+ \inheritanchor[from=circle]{west}
+ \inheritanchor[from=circle]{north west}
+ \inheritanchor[from=circle]{mid}
+ \inheritanchor[from=circle]{mid west}
+ \inheritanchor[from=circle]{mid east}
+ \inheritanchor[from=circle]{base}
+ \inheritanchor[from=circle]{base west}
+ \inheritanchor[from=circle]{base east}
+ #1
+ \anchor{above}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodepartabovebox%
+ \advance\pgf@y by\radius
+ \advance\pgf@y by+0.5mm
+ }
+ \anchor{right}{%
+ \centerpoint
+ \advance\pgf@x by\radius
+ \advance\pgf@x by+0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodepartrightbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+ \anchor{below}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodepartbelowbox%
+ \advance\pgf@y by-\ht\pgfnodepartbelowbox%
+ \advance\pgf@y by-\radius
+ \advance\pgf@y by-0.5mm
+ }
+ \anchor{left}{%
+ \centerpoint
+ \advance\pgf@x by-\radius
+ \advance\pgf@x by-\wd\pgfnodepartleftbox%
+ \advance\pgf@x by-0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodepartleftbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+ % circular shaped frame
+ \inheritbackgroundpath[from=circle]
+}
+
+
+%
+% Shape of a node.
+%
+\pgfdeclareshape{node shape}{\labelledcircularshape{\stdaboveanchor}}%
+
+%
+% Shape of an input terminal.
+%
+\pgfdeclareshape{input terminal shape}{\labelledcircularshape{\stdleftanchor}}%
+%
+% Shape of an output terminal.
+%
+\pgfdeclareshape{output terminal shape}{\labelledcircularshape{\stdrightanchor}}%
+%
+% Shape of a multiplier.
+%
+\pgfdeclareshape{multiplier shape}{\labelledcircularshape{\stdleftanchor}}%
+%
+% Shape of a modulator.
+%
+\pgfdeclareshape{modulator shape}{\circularshape{%
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{-0.707107\@tempdima}{-0.707107\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0.707107\@tempdima}{0.707107\@tempdima}}}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0.707107\@tempdima}{-0.707107\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{-0.707107\@tempdima}{0.707107\@tempdima}}}
+}}%
+%
+% Shape of an adder.
+%
+\pgfdeclareshape{adder shape}{\circularshape{%
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{-0.5\@tempdima}{0\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0.5\@tempdima}{0\@tempdima}}}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0\@tempdima}{-0.5\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0\@tempdima}{0.5\@tempdima}}}
+}}%
+
+\endinput