summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro')
-rw-r--r--Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro93
1 files changed, 63 insertions, 30 deletions
diff --git a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro
index baf32e37473..94f28126d69 100644
--- a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro
+++ b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro
@@ -9,7 +9,7 @@
%% This is a generated file.
%%
%% Project: pst-optexp
-%% Version: 4.7 (2014/01/12)
+%% Version: 4.8 (2014/02/28)
%%
%% Copyright (C) 2007-2014 by Christoph Bersch <usenet@bersch.net>
%%
@@ -268,7 +268,7 @@ tx@OptexpDict begin
exec scl ToVec 3 1 roll NodeName @NewNode
} bind def
/relative 0 def /absolute 1 def /center 2 def
-/refl 0 def /trans 1 def /absorb 2 def /refltrans 3 def /undefined -1 def
+/refl 0 def /trans 1 def /absorb 2 def /refltrans 3 def /auto 4 def /undefined -1 def
/desc 0 def /asc 1 def /amb 2 def
/ok 0 def /tir 1 def /missed 2 def
/bgRefIndex 0 def
@@ -276,11 +276,12 @@ tx@OptexpDict begin
(NewOptexpComp) DebugBegin
/sc ED dup cvn
gsave
- 12 dict dup 3 1 roll def begin
+ 13 dict dup 3 1 roll def begin
/name ED
/forcebeaminside ED
/allowbeaminside ED
/ambiguous ED
+ /grating false def
dup type /booleantype eq not { false } if /correct ED
tx@Dict begin
STV {CP T} stopped pop
@@ -376,27 +377,6 @@ tx@OptexpDict begin
end
DebugEnd
} bind def
-/GetIfcCenter {
- (GetIfcCenter) DebugBegin
- dup type /stringtype eq not {
- dup xcheck not {
- 0 get (C) exch
- } {
- exec pop pop pop
- } ifelse
- } if
- cvn load begin
- IfcName load begin
- currentdict /RX known {
- X RX sub Y RY sub
- } {
- X Y
- } ifelse
- CompMtrx transform CM itransform
- end
- end
- DebugEnd
-} bind def
/GetIfcCenterCorr {
(GetIfcCenterCorr) DebugBegin
cvn load begin
@@ -513,15 +493,61 @@ tx@OptexpDict begin
trans draw ] cvx
IfcCntTmp IfcCnt gt { exch } if
}{
- [ (C) name
- name GetRefIndex
- CurrVecTmp (C) name GetPlaneVec NormalVec outToPlane
- GetIfcCenter (C) name GetIfcCenter @ABVect DotProd
- 0 lt { trans } { refl } ifelse
+ beamdiffractionorder null eq not name cvn load /grating get and {
+ beamdiffractionorder dup 0 eq { pop () } if
+ (C) exch 20 string cvs strcat
+ dup (P@) exch strcat cvn name cvn load exch known not {
+ pop beamdiffractionorder dup sign neg 1 {
+ (C) exch 5 string cvs dup 3 1 roll strcat
+ dup (P@) exch strcat cvn name cvn load exch known {
+ 3 -1 roll pop
+ (Diffraction order ) beamdiffractionorder 5 string cvs strcat
+ ( is not defined, using ) 4 -1 roll strcat strcat Warning
+ exit
+ } {
+ pop
+ } ifelse
+ } for
+ } if
+ /@@centerifc ED
+ mark @@centerifc name name GetRefIndex
+ beamdiffractionorder 0 eq {
+ trans
+ }{
+ name @@centerifc GetIfcMode refltrans eq {
+ refltrans
+ }{
+ refl
+ } ifelse
+ } ifelse
+ }{
+ /@@centerifc (C) def
+ [ @@centerifc name
+ name GetRefIndex
+ beammode auto eq {
+ CurrVecTmp @@centerifc name GetPlaneVec
+ name @@centerifc GetIfcMode refltrans eq { -90 matrix rotate dtransform } if
+ NormalVec outToPlane GetIfcCenter @@centerifc name GetIfcCenter @ABVect DotProd
+ 0 lt {
+ trans
+ }{
+ name @@centerifc GetIfcMode
+ refltrans eq {
+ refltrans
+ }{
+ refl
+ } ifelse
+ } ifelse
+ } {
+ beammode dup refl eq {
+ pop name @@centerifc GetIfcMode dup refltrans eq not { pop refl } if
+ } if
+ } ifelse
+ } ifelse
dup 6 1 roll
IfcCntTmp IfcCnt eq { true }{ draw } ifelse
] cvx
- (C) name 4 -1 roll
+ @@centerifc name 4 -1 roll
connectifc { bgRefIndex }{ name GetRefIndex } ifelse
CurrTmp CurrVecTmp
10 dict begin HandleInterface end pop
@@ -1314,6 +1340,13 @@ tx@OptexpDict begin
Xin Yin 2 costheta1 mul dup Xnorm mul exch Ynorm mul VecAdd
DebugEnd
} bind def
+/ReflectGratVec {
+ (ReflectGratVec) DebugBegin
+ /Ynorm ED /Xnorm ED NormalizeVec /Yin ED /Xin ED
+ /costheta1 Xnorm Ynorm Xin neg Yin neg DotProd def
+ Xin Yin -2 costheta1 mul dup Xnorm mul exch Ynorm mul VecAdd
+ DebugEnd
+} bind def
/CurvedInterface {
(CurvedInterface) DebugBegin
2 copy /Yr ED /Xr ED