1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
% Copyright (C) 1989, 1995 Aladdin Enterprises. All rights reserved.
%
% This file is part of GNU Ghostscript.
%
% GNU Ghostscript is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY. No author or distributor accepts responsibility to
% anyone for the consequences of using it or for whether it serves any
% particular purpose or works at all, unless he says so in writing. Refer
% to the GNU Ghostscript General Public License for full details.
%
% Redefine pathforall for tracing.
% Can't be used recursively.
/# {( )print} def
/-mat matrix def
/-imat matrix def
/-smat { //-mat currentmatrix pop //-imat setmatrix } bind def
/-rmat { //-mat setmatrix } bind def
/-pathforall /pathforall load def
/-p2 { ( ) print exch =only ( ) print =only } bind def
/-dp2 { 2 copy -p2 2 { exch 4096 mul dup cvi dup ( ) print =only sub dup 0 eq { pop } { (+) print =only } ifelse } repeat } bind def
/-tp2 { //-mat transform -p2 } bind def
/-dict 5 dict def
/pathforall
{ -dict begin
/-close exch def /-curve exch def /-line exch def /-move exch def
end -smat
{2 copy -dp2 ( moveto\t%)print
2 copy -tp2 (\n)print
flush -dict /-move get -rmat exec -smat}
{2 copy -dp2 ( lineto\t%)print
2 copy -tp2 (\n)print
flush -dict /-line get -rmat exec -smat}
{5 index 5 index -dp2 3 index 3 index -dp2 2 copy -dp2 ( curveto\t%)print
5 index 5 index -tp2 3 index 3 index -tp2 2 copy -tp2 (\n)print
flush -dict /-curve get -rmat exec -smat}
{(closepath\n)print flush -dict /-close get -rmat exec -smat}
-pathforall -rmat
}
def
% Just print the current path
/printpath
{ {pop pop} {pop pop} {pop pop pop pop pop pop} {} pathforall } def
|