summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty')
-rw-r--r--Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty54
1 files changed, 52 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty b/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty
index 5e8a6ad2b8e..c8ff7b8946f 100644
--- a/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty
+++ b/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty
@@ -9,7 +9,7 @@
%% This is a generated file.
%%
%% Project: pst-optexp
-%% Version: 5.0 (2014/10/30)
+%% Version: 5.1 (2014/11/19)
%%
%% Copyright (C) 2007-2014 by Christoph Bersch <usenet@bersch.net>
%%
@@ -31,7 +31,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{pst-optexp}
- [2014/10/30 v5.0 Optical experimental setups with PSTricks]
+ [2014/11/19 v5.1 Optical experimental setups with PSTricks]
\RequirePackage{ifthen}
\RequirePackage{pstricks}
\RequirePackage{pst-xkey}
@@ -961,6 +961,19 @@
parmirrorwidth=1,
parmirrorheight=1
}%
+\define@key[psset]{optexp}{oapmirroraperture}{%
+ \pst@expandafter\POE@psset@@oapmirroraperture{#1} {} {} {}\@nil
+}%
+\def\POE@psset@@oapmirroraperture#1 #2 #3\@nil{%
+ \ifx\\#2\\%
+ \def\POE@key@oapmirroraperture@outer{#1 0.5 mul}
+ \def\POE@key@oapmirroraperture@inner{#1 0.5 mul}
+ \else
+ \pst@checknum{#1}\POE@key@oapmirroraperture@inner
+ \pst@checknum{#2}\POE@key@oapmirroraperture@outer
+ \fi
+}%
+\psset[optexp]{oapmirroraperture=1}
\define@key[psset]{optexp}{optgridcount}{%
\pst@checknum{#1}\POE@key@gratingcount
\PackageWarning{pst-optexp}{%
@@ -3825,6 +3838,7 @@
\newOptexpTripole[ref@angle=45]{pentaprism}
\newOptexpTripole[ref@angle=45]{rightangleprism}
\newOptexpTripole[ref@angle=45]{optprism}
+\newOptexpTripole{oapmirror}
\def\optdipole{\pst@object{optdipole}}
\def\optdipole@i(#1)(#2){%
\@ifnextchar\bgroup%
@@ -5103,6 +5117,42 @@
\POE@key@aomcomp
\fi
\ignorespaces}%
+\def\oapmirror@nodes{%
+ \POE@calcAngle
+ \POE@Verb{%
+ gsave
+ STV CP T
+ /N@\oenodeRefA{} @GetCenter
+ /N@\oenodeCenter{} @GetCenter
+ @ABVect NormalizeVec 2 copy
+ 90 matrix rotate dtransform
+ /N@\oenodeRefB{} @GetCenter
+ /N@\oenodeCenter{} @GetCenter @ABVect
+ \tx@UserCoor 2 copy 6 2 roll
+ grestore
+ DotProd tx@Dict begin /POEzonalradius ED end
+ DotProd
+ % y = ax^2, a = 1/(2x_0^2) (-h + sqrt(h^2 + x_0^2)), x_0 = @zonalradius.
+ tx@Dict begin
+ dup /POEoapheight ED neg dup dup mul POEzonalradius dup mul add sqrt add 0.5 POEzonalradius dup mul div mul
+ dup /POEoappar ED
+ /POEangle 180 OEangle sub 0.5 mul POEzonalradius 0 gt { 90 add } if DegToRad def
+ end
+ }%
+ \def\POE@tempX{((POEoappar*(t^2))-(0.25/POEoappar)+POEoapheight)}%
+ \def\POE@tempY{(-t+POEzonalradius)}%
+ \pssavepath[linestyle=none, arrows=-,ArrowInside=-]{\oenode@Path{A}}{%
+ \psparametricplot[algebraic]%
+ {POEzonalradius dup 0 gt {\POE@key@oapmirroraperture@outer}{\POE@key@oapmirroraperture@inner} ifelse add}%
+ {POEzonalradius dup 0 gt {\POE@key@oapmirroraperture@inner}{\POE@key@oapmirroraperture@outer} ifelse sub}%
+ {(cos(POEangle)*\POE@tempX+sin(POEangle)*\POE@tempY)|(cos(POEangle)*\POE@tempY-sin(POEangle)*\POE@tempX)}}%
+ \newOptexpComp{%
+ {0 0} tx@IntersectDict /\PIT@name{\oenode@Path{A}} get 0 0 refl {PathIfc}
+ 1 }%
+\ignorespaces}%
+\def\oapmirror@comp{%
+ \pstracecurve{\oenode@Path{A}}%
+\ignorespaces}%
\def\optfiber@ref{%
\POE@setref{%
/@@x \POE@key@fiberloopsep\space\POE@key@fiberloops\space