diff options
Diffstat (limited to 'Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro')
-rw-r--r-- | Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro | 73 |
1 files changed, 55 insertions, 18 deletions
diff --git a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro index e8bfcdb9054..a824a39d9c8 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: 5.0 (2014/10/30) +%% Version: 5.1 (2014/11/19) %% %% Copyright (C) 2007-2014 by Christoph Bersch <usenet@bersch.net> %% @@ -85,7 +85,7 @@ tx@OptexpDict begin dup length string cvs } bind def /PrintWarning { - (Warning pst-optexp: ) exch strcat == + (Warning pst-optexp: ) exch strcat (\n) strcat print } bind def /CompUnknownWarning { (Component ') exch strcat (' unknown) strcat Warning @@ -766,6 +766,13 @@ tx@OptexpDict begin /Chirality { 4 -1 roll mul 3 1 roll mul sub sign } bind def +/TraceInterfacePath { + tx@IntersectDict begin + /ArrowA { {currentpoint} stopped {moveto}{pop pop pop pop} ifelse } def + {} TraceCurveOrPath + currentdict /ArrowA undef + end +} bind def /TraceAndFillWideBeam { (TraceAndFillWideBeam) DebugBegin AngToVec /InvecLow ED /StartLow ED @@ -818,6 +825,9 @@ tx@OptexpDict begin counttomark /IfcCnt ED /n1 bgRefIndex def /CurrR false def + /CurrPath false def + /CurrUpT false def + /CurrLowT false def /ret missed def /PN 1 def { @@ -864,7 +874,9 @@ tx@OptexpDict begin currentdict /relAngleUp known { relAngleUp } { 0 } ifelse connectInterfaces /relAngleUp ED } if - /CurrUp load /PrevUp ED + /PrevUp /CurrUp load def + /PrevUpT /CurrUpT load def + /PrevPath /CurrPath load def IfcNum CompName Mode n2 8 4 roll HandleInterface dup /ret ED missed eq { @@ -873,8 +885,13 @@ tx@OptexpDict begin } if ToVec /CurrVecUp ED ToVec /CurrUp ED + currentdict /isectT known currentdict /isectPath known and { + /CurrUpT isectT def + /CurrPath isectPath def + } if /n1 oldn1 def - /CurrLow load /PrevLow ED + /PrevLow /CurrLow load def + /PrevLowT /CurrLowT load def CurrLow CurrVecLow connectifc PrevCorrect PN 2 gt and PN 2 eq or and { CurrVecLow CurrPCenter PrevPCenter PrevMode @@ -894,6 +911,9 @@ tx@OptexpDict begin } ifelse ToVec /CurrVecLow ED ToVec /CurrLow ED + currentdict /isectT known { + /CurrLowT isectT def + } if /PrevR CurrR def PrevR type /realtype eq { /CurrCenter load /PrevCenter ED @@ -906,6 +926,11 @@ tx@OptexpDict begin /CurrR false def /CurrCenter false def } ifelse + IfcNum CompName isPathIfc not { + /CurrPath false def + /CurrLowT false def + /CurrUpT false def + } if PN 1 gt currentdict /fillBeam known and { draw { /DrawnSegm DrawnSegm 1 add def @@ -919,19 +944,27 @@ tx@OptexpDict begin CurrLow CurrR arct } ifelse } { - CurrLow lineto + IfcNum CompName isPathIfc { + CurrPath CurrUpT CurrLowT TraceInterfacePath + } { + CurrLow lineto + } ifelse } ifelse PrevLow lineto - PrevR type /booleantype eq not { - PrevCenter PrevLow PrevUp - 4 copy 3 -1 roll eq 3 1 roll eq and { - 6 {pop} repeat + PrevPath type /booleantype eq not { + PrevPath PrevLowT PrevUpT TraceInterfacePath + } { + PrevR type /booleantype eq not { + PrevCenter PrevLow PrevUp + 4 copy 3 -1 roll eq 3 1 roll eq and { + 6 {pop} repeat + } { + TangentCrosspoint + PrevUp PrevR arct + } ifelse } { - TangentCrosspoint - PrevUp PrevR arct + PrevUp lineto } ifelse - } { - PrevUp lineto } ifelse } if Mode refl eq draw and @@ -1096,9 +1129,12 @@ tx@OptexpDict begin /HandleInterface { (HandleInterface) DebugBegin /Yin ED /Xin ED /Y0 ED /X0 ED /n2 ED /mode ED + currentdict /isectT undef currentdict /isectPath undef 2 copy 2 copy LoadIfc % IfcNum name IfcNum name path dup type /arraytype eq { % is an path interface - 3 1 roll pop pop PathInterface % IfcNum name X0' Y0' Xout Yout status + dup /isectPath exch def + 3 1 roll pop pop PathInterface % IfcNum name t X0' Y0' Xout Yout status + dup missed eq not { 6 -1 roll /isectT exch def } if } { 6 -2 roll isCurvedIfc { CurvedInterface }{ PlainInterface } ifelse @@ -1555,9 +1591,10 @@ tx@OptexpDict begin aload pop Xin Yin Xin Yin 8 -2 roll exch % I.x I.y Xin Yin Xin Yin t [pathseg] + exch dup 9 1 roll exch % t I.x I.y Xin Yin Xin Yin t [pathseg] dup length 2 eq { % a line exch pop - aload pop aload pop 3 -1 roll aload pop VecSub % I.x I.y Xin Yin Xin Yin dXp dYp + aload pop aload pop 3 -1 roll aload pop VecSub % t I.x I.y Xin Yin Xin Yin dXp dYp } { exch dup cvi sub DeriveCurve } ifelse @@ -1574,6 +1611,7 @@ tx@OptexpDict begin PN 1 gt and { pop missed } if + % t X0' Y0' Xout Yout status } ifelse DebugEnd } bind def @@ -1890,13 +1928,12 @@ tx@OptexpDict begin tx@IntersectDict begin /IntersectLinePath { 3 dict begin - PreparePath + PreparePath dup length /n exch def 2 copy ElongateLine exch 3 -1 roll pop /isect [] def /t -1 def - /n -1 def { - /n n 1 add def + /n n 1 sub def 2 copy IntersectBeziers dup 5 1 roll LoadIntersectionPoints dup length 0 gt { |