% 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 file doc/LICENSE for more details.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Monopoles

%% Ground symbol

\pgfdeclareshape{ground}{
	\anchor{center}{
		\pgfpointorigin
	}
	\behindforegroundpath{		
		\pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen
		
		\pgfscope		
			\pgfpathmoveto{\pgfpointorigin}
			\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
			\pgfusepath{draw}

			\pgfstartlinewidth=\pgflinewidth
			%\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}

			\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfusepath{draw}
						
			\pgfsetlinewidth{\pgfstartlinewidth}
			\pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
			\pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
			\pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
			\pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
			\pgfusepath{draw}
		
			
			\pgfsetlinewidth{\pgfstartlinewidth}
	
		\endpgfscope
	}

}



\pgfdeclareshape{rground}{
	\anchor{center}{
		\pgfpointorigin
	}
	\behindforegroundpath{		
		\pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen
		
		\pgfscope		
			\pgfpathmoveto{\pgfpointorigin}
			\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
			\pgfusepath{draw}

			\pgfstartlinewidth=\pgflinewidth
			\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}

			\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfusepath{draw}
						
						
			\pgfsetlinewidth{\pgfstartlinewidth}
	
		\endpgfscope
	}

}

\pgfdeclareshape{sground}{
	\anchor{center}{
		\pgfpointorigin
	}
	\behindforegroundpath{		
		\pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen
		
		\pgfscope		
			\pgfpathmoveto{\pgfpointorigin}
			\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
			\pgfusepath{draw}

			\pgfstartlinewidth=\pgflinewidth
			\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}

			\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{0}{-1.8\pgf@circ@res@step}}
			\pgfpathclose
			\pgfusepath{draw}
						
						
			\pgfsetlinewidth{\pgfstartlinewidth}
	
		\endpgfscope
	}

}

% noiseless ground
\pgfdeclareshape{nground}{
	\anchor{center}{
		\pgfpointorigin
	}
	\behindforegroundpath{		
		\pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen
		
		\pgfscope		
			\pgfpathmoveto{\pgfpointorigin}
			\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
			\pgfusepath{draw}

			\pgfstartlinewidth=\pgflinewidth
			%\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}

			\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfusepath{draw}
						
			\pgfsetlinewidth{\pgfstartlinewidth}
			\pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
			\pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
			\pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
			\pgfusepath{draw}
			
			\pgfpathmoveto{\pgfpoint{1.3\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
			\pgfpatharc{0}{180}{1.3\pgf@circ@res@step}
			\pgfusepath{draw}
					
			\pgfsetlinewidth{\pgfstartlinewidth}
		\endpgfscope
	}
}

% protective ground
\pgfdeclareshape{pground}{
	\anchor{center}{
		\pgfpointorigin
	}
	\behindforegroundpath{		
		\pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen
		
		\pgfscope		
			\pgfpathmoveto{\pgfpointorigin}
			\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
			\pgfusepath{draw}

			\pgfstartlinewidth=\pgflinewidth
			%\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}

			\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
			\pgfpathcircle{\pgfpoint{0pt}{-\pgf@circ@res@step}} {1.2\pgf@circ@res@step}
			\pgfusepath{draw}
						
			\pgfsetlinewidth{\pgfstartlinewidth}
			\pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
			\pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
			\pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
			\pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
			\pgfusepath{draw}
					
			\pgfsetlinewidth{\pgfstartlinewidth}
		\endpgfscope
	}
}

% chassis ground 
\pgfdeclareshape{cground}{ 
\anchor{center}{ 
    \pgfpointorigin 
} 
\behindforegroundpath{       
    \pgf@circ@res@step=\ctikzvalof{monopoles/chassis/width}\pgf@circ@Rlen 
 
    \pgfscope        
        \pgfpathmoveto{\pgfpointorigin} 
        \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} 
        \pgfusepath{draw}

        \pgfpathmoveto{\pgfpoint{-1.5\pgf@circ@res@step}{-2\pgf@circ@res@step}}
        \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
        \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
        \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-2\pgf@circ@res@step}}
        \pgfpathmoveto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
        \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-2\pgf@circ@res@step}}
        \pgfusepath{draw}                        
    \endpgfscope 
    } 
}

% Contributed by Leonardo Azzinnari
\pgfdeclareshape{tlinestub}{
	\anchor{center}{\pgfpointorigin}
	\behindforegroundpath{
		\pgfstartlinewidth=\pgflinewidth
		
		\pgf@circ@res@step=\ctikzvalof{bipoles/tline/width} \pgf@circ@Rlen
        \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}}
        
            \pgfpathmoveto{\pgfpointorigin}
            \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0pt}}
            \pgfusepath{draw}
         \pgfscope
            \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}}
			\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}}
            \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
            \pgfusepath{draw}
         \endpgfscope
      }
}
                            



\pgfdeclareshape{antenna}{
\anchor{center}{\pgfpointorigin}
	\savedanchor{\northeast}{
		\pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@Rlen
		\pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth
		\pgf@y=6\pgf@circ@res@step
	}
	\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@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@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{\pgfkeysvalueof{/tikz/circuitikz/color}}
             \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
             \pgfusepath{draw}
           \endpgfscope
                           \pgfsetlinewidth{\pgfstartlinewidth}
                        
                           }
     }


\pgfdeclareshape{txantenna}{
	\anchor{center}{\pgfpointorigin}
	\savedanchor{\northeast}{
		\pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen
		\pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth
		\pgf@y=6\pgf@circ@res@step
	}
	\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@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@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{\pgfkeysvalueof{/tikz/circuitikz/color}}
             \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\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}
        
        }
     }


\pgfdeclareshape{rxantenna}{
	\anchor{center}{\pgfpointorigin}
	\savedanchor{\northeast}{
		\pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen
		\pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth
		\pgf@y=6\pgf@circ@res@step
	}
	\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@res@step=\ctikzvalof{monopoles/rxantenna/width}\pgf@circ@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{\pgfkeysvalueof{/tikz/circuitikz/color}}
             \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\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}
             
             }
}


\endinput
