diff options
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.sty | 54 |
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 |