From ef657b0c61ed6e67b60adb7ed1ae6577f076e8df Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 3 Apr 2010 15:34:57 +0000
Subject: pst-circ 1.54 (1apr10)

git-svn-id: svn://tug.org/texlive/trunk@17659 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/tex/generic/pst-circ/pst-circ.tex   | 111 ++++++++++++++++-----
 1 file changed, 86 insertions(+), 25 deletions(-)

(limited to 'Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex')

diff --git a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
index 17c3227d19f..e3fc1033a72 100644
--- a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
+++ b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
@@ -29,8 +29,8 @@
 \ifx\PSTXKeyLoaded\endinput   \else\input pst-xkey \fi
 \ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
 %
-\def\fileversion{1.52}
-\def\filedate{2010/01/15}
+\def\fileversion{1.54}
+\def\filedate{2010/03/29}
 \message{`pst-circ' v\fileversion (CJ,hv,pd)}
 %
 \edef\PstAtCode{\the\catcode`\@}
@@ -270,6 +270,14 @@
 \def\pst@LED[#1](#2)(#3)#4{{%
   \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@LED}\ignorespaces}
 %
+\def\OpenDipol{\@ifnextchar[{\pst@OpenDipol}{\pst@OpenDipol[]}}
+\def\pst@OpenDipol[#1](#2)(#3)#4{{%
+  \pst@draw@dipole{radius=2pt,#1}{#2}{#3}{#4}\pst@draw@OpenDipol}\ignorespaces}
+%
+\def\OpenTripol{\@ifnextchar[{\pst@OpenTripol}{\pst@OpenTripol[]}}
+\def\pst@OpenTripol[#1](#2)(#3)#4{{%
+  \pst@draw@dipole{radius=2pt,#1}{#2}{#3}{#4}\pst@draw@OpenTripol}\ignorespaces}
+%
 %-mla-----------------------------------------------
 \def\Suppressor{\@ifnextchar[{\pst@Suppressor}{\pst@Suppressor[]}}
 \def\pst@Suppressor[#1](#2)(#3)#4{{%
@@ -603,37 +611,38 @@
   \ifPst@intensity
     \psset{transformeriprimary=true,transformerisecondary=true}%
   \fi
-  \pst@getcoor{#1}\pst@tempa
-  \pst@getcoor{#2}\pst@tempb
-  \pst@getcoor{#3}\pst@tempc
-  \pst@getcoor{#4}\pst@tempd
+  \pst@getcoor{#1}\pst@tempA
+  \pst@getcoor{#2}\pst@tempB
+  \pst@getcoor{#3}\pst@tempC
+  \pst@getcoor{#4}\pst@tempD
   \pnode(!%
-    \pst@tempa /Y1 exch \pst@number\psyunit div def
-    /X1 exch \pst@number\psxunit div def
-    \pst@tempb /Y2 exch \pst@number\psyunit div def
-    /X2 exch \pst@number\psxunit div def
-    \pst@tempc /Y3 exch \pst@number\psyunit div def
-    /X3 exch \pst@number\psxunit div def
-    \pst@tempc /Y4 exch \pst@number\psyunit div def
-    /X4 exch \pst@number\psxunit div def
+    \pst@tempA /Y1 exch \pst@number\psyunit div def
+               /X1 exch \pst@number\psxunit div def
+    \pst@tempB /Y2 exch \pst@number\psyunit div def
+               /X2 exch \pst@number\psxunit div def
+    \pst@tempC /Y3 exch \pst@number\psyunit div def
+               /X3 exch \pst@number\psxunit div def
+    \pst@tempD /Y4 exch \pst@number\psyunit div def
+               /X4 exch \pst@number\psxunit div def
     /XC X1 X2 lt {X2} {X1} ifelse X3 X4 lt {X3} {X4} ifelse add 2 div def
     /YC Y1 Y3 lt {Y1} {Y3} ifelse Y2 Y4 lt {Y2} {Y4} ifelse add 2 div def
     XC YC){C@}
   \rput(C@){\pst@draw@transformer}
-  \ncangle[arrows=-,arm=0.5,angleB=90]{#1}{inup@}
+  \pnode(#1){@endA}\pnode(#2){@endB}\pnode(#3){@endC}\pnode(#4){@endD}%
+  \ncangle[arrows=-,arm=0.5,angleB=90]{@endA}{inup@}
   \ifPst@Trafo@iprimary
     \ncput[npos=2.5,nrot=:U]{\psline[linecolor=\psk@I@color,
       linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)}
     \nbput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@Trafo@iprimary@label}
   \fi
-  \ncangle[arrows=-,arm=0.5,angleB=-90]{#2}{indown@}
-  \ncangle[arrows=-,arm=0.5,angleB=90]{#3}{outup@}
-  \ifPst@Trafo@iprimary
+  \ncangle[arrows=-,arm=0.5,angleB=-90]{@endB}{indown@}
+  \ncangle[arrows=-,arm=0.5,angleB=90]{@endC}{outup@}
+  \ifPst@Trafo@isecondary
     \ncput[npos=2.5,nrot=:U]{\psline[linecolor=\psk@I@color,
       linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)}
     \naput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@Trafo@isecondary@label}
   \fi
-  \ncangle[arrows=-,arm=0.5,angleB=-90]{#4}{outdown@}
+  \ncangle[arrows=-,arm=0.5,angleB=-90]{@endD}{outdown@}
   \ncline[arrows=-,linestyle=none,fillstyle=none]{indown@}{inup@}
   \naput{\psk@Trafo@primary@label}
   \ncline[arrows=-,linestyle=none,fillstyle=none]{outdown@}{outup@}
@@ -827,10 +836,12 @@
   \else\ifx\Suppressor  #4\let\pscirc@next\pst@multidipole@Suppressor %%% mla change
   \else\ifx\Arrestor    #4\let\pscirc@next\pst@multidipole@Arrestor %%% mla change 25
   \else\ifx\RelayNOP    #4\let\pscirc@next\pst@multidipole@RelayNOP %%% mla 26
+  \else\ifx\OpenDipol   #4\let\pscirc@next\pst@multidipole@OpenDipol% 27
+  \else\ifx\OpenTripol  #4\let\pscirc@next\pst@multidipole@OpenTripol% 28
   \else\let\pscirc@next\ignorespaces
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% 1..10
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%11..20 
-  \fi\fi\fi\fi\fi\fi%		 21..26
+  \fi\fi\fi\fi\fi\fi\fi\fi%	 21..28
   \advance\pst@count@i\@ne
   \advance\pst@count@iii\@ne
   \pscirc@next}
@@ -862,17 +873,18 @@
   \else\ifx\Suppressor #1\let\pscirc@next\pst@multidipole@Suppressor%% mla change
   \else\ifx\Arrestor #1\let\pscirc@next\pst@multidipole@Arrestor%% mla change 25
   \else\ifx\RelayNOP #1\let\pscirc@next\pst@multidipole@RelayNOP%% mla change 26
+  \else\ifx\OpenDipol#1\let\pscirc@next\pst@multidipole@OpenDipol% 27
+  \else\ifx\OpenTripol#1\let\pscirc@next\pst@multidipole@OpenTripol% 28
   \else\let\pscirc@next\ignorespaces\pst@multidipole@output
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
-  \fi\fi\fi\fi\fi\fi
+  \fi\fi\fi\fi\fi\fi\fi\fi
   \advance\pst@count@i\@ne
   \advance\pst@count@iii\@ne
   \pscirc@next
 }
 %
 \def\pst@multidipole@resistor{\@ifnextchar[{\pst@multidipole@resistor@}{\pst@multidipole@resistor@[]}}
-%
 \def\pst@multidipole@resistor@[#1]#2{%
   \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}%
   {\psset{#1}%
@@ -1190,7 +1202,6 @@
 }
 %
 \def\pst@multidipole@LED{\@ifnextchar[{\pst@multidipole@LED@}{\pst@multidipole@LED@[]}}
-%
 \def\pst@multidipole@LED@[#1]#2{%
   \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}%
   {\psset{#1}%
@@ -1206,11 +1217,42 @@
   (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)%
       {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname}
   }%
-  \pst@multidipole@
+  \pst@multidipole@%
 }
 %
-\def\pst@multidipole@wire{\@ifnextchar[{\pst@multidipole@wire@}{\pst@multidipole@wire@[]}}
+\def\pst@multidipole@OpenDipol{\@ifnextchar[{\pst@multidipole@OpenDipol@}{\pst@multidipole@OpenDipol@[]}}
+\def\pst@multidipole@OpenDipol@[#1]{%
+  {\psset{#1}%
+  \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}%
+  \pst@count@ii=\pst@count@i
+  \advance\pst@count@ii\@ne
+  \toks0\expandafter{\pst@multidipole@output}%
+  \edef\pst@multidipole@output{%
+    \the\toks0
+    \pst@multidipole@def@coor
+    \noexpand\OpenDipol[#1]%
+      (! X@\the\pst@count@i\space Y@\the\pst@count@i)(! X@\the\pst@count@ii\space Y@\the\pst@count@ii)
+  }%
+  \pst@multidipole@%
+}
 %
+\def\pst@multidipole@OpenTripol{\@ifnextchar[{\pst@multidipole@OpenTripol@}{\pst@multidipole@OpenTripol@[]}}
+\def\pst@multidipole@OpenTripol@[#1]{%
+  {\psset{#1}%
+  \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}%
+  \pst@count@ii=\pst@count@i
+  \advance\pst@count@ii\@ne
+  \toks0\expandafter{\pst@multidipole@output}%
+  \edef\pst@multidipole@output{%
+    \the\toks0
+    \pst@multidipole@def@coor
+    \noexpand\OpenTripol[#1]%
+      (! X@\the\pst@count@i\space Y@\the\pst@count@i)(! X@\the\pst@count@ii\space Y@\the\pst@count@ii)
+  }%
+  \pst@multidipole@%
+}
+%
+\def\pst@multidipole@wire{\@ifnextchar[{\pst@multidipole@wire@}{\pst@multidipole@wire@[]}}
 \def\pst@multidipole@wire@[#1]{%
   {\psset{#1}%
   \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}%
@@ -1647,6 +1689,25 @@
   \multips(-0.25,0.3)(0.25,0){3}{\psline[arrows=->](0.25,0.22)}%
 }
 %
+\def\pst@draw@OpenDipol{%
+  \pscircle(-0.5,0){\psk@radius}
+  \pscircle(0.5,0){\psk@radius}
+  \pst@getlength{\psk@radius}\pst@tempA
+  \pnode(!-0.5 \pst@tempA\space \pst@number\psxunit div sub 0){dipole@1}
+  \pnode(! 0.5 \pst@tempA\space \pst@number\psxunit div add 0){dipole@2}
+}
+%
+\def\pst@draw@OpenTripol{%
+  \pst@getlength{\psk@radius}\pst@tempA
+  \pscircle(0.65,0){\psk@radius}
+  \pscircle(-0.65,0){\psk@radius}
+  \pscircle(0,0){\psk@radius}
+  \psline(!0 \pst@tempA\space \pst@number\psxunit div neg)(0,-5mm)
+  \psline(-2mm,-5mm)(2mm,-5mm)
+  \pnode(!-0.65 \pst@tempA\space \pst@number\psxunit div sub 0){dipole@1}
+  \pnode(! 0.65 \pst@tempA\space \pst@number\psxunit div add 0){dipole@2}
+}
+%
 \def\pst@draw@Tswitch{%
   \ifx\psk@tripole@style\pst@tripole@style@right
     \psline[arrows=-,linewidth=2\pslinewidth](0.5,0)(0,-1)
-- 
cgit v1.2.3

