% Copyright 2007-2009 by Massimo Redaelli % % 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 files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Monopoles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% %% Grounds %%%%%%%%%%%%% %% Ground symbol % #1 -> name % #2 -> width % #3 -> depth % #4 -> code \long\def\pgf@circ@declareground#1#2#3#4{ \pgfdeclareshape{#1}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{grounds}} % class of these components \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \savedanchor{\southeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen \pgf@x=#2\pgf@x \pgf@y=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen \pgf@y=-#3\pgf@y } \anchor{north}{\pgfpointorigin} \anchor{north east}{\southeast\pgf@y=0pt\relax} \anchor{east}{\southeast\pgf@y=.5\pgf@y} \anchor{south east}{\southeast} \anchor{south}{\southeast\pgf@x=0pt\relax} \anchor{south west}{\southeast\pgf@x=-\pgf@x} \anchor{west}{\southeast\pgf@y=.5\pgf@y\pgf@x=-\pgf@x} \anchor{north west}{\southeast\pgf@y=0pt\pgf@x=-\pgf@x} \anchor{left}{\pgfpointorigin} \anchor{right}{\pgfpointorigin} \anchor{center}{\pgfpointorigin} \behindforegroundpath{ \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth #4 \endpgfscope } } } \pgf@circ@declareground{ground}{0.6}{1.6}{ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-1.2\pgf@circ@res@step}} \pgfusepath{draw} \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfusepath{draw} } \pgf@circ@declareground{tlground}{0.6}{0.4}{ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}} \pgfusepath{draw} } \pgf@circ@declareground{rground}{0.6}{1}{ \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgf@circ@setlinewidth{monopoles/rground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfsetroundcap\pgfusepath{draw} } \pgf@circ@declareground{tground}{0.6}{0}{ \pgfpathmoveto{\pgfpointorigin} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{0pt}} \pgfusepath{draw} } \pgf@circ@declareground{sground}{0.6}{1.8}{ \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{-1.8\pgf@circ@res@step}} \pgfpathclose \pgf@circ@draworfill } % noiseless ground \pgf@circ@declareground{nground}{0.9}{1.6}{ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-1.2\pgf@circ@res@step}} \pgfusepath{draw} \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.9\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpatharc{0}{180}{0.9\pgf@circ@res@step} \pgfusepath{draw} } % protective ground \pgf@circ@declareground{pground}{0.9}{1.8}{ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{0pt}{-0.9\pgf@circ@res@step}}{0.9\pgf@circ@res@step} \pgf@circ@draworfill \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-1\pgf@circ@res@step}} \pgfusepath{draw} \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfusepath{draw} } % chassis ground \pgf@circ@declareground{cground}{1}{2}{ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}} \pgfusepath{draw} \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-1.00\pgf@circ@res@step}{-2.10\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-0.75\pgf@circ@res@step}{-1.50\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{ 0.75\pgf@circ@res@step}{-1.50\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{ 0.50\pgf@circ@res@step}{-2.10\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{ 0.00\pgf@circ@res@step}{-1.50\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-0.25\pgf@circ@res@step}{-2.10\pgf@circ@res@step}} \pgfusepath{draw} } % Contributed by @fotesan https://github.com/fotesan % european ground \pgf@circ@declareground{eground}{1.1}{1.7}{ \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-1.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-.6\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.7\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-.1\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@step}{-1.7\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfusepath{draw} } \pgf@circ@declareground{eground2}{1.1}{1.7}{ \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-1.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.45\pgf@circ@res@step}{-1.7\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-1.7\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfusepath{draw} } %%%%%%%%%%%%%%%%%% %% Power supplies %%%%%%%%%%%%%%%%%% % Vcc \pgfdeclareshape{vcc}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{power supplies}} % class of these components \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \saveddimen{\scaledwidth}{% thanks to @Schrödinger's cat on https://tex.stackexchange.com/a/506249/38080 \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}% \pgfmathsetmacro{\gscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed \pgfmathsetlength{\pgf@x}{(\ctikzvalof{\ctikzclass/scale}*\gscale*\ctikzvalof{monopoles/vcc/width})*\pgf@circ@Rlen}% } \savedanchor{\northeast}{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@circ@res@step \pgf@y=3\pgf@x% } \anchor{north}{\northeast\pgf@x=0cm\relax} \anchor{east}{\northeast\pgf@y=0.5\pgf@y\relax} \anchor{south}{\pgfpointorigin} \anchor{west}{\northeast\pgf@y=0.5\pgf@y\pgf@x=-\pgf@x} \anchor{north east}{\northeast} \anchor{north west}{\northeast\pgf@x=-\pgf@x} \anchor{south east}{\northeast\pgf@y=0pt\relax} \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x} \anchor{center}{\pgfpointorigin} \anchor{left}{\pgfpointorigin} \anchor{right}{\pgfpointorigin} \anchor{text}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}} \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}} \pgf@x=0pt \pgf@y=2\pgf@circ@res@step \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen \pgfscope \edef\pgf@circ@temp{\ctikzvalof{monopoles/vcc/arrow}}\edef\pgf@temp{legacy} \ifx\pgf@temp\pgf@circ@temp \pgfstartlinewidth=\pgflinewidth \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{1.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \else \pgfsetarrowsend{\pgf@circ@temp} \fi \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{1.5\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } % Vee \pgfdeclareshape{vee}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{power supplies}} % class of these components \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \saveddimen{\scaledwidth}{% thanks to @Schrödinger's cat on https://tex.stackexchange.com/a/506249/38080 \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}% \pgfmathsetmacro{\gscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed \pgfmathsetlength{\pgf@x}{(\ctikzvalof{\ctikzclass/scale}*\gscale*\ctikzvalof{monopoles/vcc/width})*\pgf@circ@Rlen}% } \savedanchor{\northeast}{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@circ@res@step \pgf@y=-3\pgf@x% } \anchor{south}{\northeast\pgf@x=0cm\relax} \anchor{east}{\northeast\pgf@y=0.5\pgf@y\relax} \anchor{north}{\pgfpointorigin} \anchor{west}{\northeast\pgf@y=0.5\pgf@y\pgf@x=-\pgf@x} \anchor{south east}{\northeast} \anchor{south west}{\northeast\pgf@x=-\pgf@x} \anchor{north east}{\northeast\pgf@y=0pt\relax} \anchor{north west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x} \anchor{center}{\pgfpointorigin} \anchor{left}{\pgfpointorigin} \anchor{right}{\pgfpointorigin} \anchor{text}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}} \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}} \pgf@x=0pt \pgf@y=-2\pgf@circ@res@step \advance \pgf@y by -1.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen \pgfscope \edef\pgf@circ@temp{\ctikzvalof{monopoles/vee/arrow}}\edef\pgf@temp{legacy} \ifx\pgf@temp\pgf@circ@temp \pgfstartlinewidth=\pgflinewidth \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{-1.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \else \pgfsetarrowsend{\pgf@circ@temp} \fi \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } %%%%%%%%%%%%%%%% %% RF elements %%%%%%%%%%%%%%%% % Legacy tlinestub % Contributed by Leonardo Azzinnari \pgfdeclareshape{tlinestub}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \savedanchor{\northeast}{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step = \ctikzvalof{bipoles/tline/width} \pgf@circ@scaled@Rlen \pgf@x=1.2\pgf@circ@res@step \pgf@circ@res@step = \ctikzvalof{bipoles/tline/width} \pgf@circ@scaled@Rlen \pgf@y=.2\pgf@circ@res@step% } % the center is on the left side of the shape for facility of usage \anchor{north}{\northeast\pgf@x=0.5\pgf@x\relax} \anchor{east}{\northeast\pgf@y=0cm\relax} \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0.5\pgf@x\relax} \anchor{west}{\pgfpointorigin} \anchor{north east}{\northeast} \anchor{north west}{\northeast\pgf@x=0cm\relax} \anchor{south east}{\northeast\pgf@y=-\pgf@y} \anchor{south west}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y} \anchor{center}{\pgfpointorigin} \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{bipoles/tline/width} \pgf@circ@scaled@Rlen \pgf@circ@res@step=0.6\pgf@circ@scaled@Rlen \pgfscope\begin{pgftransparencygroup} \pgfpathellipse{\pgfpoint{0.5\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0.125\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgf@circ@maybefill \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{1.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpatharc{90}{-90}{0.125\pgf@circ@res@step and 0.25\pgf@circ@res@step} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-0.25\pgf@circ@res@step}} \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgf@circ@draworfill \pgfpathellipse{\pgfpoint{0.5\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0.125\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfusepath{draw} \end{pgftransparencygroup} \endpgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0pt}} \pgfusepath{draw} } } %% New antennas without tails % main body of antennas \def\pgf@circ@antennabody{% \pgfstartlinewidth=\pgflinewidth \pgf@circ@scaled@Rlen=\scaledRlen \pgfsetcolor{\ctikzvalof{color}} \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen \pgfscope \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{2\pgf@circ@res@step}} \pgfsetbeveljoin \pgfpathclose \pgf@circ@draworfill \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{2\pgf@circ@res@step}} \pgfusepath{draw} } % Waves for the antennas. \def\pgf@circ@antennawaves{% \pgfscope % define a triangle for clipping the waves \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4.2\pgf@circ@res@step}{3\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4.2\pgf@circ@res@step}{-1\pgf@circ@res@step}} \pgfpathclose \pgfusepath{clip} % ...and build the waves as clipped circles \pgf@circ@count@a=8\pgf@circ@res@other=0.5\pgf@circ@res@step \pgfmathloop% \ifnum\pgf@circ@count@a>2 \pgfpathcircle{\pgfpoint{0pt}{\pgf@circ@res@step}}{\the\pgf@circ@count@a*\pgf@circ@res@other} \advance\pgf@circ@count@a-1\relax% \repeatpgfmathloop \pgfusepath{draw} \endpgfscope } % additional shape with the waves \pgfdeclareshape{waves}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/waves/width}\pgf@circ@scaled@Rlen \pgf@x=\pgf@circ@res@step \pgf@y=\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax } \anchor{top}{\northeast\pgf@x=0pt} \anchor{right}{\northeast\pgf@y=0pt} \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0pt} \anchor{bottom}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt} \anchor{north}{\northeast\pgf@x=0pt} \anchor{north east}{\northeast} \anchor{east}{\northeast\pgf@y=0pt} \anchor{south east}{\northeast\pgf@y=-\pgf@y} \anchor{south}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt} \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x} \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0pt} \anchor{north west}{\northeast\pgf@x=-\pgf@x} \behindforegroundpath{ \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/waves/width}\pgf@circ@scaled@Rlen \pgf@circ@res@step=0.5\pgf@circ@res@step \pgfsetcolor{\ctikzvalof{color}} \pgfscope % define a triangle for clipping the waves \pgfpathmoveto{\pgfpoint{-2\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{2.1\pgf@circ@res@step}{2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{2.1\pgf@circ@res@step}{-2\pgf@circ@res@step}} \pgfpathclose \pgfusepath{clip} % ...and build the waves as clipped circles \c@pgf@counta=8\pgf@circ@res@other=0.5\pgf@circ@res@step \pgfmathloop% \ifnum\c@pgf@counta>1 \pgfpathcircle{\pgfpoint{-2\pgf@circ@res@step}{0pt}}{\the\c@pgf@counta*\pgf@circ@res@other} \advance\c@pgf@counta-1\relax% \repeatpgfmathloop \pgfusepath{draw} \endpgfscope } } % the three types of antennas: simple, TX, RX. Notice that you can flip them... \pgfdeclareshape{bareantenna}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen \pgf@x=\pgf@circ@res@step \pgf@y=2\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax } \anchor{top}{\northeast\pgf@x=0pt} \anchor{right}{\northeast\pgf@y=0.5\pgf@y} \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y} \anchor{bottom}{\pgfpointorigin} \anchor{north}{\northeast\pgf@x=0pt} \anchor{east}{\northeast\pgf@y=0.5\pgf@y} \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y} \anchor{south}{\pgfpointorigin} \anchor{north east}{\northeast} \anchor{north west}{\northeast\pgf@x=-\pgf@x} \anchor{south east}{\northeast\pgf@y=0pt\relax} \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x} \behindforegroundpath{ \pgf@circ@antennabody } } \pgfdeclareshape{bareTXantenna}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen \pgf@x=\pgf@circ@res@step \pgf@y=2\pgf@circ@res@step } \savedanchor{\savedwaves}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen \pgf@x=4.2\pgf@circ@res@step \pgf@y=\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y \pgf@x=\dimexpr-\pgf@x-\wd\pgfnodeparttextbox\relax \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax } \anchor{waves}{\savedwaves} \anchor{top}{\northeast\pgf@x=0pt} \anchor{right}{\northeast\pgf@y=0.5\pgf@y} \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y} \anchor{bottom}{\pgfpointorigin} \anchor{north}{\northeast\pgf@x=0pt} \anchor{east}{\northeast\pgf@y=0.5\pgf@y} \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y} \anchor{south}{\pgfpointorigin} \anchor{north east}{\northeast} \anchor{north west}{\northeast\pgf@x=-\pgf@x} \anchor{south east}{\northeast\pgf@y=0pt\relax} \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x} \behindforegroundpath{ \pgf@circ@antennabody \pgf@circ@antennawaves } } \pgfdeclareshape{bareRXantenna}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen \pgf@x=\pgf@circ@res@step \pgf@y=2\pgf@circ@res@step } \savedanchor{\savedwaves}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen \pgf@x=-4.2\pgf@circ@res@step \pgf@y=\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax } \anchor{waves}{\savedwaves} \anchor{top}{\northeast\pgf@x=0pt} \anchor{right}{\northeast\pgf@y=0.5\pgf@y} \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y} \anchor{bottom}{\pgfpointorigin} \anchor{north}{\northeast\pgf@x=0pt} \anchor{east}{\northeast\pgf@y=0.5\pgf@y} \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y} \anchor{south}{\pgfpointorigin} \anchor{north east}{\northeast} \anchor{north west}{\northeast\pgf@x=-\pgf@x} \anchor{south east}{\northeast\pgf@y=0pt\relax} \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x} \behindforegroundpath{ \pgf@circ@antennabody \pgftransformxshift{-5.2\pgf@circ@res@step} \pgf@circ@antennawaves } } % Microstrip monopoles \pgfdeclareshape{mslstub}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \savedanchor{\southeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{bipoles/mstline/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@x \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen \pgf@y=-.5\pgf@y } \savedanchor{\northwest}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{bipoles/mstline/width}\pgf@circ@scaled@Rlen \pgf@x=-.5\pgf@x \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen \pgf@y=.5\pgf@y } \anchor{north}{\northwest\pgf@x=0pt\relax} \anchor{north east}{\northwest\pgf@x=-\pgf@x} \anchor{east}{\southeast\pgf@y=0pt\relax} \anchor{south east}{\southeast} \anchor{south}{\southeast\pgf@x=0pt\relax} \anchor{south west}{\southeast\pgf@x=-\pgf@x} \anchor{west}{\northwest\pgf@y=0pt\relax} \anchor{north west}{\northwest} % \anchor{center}{\northwest\pgf@y=0pt\relax} \anchor{left}{\northwest\pgf@y=0pt\relax} \anchor{right}{\southeast\pgf@y=0pt\relax} % put the node text above and centered \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest} \pgfpoint{-.5\wd\pgfnodeparttextbox}{ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax } } \behindbackgroundpath{ \pgfextracty{\pgf@circ@res@up}{\northwest} \pgfextractx{\pgf@circ@res@right}{\southeast} \pgfextractx{\pgf@circ@res@left}{\northwest} \pgfextracty{\pgf@circ@res@down}{\southeast} \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up} \pgfstartlinewidth=\pgflinewidth \pgfscope \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgf@circ@draworfill \endpgfscope } } \pgfdeclareshape{msrstub}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \savedanchor{\southeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{monopoles/msrstub/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@x \pgf@y=0pt\relax } \savedanchor{\northwest}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{monopoles/msrstub/width}\pgf@circ@scaled@Rlen \pgf@x=-.5\pgf@x \pgf@y=\ctikzvalof{monopoles/msrstub/height}\pgf@circ@scaled@Rlen \pgf@y=.5\pgf@y } \anchor{north}{\northwest\pgf@x=0pt\relax} \anchor{north east}{\northwest\pgf@x=-\pgf@x} \anchor{east}{\southeast\pgf@y=0pt\relax} \anchor{south east}{\southeast} \anchor{south}{\southeast\pgf@x=0pt\relax} \anchor{south west}{\southeast\pgf@x=-\pgf@x} \anchor{west}{\northwest\pgf@y=0pt\relax} \anchor{north west}{\northwest} % \anchor{center}{\pgfpointorigin} \anchor{left}{\pgfpointorigin} \anchor{right}{\pgfpointorigin} % put the node text above and centered \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest} \pgfpoint{-.5\wd\pgfnodeparttextbox}{ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax } } \behindbackgroundpath{ \pgfextracty{\pgf@circ@res@up}{\northwest} \pgfextractx{\pgf@circ@res@right}{\southeast} \pgfextractx{\pgf@circ@res@left}{\northwest} \pgfextracty{\pgf@circ@res@down}{\southeast} \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up} \pgfstartlinewidth=\pgflinewidth \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@step}} \pgfusepath{draw} \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpointpolar{135}{\pgf@circ@res@step}} \pgfpatharc{135}{45}{\pgf@circ@res@step} \pgfpathlineto{\pgfpointpolar{45}{\pgf@circ@res@up}} \pgfpatharc{45}{135}{\pgf@circ@res@up} \pgfclosepath \pgf@circ@draworfill \endpgfscope } } \pgfdeclareshape{msport}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \savedanchor{\southeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{monopoles/msport/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@x \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen \pgf@y=-.5\pgf@y } \savedanchor{\northwest}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{monopoles/msport/width}\pgf@circ@scaled@Rlen \pgf@x=-.5\pgf@x \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen \pgf@y=.5\pgf@y } \anchor{north}{\northwest\pgf@x=0pt\relax} \anchor{north east}{\northwest\pgf@x=-\pgf@x} \anchor{east}{\southeast\pgf@y=0pt\relax} \anchor{south east}{\southeast} \anchor{south}{\southeast\pgf@x=0pt\relax} \anchor{south west}{\southeast\pgf@x=-\pgf@x} \anchor{west}{\northwest\pgf@y=0pt\relax} \anchor{north west}{\northwest} % \anchor{center}{\northwest\pgf@y=0pt\relax} \anchor{left}{\northwest\pgf@y=0pt\relax} \anchor{right}{\southeast\pgf@y=0pt\relax} % put the node text above and centered \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest} \pgfpoint{-.5\wd\pgfnodeparttextbox}{ \dimexpr-.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax } } \behindbackgroundpath{ \pgfextracty{\pgf@circ@res@up}{\northwest} \pgfextractx{\pgf@circ@res@right}{\southeast} \pgfextractx{\pgf@circ@res@left}{\northwest} \pgfextracty{\pgf@circ@res@down}{\southeast} \pgfmathsetlength{\pgf@circ@res@step}{0.5*\pgf@circ@res@up} \pgfstartlinewidth=\pgflinewidth \pgfscope \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfpathclose \pgf@circ@draworfill \endpgfscope } } % Legacy antennas (with tails) \def\pgf@circ@shift@antenna@xy#1#2{% \pgf@y=\dimexpr\pgf@y+#2\pgf@circ@res@step \pgf@x=\dimexpr\pgf@x+#1\pgf@circ@res@step \relax} % Legacy antenna \pgfdeclareshape{antenna}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=4\pgf@circ@res@step } \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{0}{2}} \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{0}{3}\relax} \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{0}{4}\relax} \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{3}} \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{0}{2}} \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{2}} \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{0}{4}} \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{4}} \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/antenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/antenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen \pgftransformxshift{ -4\pgf@circ@res@step } \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\ctikzvalof{color}} \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} } } % Legacy TX antenna \pgfdeclareshape{txantenna}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=4\pgf@circ@res@step } \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{2}} \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{4}{3}\relax} \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{4}\relax} \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{3}} \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{4}{2}} \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{2}} \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{4}{4}} \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{4}} \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/txantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/txantenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@scaled@Rlen \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\ctikzvalof{color}} \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{5.5\pgf@circ@res@step}{6\pgf@circ@res@step}} % \pgfpatharc{60}{-60}{\pgf@circ@res@step and \pgf@circ@res@step} \pgfpatharc{30}{-30}{2\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6\pgf@circ@res@step}{6.25\pgf@circ@res@step}} \pgfpatharc{30}{-30}{2.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6.5\pgf@circ@res@step}{6.5\pgf@circ@res@step}} \pgfpatharc{30}{-30}{3\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7\pgf@circ@res@step}{6.75\pgf@circ@res@step}} \pgfpatharc{30}{-30}{3.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7.5\pgf@circ@res@step}{7\pgf@circ@res@step}} \pgfpatharc{30}{-30}{4\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} } } % Legacy RX antenna \pgfdeclareshape{rxantenna}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=4\pgf@circ@res@step } \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{2}} \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{4}{3}\relax} \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{4}\relax} \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{3}} \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{4}{2}} \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{2}} \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{4}{4}} \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{4}} \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/rxantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/rxantenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/rxantenna/width}\pgf@circ@scaled@Rlen \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\ctikzvalof{color}} \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{6\pgf@circ@res@step}{7\pgf@circ@res@step}} % \pgfpatharc{60}{-60}{\pgf@circ@res@step and \pgf@circ@res@step} \pgfpatharc{150}{210}{4\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6.5\pgf@circ@res@step}{6.75\pgf@circ@res@step}} \pgfpatharc{150}{210}{3.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7\pgf@circ@res@step}{6.5\pgf@circ@res@step}} \pgfpatharc{150}{210}{3\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7.5\pgf@circ@res@step}{6.25\pgf@circ@res@step}} \pgfpatharc{150}{210}{2.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{8\pgf@circ@res@step}{6\pgf@circ@res@step}} \pgfpatharc{150}{210}{2\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} } } % Legacy match \pgfdeclareshape{match}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} \savedanchor{\northeast}{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@circ@res@step = \ctikzvalof{monopoles/match/width} \pgf@circ@scaled@Rlen \pgf@x=2\pgf@circ@res@step \pgf@circ@res@step = \ctikzvalof{monopoles/match/width} \pgf@circ@scaled@Rlen \pgf@y=.5\pgf@circ@res@step% } % the center is on the left side of the shape for facility of usage \anchor{north}{\northeast\pgf@x=0.5\pgf@x\relax} \anchor{east}{\northeast\pgf@y=0cm\relax} \anchor{south}{\northeast\pgf@y=0pt\pgf@x=0.5\pgf@x\relax} \anchor{west}{\pgfpointorigin} \anchor{north east}{\northeast} \anchor{north west}{\northeast\pgf@x=0cm\relax} \anchor{south east}{\northeast\pgf@y=0pt\relax} \anchor{south west}{\pgfpointorigin} \anchor{center}{ \pgfpointorigin } \anchor{text}{ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@x=\ctikzvalof{monopoles/match/width}\pgf@circ@scaled@Rlen \pgf@x=1.5\pgf@x \advance \pgf@x by -.5\wd\pgfnodeparttextbox \pgf@y=-1.5\ht\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@scaled@Rlen=\scaledRlen \pgf@circ@res@step=\ctikzvalof{monopoles/match/width}\pgf@circ@scaled@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0}} \pgfusepath{fill} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } \endinput