summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/dvips/pst-optexp
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-02-04 23:10:24 +0000
committerKarl Berry <karl@freefriends.org>2013-02-04 23:10:24 +0000
commite68a3f22ee4908ca10db5b2471d0ab7da2d81532 (patch)
tree71f08854d4130c03aaa282f94944b2094c8ec109 /Master/texmf-dist/dvips/pst-optexp
parent5fbc50afb4d5eadd56e9f5825572e7e5a9b4b253 (diff)
pst-optexp (4feb13)
git-svn-id: svn://tug.org/texlive/trunk@29028 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.pro101
1 files changed, 72 insertions, 29 deletions
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 <usenet@bersch.net>
+%% Copyright (C) 2007-2013 by Christoph Bersch <usenet@bersch.net>
%%
%% 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 {