%% BEGIN pst-coil.tex
%%
%% Coils and zigzags with PSTricks
%% See the PSTricks User's Guide for documentation.
%% For use with the PostScript header file `pst-coil.pro'.
%%
%%
%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
%%           2006 Herbert Voss, hvoss@tug.org
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt.
%%
\message{ v\fileversion, \filedate}
\csname PSTcoilsLoaded\endcsname
\let\PSTcoilsLoaded\endinput
\ifx\PSTricksLoaded\endinput\else
\def\next{\input pstricks.tex}\expandafter\next
\fi
\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
%
\def\fileversion{1.00}
\def\filedate{2006/11/05}
%
\edef\TheAtCode{\the\catcode`\@}
\catcode`\@=11
%
\pst@addfams{pst-coil}
\pstheader{pst-coil.pro}
\edef\pst@theheaders{\pst@theheaders,pst-coil.pro}
\def\pst@coildict{tx@CoilDict begin }
%
\define@key[psset]{pst-coil}{coilwidth}{\pst@getlength{#1}\psk@coilwidth}
\define@key[psset]{pst-coil}{coilheight}{\pst@checknum{#1}\pscoilheight}
\define@key[psset]{pst-coil}{coilarmA}{\pst@getlength{#1}\psk@coilarmA}
\define@key[psset]{pst-coil}{coilarmB}{\pst@getlength{#1}\psk@coilarmB}
\define@key[psset]{pst-coil}{coilarm}{%
  \pst@getlength{#1}\psk@coilarmA%
  \let\psk@coilarmB\psk@coilarmA}
\define@key[psset]{pst-coil}{coilaspect}{\pst@getangle{#1}\psk@coilaspect}
\define@key[psset]{pst-coil}{coilinc}{\pst@getangle{#1}\psk@coilinc}
%
\psset[pst-coil]{coilaspect=45,coilarm=.5cm,coilheight=1,coilwidth=1cm,coilinc=10}
%
\def\pscoil{\def\pst@par{}\pst@object{pscoil}}
\def\pscoil@i{\pst@getarrows\pscoil@ii}
\def\pscoil@ii(#1){\@ifnextchar({\pscoil@iii{1}(#1)}{\pscoil@iii{\z@}(0,0)(#1)}}
\def\pscoil@iii#1(#2)(#3){%
  \begin@OpenObj
  \pst@getcoor{#2}\pst@tempa
  \pst@getcoor{#3}\pst@tempb
  \pst@optcp{#1}\pst@tempa
  \addto@pscode{%
    \pst@tempa \pst@tempb
    \psk@coilwidth \pscoilheight
    \psk@coilarmA \psk@coilarmB
    \psk@coilaspect \psk@coilinc
    \pst@coildict \tx@Coil end }%
    \showpointsfalse
  \end@OpenObj}
\def\tx@CoilLoop{CoilLoop }
\def\tx@Coil{Coil }
\def\psCoil{\def\pst@par{}\pst@object{psCoil}}
\def\psCoil@i#1#2{%
  \begin@AltOpenObj
  \showpointsfalse
  \pst@getangle{#1}\pst@tempa
  \pst@getangle{#2}\pst@tempb
  \addto@pscode{%
    \pst@tempa
    \pst@tempb
    \psk@coilwidth
    \pscoilheight
    \psk@coilaspect
    \psk@coilinc
    \pst@coildict \tx@AltCoil end 
    \@nameuse{psls@\pslinestyle} }%
  \end@OpenObj}
\def\tx@AltCoil{AltCoil }
%
\def\pszigzag{\def\pst@par{}\pst@object{pszigzag}}
\def\pszigzag@i{\pst@getarrows\pszigzag@ii}
\def\pszigzag@ii(#1){\@ifnextchar({\pszigzag@iii{1}(#1)}{\pszigzag@iii{\z@}(0,0)(#1)}}
\def\pszigzag@iii#1(#2)(#3){%
  \begin@OpenObj
  \pst@getcoor{#2}\pst@tempa
  \pst@getcoor{#3}\pst@tempb
  \pst@optcp{#1}\pst@tempa
  \addto@pscode{%
    \pst@tempa
    \pst@tempb
    \pscoilheight
    \psk@coilwidth
    \psk@coilarmA
    \psk@coilarmB
    \pst@coildict \tx@ZigZag end
    \psline@iii
    \tx@Line }%
  \end@OpenObj}
%
\def\tx@ZigZag{ZigZag }
%
\def\nccoil{\pst@object{nccoil}}
\def\nccoil@i{\check@arrow{\nccoil@ii}}
\def\nccoil@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
  \tx@NCCoor
  tx@Dict begin
% DG/SR modification begin - Mar. 19, 1998 - Patch 2
  4 2 roll
% DG/SR modification end
  \psk@coilwidth \pscoilheight
  \psk@coilarmA \psk@coilarmB
  \psk@coilaspect \psk@coilinc
  \pst@coildict \tx@Coil end
  end }}
%
\def\pccoil{\def\pst@par{}\pst@object{pccoil}}
\def\pccoil@i{\pc@object\nccoil@ii}
\def\nczigzag{\pst@object{nczigzag}}
\def\nczigzag@i{\check@arrow{\nczigzag@ii}}
\def\nczigzag@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{%
  \tx@NCCoor
  tx@Dict begin
% DG/SR modification begin - Mar. 19, 1998 - Patch 2
  4 2 roll
% DG/SR modification end
  \pscoilheight
  \psk@coilwidth
  \psk@coilarmA
  \psk@coilarmB
  \pst@coildict \tx@ZigZag end
  \psline@iii
  \tx@Line
  end }}
%
\def\pczigzag{\def\pst@par{}\pst@object{pczigzag}}
\def\pczigzag@i{\pc@object\nczigzag@ii}
%
\catcode`\@=\TheAtCode\relax
\endinput
%%
%% END pst-coil.tex
