summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/dvips/pst-optexp
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-06-28 22:22:09 +0000
committerKarl Berry <karl@freefriends.org>2013-06-28 22:22:09 +0000
commit7982c074840b844f8dcbfaf3eeb885a1c9216999 (patch)
treed3c1b42332e169fcd416e1ef769592c6f7e00c0f /Master/texmf-dist/dvips/pst-optexp
parentabf2c2731a05ca038cfbb771f3430be4481f76d8 (diff)
pst-optexp (9jun13)
git-svn-id: svn://tug.org/texlive/trunk@31015 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/dvips/pst-optexp')
-rw-r--r--Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro80
1 files changed, 66 insertions, 14 deletions
diff --git a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro
index 261e916190c..19e96175299 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.1 (2013/05/21)
+%% Version: 4.2 (2013/06/07)
%%
%% Copyright (C) 2007-2013 by Christoph Bersch <usenet@bersch.net>
%%
@@ -618,6 +618,9 @@ tx@OptexpDict begin
exit
} if
(checked) DebugMsg
+ beampathcount 0 eq {
+ cleartomark mark exit
+ } if
dup xcheck not {
PushAmbCompPlanesOnStack
} if
@@ -631,6 +634,16 @@ tx@OptexpDict begin
{ relAngle } { 0 } ifelse connectInterfaces
/relAngle ED
} if
+ CompName cvn load begin
+ currentdict /adjustRel known aligntovector and {
+ IfcNum IfcName load begin
+ currentdict /RX known not {
+ 2 copy neg exch CM dtransform CompMtrx idtransform
+ /DY ED /DX ED
+ } if
+ end
+ } if
+ end
IfcNum CompName Mode n2 8 4 roll HandleInterface
missed eq {
counttomark PN 1 sub 3 mul sub {pop} repeat
@@ -666,6 +679,10 @@ tx@OptexpDict begin
Warning
exit
} if
+ beampathcount 1 add PN eq {
+ IfcCnt PN sub {pop} repeat
+ exit
+ } if
/PN PN 1 add def
} ifelse
} loop
@@ -735,6 +752,9 @@ tx@OptexpDict begin
PN IfcCnt gt {
exit
} if
+ beampathcount 0 eq {
+ cleartomark mark exit
+ } if
dup xcheck not {
PushAmbCompPlanesOnStack
} if
@@ -743,6 +763,29 @@ tx@OptexpDict begin
/Mode ED /n2 ED 2 copy /CompName ED /IfcNum ED
GetIfcCenter ToVec /CurrPCenter ED
/oldn1 n1 def
+ CompName cvn load /adjustRel known aligntovector and {
+ connectifc PrevCorrect PN 2 gt and PN 2 eq or and {
+ CurrVecUp CurrVecUp CurrPCenter PrevPCenter PrevMode
+ currentdict /relAngleUp known { relAngleUp } { 0 } ifelse
+ connectInterfaces pop
+ CurrVecLow CurrVecLow CurrPCenter PrevPCenter PrevMode
+ currentdict /relAngleLow known { relAngleLow } { 0 } ifelse
+ connectInterfaces pop
+ } {
+ CurrVecUp CurrVecLow
+ } ifelse
+ VecAdd NormalizeVec
+ CompName cvn load begin
+ IfcNum IfcName load begin
+ currentdict /RX known not {
+ CM dtransform CompMtrx idtransform
+ /DX ED neg /DY ED
+ } {
+ pop pop
+ } ifelse
+ end
+ end
+ } if
CurrUp CurrVecUp
connectifc PrevCorrect PN 2 gt and PN 2 eq or and {
CurrVecUp CurrPCenter PrevPCenter PrevMode
@@ -832,13 +875,14 @@ tx@OptexpDict begin
strokeBeam {
CurrUp draw CurrLow draw counttomark 1 add 6 roll
} if
- PN IfcCnt eq ret tir eq or {
+ PN IfcCnt eq ret tir eq or
+ beampathcount 1 add PN eq or {
DrawnSegm 0 gt currentdict /fillBeam known and {
fillBeam newpath
/DrawnSegm 0 def
} if
+ IfcCnt PN sub {pop} repeat
ret tir eq {
- IfcCnt PN sub {pop} repeat
(Total internal reflection occured, this is not supported)
Warning
} if
@@ -856,9 +900,6 @@ tx@OptexpDict begin
/DrawnSegm 0 def
} if
ret missed eq not {
- currentdict /lastVecTmpUp known currentdict /lastVecTmpLow known and dup {
- /lastVecTmpUp load /lastVecTmpLow load 3 -1 roll
- } if
CurrLow CurrUp @ABVect % from Low to Up
PrevVecUp PrevVecLow VecAdd
2 copy 6 2 roll
@@ -875,9 +916,7 @@ tx@OptexpDict begin
/lastVecTmpUp /CurrVecUp load def
/lastVecTmpLow /CurrVecLow load def
} ifelse
- not {
- /lastVecTmpUp load /lastVecTmpLow load
- } if
+ /lastVecTmpUp load /lastVecTmpLow load
/prevVecLow ED /prevVecUp ED
} if
DebugEnd
@@ -1040,7 +1079,7 @@ tx@OptexpDict begin
} bind def
/AdjustRelRot {
(AdjustRelRot) DebugBegin
- exch dup cvn load /adjustRel known {
+ exch dup cvn load /adjustRel known aligntovector not and {
dup dup 4 2 roll isAmbiguous {
exch pop (C)
}{
@@ -1100,10 +1139,23 @@ tx@OptexpDict begin
} {
1 1 1 N N
} ifelse
- first startinside not and {
- 5 -2 roll
- pop pop
- 2 copy 5 2 roll
+ first {
+ startinside not {
+ 5 -2 roll
+ pop pop
+ 2 copy 5 2 roll
+ } {
+ startinsidecount 0 gt N startinsidecount sub 1 gt and {
+ 3 -1 roll dup 4 1 roll
+ N 1 sub startinsidecount sub mul
+ 6 -2 roll pop add dup 5 2 roll
+ } if
+ } ifelse
+ } if
+ last stopinsidecount 0 gt N stopinsidecount sub 1 gt and and {
+ % 1 1 1 N N
+ 3 -1 roll dup 4 1 roll stopinsidecount mul
+ 6 -1 roll dup 7 1 roll add 3 1 roll pop pop dup
} if
5 1 roll
{