% 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{tground}{
	\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/monopoles/tground/thickness}\pgfstartlinewidth}

			\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{0pt}}
			\pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
			\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}}
        
        \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{\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}
             
             }
}

% Vcc
\pgfdeclareshape{vcc}{
\anchor{center}{\pgfpointorigin}
\anchor{text}{
	\pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@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@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen           
	\pgfscope           
		\pgfpathmoveto{\pgfpointorigin}
		\pgfpathlineto{\pgfpoint{0pt}{1.5\pgf@circ@res@step}}
		\pgfusepath{draw}

		\pgfstartlinewidth=\pgflinewidth
		\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\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}

	\endpgfscope
}

}

% Vee
\pgfdeclareshape{vee}{
\anchor{center}{\pgfpointorigin}
\anchor{text}{
	\pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@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@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen
	
	\pgfscope                           
		\pgfpathmoveto{\pgfpointorigin}
		\pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}}
		\pgfusepath{draw}

		\pgfstartlinewidth=\pgflinewidth
		\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\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}

	\endpgfscope
}

}


% match
\pgfdeclareshape{match}{
	\anchor{center}{
		\pgfpointorigin
	}
	\anchor{text}{
		\pgf@x=\ctikzvalof{monopoles/match/width}\pgf@circ@Rlen
		\pgf@x=1.5\pgf@x
		\advance \pgf@x by -.5\wd\pgfnodeparttextbox
		\pgf@y=-1.5\ht\pgfnodeparttextbox
	}
	\behindforegroundpath{		
		\pgf@circ@res@step=\ctikzvalof{monopoles/match/width}\pgf@circ@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
	}

}

% oscillator
\pgfdeclareshape{oscillator}{
	\anchor{center}{
		\pgfpointorigin
	}
	\anchor{north}{
		\pgf@x=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
		\pgf@x=-0.5\pgf@x
		\pgf@y=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
		\pgf@y=0.5\pgf@y
	}
	\anchor{south}{
		\pgf@x=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
		\pgf@x=-0.5\pgf@x
		\pgf@y=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
		\pgf@y=-0.5\pgf@y
	}
	\anchor{east}{
		\pgfpointorigin
		\pgf@x=-\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
	}
	\anchor{west}{
		\pgfpointorigin
	}
	\anchor{text}{
		\pgf@x=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
		\pgf@x=-2\pgf@x
		\advance \pgf@x by -.5\wd\pgfnodeparttextbox
		\pgf@y=-\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
		\advance \pgf@y by -1.5\ht\pgfnodeparttextbox
	}
	\behindforegroundpath{		
		\pgf@circ@res@step=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen
		\pgf@circ@res@step=.5\pgf@circ@res@step
		
		\pgfscope		
			\pgfpathmoveto{\pgfpointorigin}
			\pgfstartlinewidth=\pgflinewidth
			
			% draw circle
			\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
			\pgfpathcircle{\pgfpoint{-\pgf@circ@res@step}{0}} {\pgf@circ@res@step}
			\pgfusepath{draw}

			% draw inner sine waves
			\pgfsetdash{}{0pt}	% always draw solid line for inner symbol
			\pgfsetlinewidth{\pgfstartlinewidth}

			\pgfpathmoveto{\pgfpoint{-1.5\pgf@circ@res@step}{0\pgf@circ@res@step}}
			\pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}}
			\pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}}
			\pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}}
			\pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}}
			\pgfusepath{draw}
					
			\pgfsetlinewidth{\pgfstartlinewidth}

		\endpgfscope
	}
}

\endinput
