home *** CD-ROM | disk | FTP | other *** search
/ Boot Disc 12 / boot-disc-1997-08.iso / ILSTRATR / ARCHIVE.Z / ProcSets.aip / TEXT / 1015 < prev    next >
Text File  |  1997-05-07  |  14KB  |  855 lines

  1. %%BeginResource: procset Adobe_pattern_AI5 1.1 0
  2. %%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
  3. %%Version: 1.1 0
  4. %%CreationDate: (03/26/93) ()
  5. %%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
  6. currentpacking true setpacking
  7. userdict /Adobe_Illustrator_AI5 known not {
  8.     userdict /Adobe_Illustrator_AI5 95 dict put
  9. } if
  10. userdict /Adobe_Illustrator_AI5 get begin
  11. /@
  12. {
  13. } def
  14. /&
  15. {
  16. } def
  17. /dp
  18. {
  19.     dup null eq
  20.     {
  21.         pop
  22.         _dp 0 ne
  23.         {
  24.             0 1 _dp 1 sub _dl mod
  25.             {
  26.                 _da exch get 3 get
  27.             } for
  28.             _dp 1 sub _dl mod 1 add packedarray
  29.             _da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
  30.             definepattern pop
  31.         } if
  32.     }
  33.     {
  34.         _dp 0 ne _dp _dl mod 0 eq and
  35.         {
  36.             null dp
  37.         } if
  38.         7 packedarray _da exch _dp _dl mod exch put
  39.         _dp _dl mod _da 0 get 4 get 2 packedarray
  40.         /_dp _dp 1 add def
  41.     } ifelse
  42. } def
  43. /E
  44. {
  45.     _ed begin
  46.     dup 0 get type /arraytype ne
  47.     {
  48.         0
  49.         {
  50.             dup 1 add index type /arraytype eq
  51.             {
  52.                 1 add
  53.             }
  54.             {
  55.                 exit
  56.             } ifelse
  57.         } loop
  58.         array astore
  59.     } if
  60.     /_dd exch def
  61.     /_ury exch def
  62.     /_urx exch def
  63.     /_lly exch def
  64.     /_llx exch def
  65.     /_n exch def
  66.     /_y 0 def
  67.     /_dl 4 def
  68.     /_dp 0 def
  69.     /_da _dl array def
  70.     0 1 _dd length 1 sub
  71.     {
  72.         /_d exch _dd exch get def
  73.         0 2 _d length 2 sub
  74.         {
  75.             /_x exch def
  76.             /_c _d _x get _ ne def
  77.             /_r _d _x 1 add get cvlit def
  78.             _r _ ne
  79.             {
  80.                 _urx _llx sub _ury _lly sub
  81.                 [
  82.                 1 0 0 1 0 0
  83.                 ]
  84.                 [
  85.                 /save cvx
  86.                 _llx neg _lly neg /translate cvx
  87.                 _c
  88.                 {
  89.                     nc /begin cvx
  90.                 } if
  91.                 _r dup type /stringtype eq
  92.                 {
  93.                     cvx
  94.                 }
  95.                 {
  96.                     {
  97.                         exec
  98.                     } /forall cvx
  99.                 } ifelse
  100.                 _c
  101.                 {
  102.                     /end cvx
  103.                 } if
  104.                 /restore cvx
  105.                 ] cvx
  106.                 /_fn 12 _n length add string def
  107.                 _y _fn cvs pop
  108.                 /_y _y 1 add def
  109.                 _fn 12 _n putinterval
  110.                 _fn _c false dp
  111.                 _d exch _x 1 add exch put
  112.             } if
  113.         } for
  114.     } for
  115.     null dp
  116.     _n _dd /_pd
  117.  end
  118.     xput
  119. } def
  120. /fc
  121. {
  122.     _fm dup concatmatrix pop
  123. } def
  124. /p
  125. {
  126.     /_fm exch ddef
  127.     9 -2 roll _pm translate fc
  128.     7 -2 roll _pm scale fc
  129.     5 -1 roll _pm rotate fc
  130.     4 -2 roll exch 0 ne
  131.     {
  132.         dup _pm rotate fc
  133.         1 -1 _pm scale fc
  134.         neg _pm rotate fc
  135.     }
  136.     {
  137.         pop
  138.     } ifelse
  139.     dup _pm rotate fc
  140.     exch dup sin exch cos div 1 0 0 1 0 6 2 roll
  141.     _pm astore fc
  142.     neg _pm rotate fc
  143.     _pd exch get /_fdd exch ddef
  144.     /_pf
  145.     {
  146.         save
  147.         /_doClip 0 ddef
  148.         0 1 _fdd length 1 sub
  149.         {
  150.             /_fd exch _fdd exch get ddef
  151.             _fd
  152.             0 2 _fd length 2 sub
  153.             {
  154.                 gsave
  155.                 2 copy get dup _ ne
  156.                 {
  157.                     cvx exec _fc
  158.                 }
  159.                 {
  160.                     pop
  161.                 } ifelse
  162.                 2 copy 1 add get dup _ ne
  163.                 {
  164.                     aload pop findfont _fm
  165.                     patternfill
  166.                 }
  167.                 {
  168.                     pop
  169.                     fill
  170.                 } ifelse
  171.                 grestore
  172.                 pop
  173.             } for
  174.             pop
  175.         } for
  176.         restore
  177.         newpath
  178.     } ddef
  179.     /_psf
  180.     {
  181.         save
  182.         /_doClip 0 ddef
  183.         0 1 _fdd length 1 sub
  184.         {
  185.             /_fd exch _fdd exch get ddef
  186.             _fd
  187.             0 2 _fd length 2 sub
  188.             {
  189.                 gsave
  190.                 2 copy get dup _ ne
  191.                 {
  192.                     cvx exec _fc
  193.                 }
  194.                 {
  195.                     pop
  196.                 } ifelse
  197.                 2 copy 1 add get dup _ ne
  198.                 {
  199.                     aload pop findfont _fm
  200.                     9 copy 6 npop patternashow
  201.                 }
  202.                 {
  203.                     pop
  204.                     6 copy 3 npop hvashow
  205.                 } ifelse
  206.                 grestore
  207.                 pop
  208.             } for
  209.             pop
  210.         } for
  211.         restore
  212.         sw rmoveto
  213.     } ddef
  214.     /_pjsf
  215.     {
  216.         save
  217.         /_doClip 0 ddef
  218.         0 1 _fdd length 1 sub
  219.         {
  220.             /_fd exch _fdd exch get ddef
  221.             _fd
  222.             0 2 _fd length 2 sub
  223.             {
  224.                 gsave
  225.                 2 copy get dup _ ne
  226.                 {
  227.                     cvx exec _fc
  228.                 }
  229.                 {
  230.                     pop
  231.                 } ifelse
  232.                 2 copy 1 add get dup _ ne
  233.                 {
  234.                     aload pop findfont _fm
  235.                     12 copy 6 npop patternawidthshow
  236.                 }
  237.                 {
  238.                     pop 9 copy 3 npop hvawidthshow
  239.                 } ifelse
  240.                 grestore
  241.                 pop
  242.             } for
  243.             pop
  244.         } for
  245.         restore
  246.         swj rmoveto
  247.     } ddef
  248.     /_lp /none ddef
  249. } def
  250. /sc
  251. {
  252.     _sm dup concatmatrix pop
  253. } def
  254. /P
  255. {
  256.     /_sm exch ddef
  257.     9 -2 roll _pm translate sc
  258.     7 -2 roll _pm scale sc
  259.     5 -1 roll _pm rotate sc
  260.     4 -2 roll exch 0 ne
  261.     {
  262.         dup _pm rotate sc
  263.         1 -1 _pm scale sc
  264.         neg _pm rotate sc
  265.     }
  266.     {
  267.         pop
  268.     } ifelse
  269.     dup _pm rotate sc
  270.     exch dup sin exch cos div 1 0 0 1 0 6 2 roll
  271.     _pm astore sc
  272.     neg _pm rotate sc
  273.     _pd exch get /_sdd exch ddef
  274.     /_ps
  275.     {
  276.         save
  277.         /_doClip 0 ddef
  278.         0 1 _sdd length 1 sub
  279.         {
  280.             /_sd exch _sdd exch get ddef
  281.             _sd
  282.             0 2 _sd length 2 sub
  283.             {
  284.                 gsave
  285.                 2 copy get dup _ ne
  286.                 {
  287.                     cvx exec _sc
  288.                 }
  289.                 {
  290.                     pop
  291.                 } ifelse
  292.                 2 copy 1 add get dup _ ne
  293.                 {
  294.                     aload pop findfont _sm
  295.                     patternstroke
  296.                 }
  297.                 {
  298.                     pop stroke
  299.                 } ifelse
  300.                 grestore
  301.                 pop
  302.             } for
  303.             pop
  304.         } for
  305.         restore
  306.         newpath
  307.     } ddef
  308.     /_pss
  309.     {
  310.         save
  311.         /_doClip 0 ddef
  312.         0 1 _sdd length 1 sub
  313.         {
  314.             /_sd exch _sdd exch get ddef
  315.             _sd
  316.             0 2 _sd length 2 sub
  317.             {
  318.                 gsave
  319.                 2 copy get dup _ ne
  320.                 {
  321.                     cvx exec _sc
  322.                 }
  323.                 {
  324.                     pop
  325.                 } ifelse
  326.                 2 copy 1 add get dup _ ne
  327.                 {
  328.                     aload pop findfont _sm
  329.                     10 copy 6 npop patternashowstroke
  330.                 }
  331.                 {
  332.                     pop 7 copy 3 npop ss
  333.                 } ifelse
  334.                 grestore
  335.                 pop
  336.             } for
  337.             pop
  338.         } for
  339.         restore
  340.         pop sw rmoveto
  341.     } ddef
  342.     /_pjss
  343.     {
  344.         save
  345.         /_doClip 0 ddef
  346.         0 1 _sdd length 1 sub
  347.         {
  348.             /_sd exch _sdd exch get ddef
  349.             _sd
  350.             0 2 _sd length 2 sub
  351.             {
  352.                 gsave
  353.                 2 copy get dup _ ne
  354.                 {
  355.                     cvx exec _sc
  356.                 }
  357.                 {
  358.                     pop
  359.                 } ifelse
  360.                 2 copy 1 add get dup _ ne
  361.                 {
  362.                     aload pop findfont _sm
  363.                     13 copy 6 npop patternawidthshowstroke
  364.                 }
  365.                 {
  366.                     pop 10 copy 3 npop jss
  367.                 } ifelse
  368.                 grestore
  369.                 pop
  370.             } for
  371.             pop
  372.         } for
  373.         restore
  374.         pop swj rmoveto
  375.     } ddef
  376.     /_lp /none ddef
  377. } def
  378. end
  379. userdict /Adobe_pattern_AI5 18 dict dup begin
  380. put
  381. /initialize
  382. {
  383.     /definepattern where
  384.     {
  385.         pop
  386.     }
  387.     {
  388.      begin
  389.      begin
  390.         Adobe_pattern_AI5 begin
  391.         Adobe_pattern_AI5
  392.         {
  393.             dup xcheck
  394.             {
  395.                 bind
  396.             } if
  397.             pop pop
  398.         } forall
  399.         mark
  400.         cachestatus 7 1 roll pop pop pop pop exch pop exch
  401.         {
  402.             {
  403.                 10000 add
  404.                 dup 2 index gt
  405.                 {
  406.                     exit
  407.                 } if
  408.                 dup setcachelimit
  409.             } loop
  410.         } stopped
  411.         cleartomark
  412.      end     
  413.         
  414.      end
  415.      end
  416.         
  417.         Adobe_pattern_AI5 begin
  418.     } ifelse
  419. } def
  420. /terminate
  421. {
  422.     currentdict Adobe_pattern_AI5 eq
  423.     {
  424.      end
  425.     } if
  426. } def
  427. errordict
  428. /nocurrentpoint
  429. {
  430.     pop
  431.     stop
  432. } put
  433. errordict
  434. /invalidaccess
  435. {
  436.     pop
  437.     stop
  438. } put
  439. /patternencoding
  440. 256 array def
  441. 0 1 255
  442. {
  443.     patternencoding exch ( ) 2 copy exch 0 exch put cvn put
  444. } for
  445. /definepattern
  446. {
  447.     17 dict begin
  448.     /uniform exch def
  449.     /cache exch def
  450.     /key exch def
  451.     /procarray exch def
  452.     /mtx exch matrix invertmatrix def
  453.     /height exch def
  454.     /width exch def
  455.     /ctm matrix currentmatrix def
  456.     /ptm matrix def
  457.     /str 32 string def
  458.     /slice 9 dict def
  459.     slice /s 1 put
  460.     slice /q 256 procarray length div sqrt floor cvi put
  461.     slice /b 0 put
  462.     /FontBBox
  463.     [
  464.     0 0 0 0
  465.     ] def
  466.     /FontMatrix mtx matrix copy def
  467.     /Encoding patternencoding def
  468.     /FontType 3 def
  469.     /BuildChar
  470.     {
  471.         exch
  472.      begin
  473.         /setstrokeadjust where {pop true setstrokeadjust} if
  474.         slice begin
  475.         dup q dup mul mod s idiv /i exch def
  476.         dup q dup mul mod s mod /j exch def
  477.         q dup mul idiv procarray exch get
  478.         /xl j width s div mul def
  479.         /xg j 1 add width s div mul def
  480.         /yl i height s div mul def
  481.         /yg i 1 add height s div mul def
  482.         uniform
  483.         {
  484.             1 1
  485.         }
  486.         {
  487.             width 0 dtransform
  488.             dup mul exch dup mul add sqrt dup 1 add exch div
  489.             0 height dtransform
  490.             dup mul exch dup mul add sqrt dup 1 add exch div
  491.         } ifelse
  492.         width 0 cache
  493.         {
  494.             xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
  495.             setcachedevice
  496.         }
  497.         {
  498.             setcharwidth
  499.         } ifelse
  500.         gsave
  501.         scale
  502.         newpath
  503.         xl yl moveto
  504.         xg yl lineto
  505.         xg yg lineto
  506.         xl yg lineto
  507.         closepath
  508.         clip
  509.         newpath
  510.      end
  511.      end
  512.         exec
  513.         grestore
  514.     } def
  515.     key currentdict definefont
  516.  end
  517. } def
  518. /patterncachesize
  519. {
  520.     gsave
  521.     newpath
  522.     0 0 moveto
  523.     width 0 lineto
  524.     width height lineto
  525.     0 height lineto
  526.     closepath
  527.     patternmatrix setmatrix
  528.     pathbbox
  529.     exch ceiling 4 -1 roll floor sub 3 1 roll
  530.     ceiling exch floor sub
  531.     mul 1 add
  532.     grestore
  533. } def
  534. /patterncachelimit
  535. {
  536.     cachestatus 7 1 roll 6 npop 8 mul
  537. } def
  538. /patternpath
  539. {
  540.     exch dup begin
  541.     setfont
  542.     ctm setmatrix
  543.     concat
  544.     slice exch /b exch slice /q get dup mul mul put
  545.     FontMatrix concat
  546.     uniform
  547.     {
  548.         width 0 dtransform round width div exch round width div exch
  549.         0 height dtransform round height div exch height div exch
  550.         0 0 transform round exch round exch
  551.         ptm astore setmatrix
  552.     }
  553.     {
  554.         ptm currentmatrix pop
  555.     } ifelse
  556.     {
  557.         currentpoint
  558.     } stopped not
  559.     {
  560.         2 npop
  561.         pathbbox
  562.         true
  563.         4 index 3 index eq
  564.         4 index 3 index eq
  565.         and
  566.         {
  567.             pop false
  568.             {
  569.                 {
  570.                     2 npop
  571.                 }
  572.                 {
  573.                     3 npop true
  574.                 }
  575.                 {
  576.                     7 npop true
  577.                 }
  578.                 {
  579.                     pop true
  580.                 } pathforall
  581.             } stopped
  582.             {
  583.                 5 npop true
  584.             } if
  585.         } if
  586.         {
  587.             height div ceiling height mul 4 1 roll
  588.             width div ceiling width mul 4 1 roll
  589.             height div floor height mul 4 1 roll
  590.             width div floor width mul 4 1 roll
  591.             2 index sub height div ceiling cvi exch
  592.             3 index sub width div ceiling cvi exch
  593.             4 2 roll moveto
  594.             FontMatrix mtx invertmatrix
  595.             dup dup 4 get exch 5 get rmoveto
  596.             ptm ptm concatmatrix pop
  597.             slice /s
  598.             patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
  599.             dup slice /q get gt
  600.             {
  601.                 pop slice /q get
  602.             } if
  603.             put
  604.             0 1 slice /s get dup mul 1 sub
  605.             {
  606.                 slice /b get add
  607.                 gsave
  608.                 0 1 str length 1 sub
  609.                 {
  610.                     str exch 2 index put
  611.                 } for
  612.                 pop
  613.                 dup
  614.                 {
  615.                     gsave
  616.                     ptm setmatrix
  617.                     1 index str length idiv
  618.                     {
  619.                         str show
  620.                     } repeat
  621.                     1 index str length mod str exch 0 exch getinterval show
  622.                     grestore
  623.                     0 height rmoveto
  624.                 } repeat
  625.                 grestore
  626.             } for
  627.             2 npop
  628.         }
  629.         {
  630.             4 npop
  631.         } ifelse
  632.     } if
  633.  end
  634. } def
  635. /patternclip
  636. {
  637.     _eo {eoclip} {clip} ifelse
  638. } def
  639. /patternstrokepath
  640. {
  641.     strokepath
  642. } def
  643. /patternmatrix
  644. matrix def
  645. /patternfill
  646. {
  647.     dup type /dicttype eq
  648.     {
  649.         Adobe_pattern_AI5 /patternmatrix get
  650.     } if
  651.     gsave
  652.     patternclip
  653.     Adobe_pattern_AI5 /patternpath get exec
  654.     grestore
  655.     newpath
  656. } def
  657. /patternstroke
  658. {
  659.     dup type /dicttype eq
  660.     {
  661.         Adobe_pattern_AI5 /patternmatrix get
  662.     } if
  663.     gsave
  664.     patternstrokepath
  665.     true
  666.     {
  667.         {
  668.             {
  669.                 newpath
  670.                 moveto
  671.             }
  672.             {
  673.                 lineto
  674.             }
  675.             {
  676.                 curveto
  677.             }
  678.             {
  679.                 closepath
  680.                 3 copy
  681.                 Adobe_pattern_AI5 /patternfill get exec
  682.             } pathforall
  683.             3 npop
  684.         } stopped
  685.         {
  686.             5 npop
  687.             patternclip
  688.             Adobe_pattern_AI5 /patternfill get exec
  689.         } if
  690.     }
  691.     {
  692.         patternclip
  693.         Adobe_pattern_AI5 /patternfill get exec
  694.     } ifelse
  695.     grestore
  696.     newpath
  697. } def
  698. /vpatternawidthshow
  699. {
  700.     6 1 roll
  701.     /_hvay exch ddef
  702.     /_hvax exch ddef
  703.     /_hvwb exch ddef
  704.     /_hvcy exch ddef
  705.     /_hvcx exch ddef
  706.     
  707.     {
  708.         dup cstring
  709.         dup length 1 eq
  710.         _charorientation 1 eq
  711.         and
  712.         {
  713.             -90 rotate
  714.             currentpoint
  715.             _fontRotateAdjust add
  716.             moveto
  717.             gsave
  718.             false charpath currentpoint
  719.             5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
  720.             grestore
  721.             _fontRotateAdjust sub
  722.             moveto
  723.             _hvwb eq { _hvcx _hvcy rmoveto } if
  724.             _hvax _hvay rmoveto
  725.             90 rotate
  726.         }
  727.         {
  728.             currentpoint
  729.             _fontHeight sub
  730.             _hvax sub
  731.             3 index _hvwb eq { _hvcx sub } if
  732.             currentpoint
  733.             exch 4 index stringwidth pop 2 div sub
  734.             exch _fontAscent sub
  735.             moveto
  736.             gsave
  737.             2 index false charpath
  738.             6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
  739.             grestore
  740.             newpath moveto pop pop
  741.         } ifelse
  742.     } cforall
  743.     3 npop
  744. } def
  745. /hpatternawidthshow
  746. {
  747.     {
  748.         dup cstring exch
  749.         gsave
  750.         3 index eq { 5 index 5 index rmoveto } if
  751.         false charpath currentpoint
  752.         9 index 9 index 9 index
  753.         Adobe_pattern_AI5 /patternfill get exec
  754.         grestore
  755.         newpath moveto
  756.         2 copy rmoveto
  757.     } cforall
  758.     8 npop
  759. } def
  760. /patternashow
  761. {
  762. 0 0 0 6 3 roll
  763. patternawidthshow
  764. } def
  765. /patternawidthshow
  766. {
  767.     6 index type /dicttype eq
  768.     {
  769.         Adobe_pattern_AI5 /patternmatrix get 7 1 roll
  770.     } if
  771.     _lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
  772. } def
  773. /vpatternawidthshowstroke
  774. {
  775.     7 1 roll
  776.     6 1 roll
  777.     /_hvay exch ddef
  778.     /_hvax exch ddef
  779.     /_hvwb exch ddef
  780.     /_hvcy exch ddef
  781.     /_hvcx exch ddef
  782.     {
  783.         dup cstring
  784.         dup length 1 eq
  785.         _charorientation 1 eq
  786.         and
  787.         {
  788.             -90 rotate
  789.             currentpoint
  790.             _fontRotateAdjust add
  791.             moveto
  792.             gsave
  793.             false charpath currentpoint
  794.             3 index setmatrix
  795.             6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
  796.             grestore
  797.             _fontRotateAdjust sub
  798.             moveto
  799.             _hvwb eq { _hvcx _hvcy rmoveto } if
  800.             _hvax _hvay rmoveto
  801.             90 rotate
  802.         }
  803.         {
  804.             currentpoint
  805.             _fontHeight sub
  806.             _hvax sub
  807.             3 index _hvwb eq { _hvcx sub } if
  808.             currentpoint
  809.             exch 4 index stringwidth pop 2 div sub
  810.             exch _fontAscent sub
  811.             moveto
  812.             gsave
  813.             2 index false charpath
  814.             4 index setmatrix
  815.             7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
  816.             grestore
  817.             newpath moveto pop pop
  818.         } ifelse
  819.     } cforall
  820.     4 npop
  821. } def
  822. /hpatternawidthshowstroke
  823. {
  824.     7 1 roll
  825.     {
  826.         dup cstring exch
  827.         gsave
  828.         3 index eq { 5 index 5 index rmoveto } if
  829.         false charpath currentpoint
  830.         7 index setmatrix
  831.         10 index 10 index 10 index
  832.         Adobe_pattern_AI5 /patternstroke get exec
  833.         grestore
  834.         newpath moveto
  835.         2 copy rmoveto
  836.     } cforall
  837.     9 npop
  838. } def
  839. /patternashowstroke
  840. {
  841.     0 0 0 7 3 roll
  842.     patternawidthshowstroke
  843. } def
  844. /patternawidthshowstroke
  845. {
  846.     7 index type /dicttype eq
  847.     {
  848.         patternmatrix /patternmatrix get 8 1 roll
  849.     } if
  850.     _lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
  851. } def
  852. end
  853. setpacking
  854. %%EndResource
  855.