File: ppath.ps

package info (click to toggle)
gs 6.53-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 27,752 kB
  • ctags: 36,025
  • sloc: ansic: 255,138; sh: 6,990; cpp: 4,576; tcl: 1,814; asm: 968; lisp: 405; python: 405; makefile: 244; perl: 207; awk: 66
file content (57 lines) | stat: -rw-r--r-- 2,212 bytes parent folder | download
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
%    Copyright (C) 1989, 1995, 1997 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.

% $RCSfile: ppath.ps,v $ $Revision: 1.2.2.1 $
% 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 itransform -p2 } bind def
/-dict 5 dict def

/pathforall
 { -dict begin
   /-close exch def  /-curve exch def  /-line exch def  /-move exch def
   end -smat -mat ==only ( setmatrix) =
   {2 copy -tp2 ( moveto\t%)print
    2 copy -dp2 (\n)print
    flush -dict /-move get -rmat exec -smat}
   {2 copy -tp2 ( lineto\t%)print
    2 copy -dp2 (\n)print
    flush -dict /-line get -rmat exec -smat}
   {5 index 5 index -tp2 3 index 3 index -tp2 2 copy -tp2 ( curveto\t%)print
    5 index 5 index -dp2 3 index 3 index -dp2 2 copy -dp2 (\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