diff options
author | Karl Berry <karl@freefriends.org> | 2012-08-17 22:44:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-08-17 22:44:46 +0000 |
commit | 949a40dc13f864beaec0654b15a8002760168143 (patch) | |
tree | 285f48ecea7c0508e0817d25c8cd5c7cffcd8f48 /Master/texmf-dist/dvips | |
parent | 86e565dc1ca79529f03d8a4a12af2f12936e357a (diff) |
pst-optexp (17aug12)
git-svn-id: svn://tug.org/texlive/trunk@27437 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/dvips')
-rw-r--r-- | Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro index e963906ac87..5ea7fb628ee 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: 3.2 (2012/07/26) +%% Version: 3.3 (2012/08/17) %% %% Copyright (C) 2007-2012 by Christoph Bersch <usenet@bersch.net> %% @@ -228,6 +228,7 @@ tx@OptexpDict begin 6 dict dup 3 1 roll def begin /ambiguous false def /allowbeaminside false def + /forcebeaminside false def /name ED /correct false def {0 0} exch 3 -1 roll exec @@ -289,6 +290,7 @@ tx@OptexpDict begin gsave 12 dict dup 3 1 roll def begin /name ED + /forcebeaminside ED /allowbeaminside ED /ambiguous ED dup type /booleantype eq not { false } if /correct ED @@ -519,13 +521,14 @@ tx@OptexpDict begin name GetRefIndex 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 % mode - draw ] cvx + IfcCntTmp IfcCnt eq { true }{ draw } ifelse + ] cvx name /outToPlane load GetNextPlane dup dup name isAmbiguousIfc exch 0 eq or not { [ exch name bgRefIndex trans draw ] cvx exch @@ -667,6 +670,9 @@ tx@OptexpDict begin /sign { 0 ge { 1 } { -1 } ifelse } bind def +/Chirality { + 4 -1 roll mul 3 1 roll mul sub sign +} bind def /TraceAndFillWideBeam { (TraceAndFillWideBeam) DebugBegin AngToVec /InvecLow ED /StartLow ED @@ -698,6 +704,13 @@ tx@OptexpDict begin currentdict /lastBeamPointTmpUp known and { /lastBeamPointTmpLow load /CurrLow ED /lastBeamPointTmpUp load /CurrUp ED + loadbeam not beamdiv 0 eq not and { + CurrVecLow CurrVecUp Chirality + CurrLow CurrUp @ABVect CurrVecLow CurrVecUp VecAdd Chirality 0 lt { neg } if + beamdiv sign eq not { + /CurrVecLow load /CurrVecUp load /CurrVecLow ED /CurrVecUp ED + } if + } if } { counttomark 2 ge { 2 copy /StartLow load TransformStartPos /CurrLow ED @@ -707,6 +720,8 @@ tx@OptexpDict begin /StartUp load /CurrUp ED } ifelse } ifelse + /PrevVecUp /CurrVecUp load def + /PrevVecLow /CurrVecLow load def counttomark /IfcCnt ED /n1 bgRefIndex def /CurrR false def @@ -730,7 +745,6 @@ tx@OptexpDict begin currentdict /relAngleUp known { relAngleUp } { 0 } ifelse connectInterfaces /relAngleUp ED } if - /CurrVecUp load /PrevVecUp ED /CurrUp load /PrevUp ED IfcNum CompName Mode n2 8 4 roll HandleInterface dup /ret ED @@ -741,7 +755,6 @@ tx@OptexpDict begin ToVec /CurrVecUp ED ToVec /CurrUp ED /n1 oldn1 def - /CurrVecLow load /PrevVecLow ED /CurrLow load /PrevLow ED CurrLow CurrVecLow connectifc PrevCorrect PN 2 gt and PN 2 eq or and { @@ -828,6 +841,8 @@ tx@OptexpDict begin exit } if /PN PN 1 add def + /PrevVecUp /CurrVecUp load def + /PrevVecLow /CurrVecLow load def /PrevPCenter /CurrPCenter load def /PrevMode Mode def CompName cvn load /correct get /PrevCorrect ED @@ -840,9 +855,12 @@ tx@OptexpDict begin currentdict /lastVecTmpUp known currentdict /lastVecTmpLow known and dup { /lastVecTmpUp load /lastVecTmpLow load 3 -1 roll } if - CurrUp CurrLow @ABVect - CurrVecUp CurrVecLow 3 -1 roll add 3 1 roll add exch - 4 -1 roll mul 3 1 roll mul sub 1e-7 gt { + CurrLow CurrUp @ABVect % from Low to Up + PrevVecUp PrevVecLow VecAdd + 2 copy 6 2 roll + Chirality 0 lt + 3 1 roll 2 copy pop -1e-5 lt + 3 1 roll exch 1e-5 lt exch 0 lt and or xor { /lastBeamPointTmpUp /CurrLow load def /lastBeamPointTmpLow /CurrUp load def /lastVecTmpUp /CurrVecLow load def @@ -1025,7 +1043,12 @@ tx@OptexpDict begin beaminside } ifelse } ifelse - exch load dup dup /allowbeaminside get 4 -1 roll and + exch load dup dup + /forcebeaminside get { + 3 -1 roll pop true + } { + dup /allowbeaminside get 4 -1 roll and + } ifelse /drawinside ED /ambiguous get { /name get drawinside [ 3 1 roll ] |