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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
% Copyright (C) 1993 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 General Public License for full details.
%
% Everyone is granted permission to copy, modify and redistribute GNU
% Ghostscript, but only under the conditions described in the GNU General
% Public License. A copy of this license is supposed to have been given to
% you along with GNU Ghostscript so you can know your rights and
% responsibilities. It should be in a file named COPYING. Among other
% things, the copyright notice and this notice must be preserved on all
% copies.
%
% Aladdin Enterprises is not affiliated with the Free Software Foundation or
% the GNU Project. GNU Ghostscript, as distributed by Aladdin Enterprises,
% does not depend on any other GNU software.
% markpath.ps
% Mark the corners of a path, drawing it slowly if desired.
/Delay where { pop } { /Delay 0 def } ifelse
/setxy0
{ currentpoint /y0 exch def /x0 exch def
} def
/bip
{ epsx epsy idtransform /ey exch def /ex exch def
currentpoint ex 2 div ey 2 div rlineto currentpoint 0 ey neg rlineto
ex neg 0 rlineto 0 ey rlineto lineto lineto
stroke
} def
/dally
{ Delay { } repeat
Delay 0 ne { flushpage } if
} def
/movebip
{ /xs 2 index def /ys 1 index def
gsave newpath mpmx transform moveto setxy0 bip grestore
} def
/linebip
{ gsave newpath x0 y0 moveto mpmx transform lineto setxy0 bip dally grestore
} def
/curvebip
{ gsave newpath x0 y0 moveto 5 index 5 index mpmx transform lineto bip
2 copy mpmx transform moveto 3 index 3 index mpmx transform lineto bip
x0 y0 moveto
3 { mpmx transform 6 2 roll } repeat
curveto setxy0 bip dally grestore
} def
/closebip
{ xs ys linebip
} def
/markpath % <matrix> markpath -
{ /mpmx exch def
gsave initgraphics 9 dup dtransform grestore
/epsy exch def /epsx exch def
gsave 0 setlinewidth
{ movebip } { linebip } { curvebip } { closebip } pathforall
grestore
} def
|