From e68a3f22ee4908ca10db5b2471d0ab7da2d81532 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 4 Feb 2013 23:10:24 +0000 Subject: pst-optexp (4feb13) git-svn-id: svn://tug.org/texlive/trunk@29028 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro | 101 +++++++++++++++------- 1 file changed, 72 insertions(+), 29 deletions(-) (limited to 'Master/texmf-dist/dvips') diff --git a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro index 89ba5598d3b..7394171f9bb 100644 --- a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro +++ b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro @@ -9,9 +9,9 @@ %% This is a generated file. %% %% Project: pst-optexp -%% Version: 3.3a (2012/09/18) +%% Version: 3.4alpha (2013/02/03) %% -%% Copyright (C) 2007-2012 by Christoph Bersch +%% Copyright (C) 2007-2013 by Christoph Bersch %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -85,7 +85,16 @@ tx@OptexpDict begin dup length string cvs } bind def /PrintWarning { - (Warning: ) exch strcat == + (Warning pst-optexp: ) exch strcat == +} bind def +/CompUnknownWarning { + (Component ') exch strcat (' unknown) strcat PrintWarning +} bind def +/OneFiberCompWarning { + (Found only one fiber component in beam path, drawing no beam) PrintWarning +} bind def +/FiberCompWarning { + (Found a fiber component in beam path, stopping beam path) PrintWarning } bind def /inttostr { dup type /integertype eq { @@ -588,7 +597,7 @@ tx@OptexpDict begin currentdict /lastVecTmp known { lastVecTmp beamangle matrix rotate dtransform ToVec } { - beamalign relative eq counttomark 2 ge and { + counttomark 2 ge beamalign relative eq and { 2 copy /InVec load TransformInVec } { /InVec load @@ -942,42 +951,75 @@ tx@OptexpDict begin } bind def /isFreeray { cvn load /n known - dup not { - (Encountered fiber component in beam path) Warning - } if +} bind def +/compIsKnown { + dup type /stringtype eq { cvn } if + tx@OptexpDict exch known } bind def /PrearrangePlanes { (PrearrangePlanes) DebugBegin - counttomark /N ED - /CompA ED dup /CompB ED - CompA isFreeray { - CompA isAmbiguous { - amb dup CompA - } { - CompB isAmbiguous { - 1 CompA GetIfcCenter (C) CompB GetIfcCenter @ABDist - (N) CompA GetIfcCenter (C) CompB GetIfcCenter @ABDist - } { - 1 CompA GetIfcCenter - 1 CompB GetIfcCenter - (N) CompB GetIfcCenter - true OrderNodes exch pop - (N) CompA GetIfcCenter - 1 CompB GetIfcCenter - (N) CompB GetIfcCenter - true OrderNodes exch pop + counttomark dup 2 lt { + dup 0 eq { + (Found no component on stack, drawing no beam) PrintWarning + }{ + exch dup + compIsKnown { + dup isFreeray { + asc exch 3 -1 roll + }{ + OneFiberCompWarning + pop + } ifelse + }{ + CompUnknownWarning } ifelse - le { desc } { asc } ifelse dup CompA } ifelse - counttomark 2 roll - } { - counttomark 1 sub { pop } repeat /N 0 def + }{ + /N ED + /CompA ED dup /CompB ED + CompA compIsKnown CompB compIsKnown and { + CompA isFreeray { + CompA isAmbiguous { + amb dup CompA + } { + CompB isAmbiguous { + 1 CompA GetIfcCenter (C) CompB GetIfcCenter @ABDist + (N) CompA GetIfcCenter (C) CompB GetIfcCenter @ABDist + } { + 1 CompA GetIfcCenter + 1 CompB GetIfcCenter + (N) CompB GetIfcCenter + true OrderNodes exch pop + (N) CompA GetIfcCenter + 1 CompB GetIfcCenter + (N) CompB GetIfcCenter + true OrderNodes exch pop + } ifelse + le { desc } { asc } ifelse dup CompA + } ifelse + counttomark 2 roll + }{ + FiberCompWarning + counttomark 1 sub { pop } repeat + /N 0 def + } ifelse + }{ + /N 0 def + CompA compIsKnown not {CompA}{CompB} ifelse + CompUnknownWarning + } ifelse } ifelse 2 1 N { /i ED exch /CompB ED + CompB compIsKnown not { + counttomark i 1 sub 2 mul 1 add sub { pop } repeat + CompB CompUnknownWarning + exit + } if CompB isFreeray not { counttomark i 1 sub 2 mul 1 add sub { pop } repeat + FiberCompWarning exit } if CompB isAmbiguous not { @@ -1100,6 +1142,7 @@ tx@OptexpDict begin } ifelse } for DebugEnd + counttomark 1 eq { pop } if } bind def /IfcName { dup dup 1 eq not exch N eq and { -- cgit v1.2.3