annotate toolboxes/graph_visualisation/lib/lefty/lefty.psp @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
rev   line source
wolffd@0 1 /BOX {
wolffd@0 2 /boxy1 exch def /boxx1 exch def /boxy0 exch def /boxx0 exch def
wolffd@0 3 boxx0 boxy0 moveto boxx1 boxy0 lineto
wolffd@0 4 boxx1 boxy1 lineto boxx0 boxy1 lineto
wolffd@0 5 closepath
wolffd@0 6 } def
wolffd@0 7 /SCP { stroke initclip newpath BOX clip newpath } def
wolffd@0 8 /CL { stroke setrgbcolor } def
wolffd@0 9 /DO { stroke } def
wolffd@0 10 /NP { newpath } def
wolffd@0 11 /FI { fill } def
wolffd@0 12 /LI { moveto lineto } def
wolffd@0 13 /CT { curveto } def
wolffd@0 14 /AR {
wolffd@0 15 /ang2 exch def /ang1 exch def
wolffd@0 16 /radius exch def /y2x exch def /cy exch def /cx exch def
wolffd@0 17 gsave
wolffd@0 18 cx cy translate 1 y2x scale 0 0 radius ang1 ang2 arc stroke
wolffd@0 19 grestore
wolffd@0 20 } def
wolffd@0 21 /ARF {
wolffd@0 22 /ang2 exch def /ang1 exch def
wolffd@0 23 /radius exch def /y2x exch def /cy exch def /cx exch def
wolffd@0 24 gsave
wolffd@0 25 cx cy translate 1 y2x scale 0 0 radius ang1 ang2 arc fill
wolffd@0 26 grestore
wolffd@0 27 } def
wolffd@0 28 /TXT {
wolffd@0 29 /texth exch def
wolffd@0 30 /textf exch def
wolffd@0 31 /textn exch def
wolffd@0 32 /texts exch def
wolffd@0 33 /textyj exch def /texty exch def
wolffd@0 34 /textxj exch def /textx exch def
wolffd@0 35 textf findfont texth scalefont dup setfont
wolffd@0 36 /FontBBox get 1 get 1000 div texth mul /textbl exch def
wolffd@0 37 /textth texth textn mul def /texttw 0 def
wolffd@0 38 0 1 textn 1 sub {
wolffd@0 39 texts exch get 0 get stringwidth pop
wolffd@0 40 dup texttw gt { /texttw exch def } { pop } ifelse
wolffd@0 41 } for
wolffd@0 42 textyj (b) eq { /ty texty textth add textbl add def } if
wolffd@0 43 textyj (d) eq { /ty texty textth add def } if
wolffd@0 44 textyj (c) eq { /ty texty textth 2 div add def } if
wolffd@0 45 textyj (u) eq { /ty texty def } if
wolffd@0 46 /ty ty textbl sub def
wolffd@0 47 textxj (l) eq { /tx textx def } if
wolffd@0 48 textxj (c) eq { /tx textx texttw 2 div sub def } if
wolffd@0 49 textxj (r) eq { /tx textx texttw sub def } if
wolffd@0 50 0 1 textn 1 sub {
wolffd@0 51 /ty ty texth sub def
wolffd@0 52 texts exch get dup 0 get /ts exch def 1 get /tj exch def
wolffd@0 53 tj (l) eq { tx ty moveto ts show } if
wolffd@0 54 tj (n) eq {
wolffd@0 55 tx texttw ts stringwidth pop sub 2 div add ty moveto ts show
wolffd@0 56 } if
wolffd@0 57 tj (r) eq {
wolffd@0 58 tx texttw ts stringwidth pop sub add ty moveto ts show
wolffd@0 59 } if
wolffd@0 60 } for
wolffd@0 61 } def
wolffd@0 62
wolffd@0 63 /colorimage where {
wolffd@0 64 pop
wolffd@0 65 } {
wolffd@0 66 /bwproc {
wolffd@0 67 rgbproc dup length 3 idiv string 0 3 0 5 -1 roll {
wolffd@0 68 add 2 1 roll 1 sub dup 0 eq {
wolffd@0 69 pop 3 idiv 3 -1 roll dup 4 -1 roll
wolffd@0 70 dup 3 1 roll 5 -1 roll put 1 add 3 0
wolffd@0 71 } {
wolffd@0 72 2 1 roll
wolffd@0 73 } ifelse
wolffd@0 74 } forall
wolffd@0 75 pop pop pop
wolffd@0 76 } def
wolffd@0 77 /colorimage {
wolffd@0 78 pop pop /rgbproc exch def {bwproc} image
wolffd@0 79 } bind def
wolffd@0 80 } ifelse