home *** CD-ROM | disk | FTP | other *** search
/ VRML Tools for 3D Cyberspace / VRML_Tools_For_3D_Cyberspace.iso / t_space2 / set59 < prev    next >
Text File  |  1996-07-01  |  7KB  |  419 lines

  1. %%BeginResource: procset Adobe_pattern_AI5 1.1 0
  2. %%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
  3. %%Version: 1.1 
  4. %%CreationDate: (03/26/93) ()
  5. %%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved)
  6. currentpacking true setpacking
  7. userdict /Adobe_pattern_AI5 16 dict dup begin
  8. put
  9. /initialize
  10. {
  11.     /definepattern where
  12.     {
  13.         pop
  14.     }
  15.     {
  16.      begin
  17.      begin
  18.         Adobe_pattern_AI5 begin
  19.         Adobe_pattern_AI5
  20.         {
  21.             dup xcheck
  22.             {
  23.                 bind
  24.             } if
  25.             pop pop
  26.         } forall
  27.         mark
  28.         cachestatus 7 1 roll pop pop pop pop exch pop exch
  29.         {
  30.             {
  31.                 10000 add
  32.                 dup 2 index gt
  33.                 {
  34.                     break
  35.                 } if
  36.                 dup setcachelimit
  37.             } loop
  38.         } stopped
  39.         cleartomark
  40.      end     
  41.         
  42.      end
  43.      end
  44.         
  45.         Adobe_pattern_AI5 begin
  46.     } ifelse
  47. } def
  48. /terminate
  49. {
  50.     currentdict Adobe_pattern_AI5 eq
  51.     {
  52.      end
  53.     } if
  54. } def
  55. errordict
  56. /nocurrentpoint
  57. {
  58.     pop
  59.     stop
  60. } put
  61. errordict
  62. /invalidaccess
  63. {
  64.     pop
  65.     stop
  66. } put
  67. /patternencoding
  68. 256 array def
  69. 0 1 255
  70. {
  71.     patternencoding exch ( ) 2 copy exch 0 exch put cvn put
  72. } for
  73. /definepattern
  74. {
  75.     17 dict begin
  76.     /uniform exch def
  77.     /cache exch def
  78.     /key exch def
  79.     /procarray exch def
  80.     /mtx exch matrix invertmatrix def
  81.     /height exch def
  82.     /width exch def
  83.     /ctm matrix currentmatrix def
  84.     /ptm matrix def
  85.     /str 32 string def
  86.     /slice 9 dict def
  87.     slice /s 1 put
  88.     slice /q 256 procarray length div sqrt floor cvi put
  89.     slice /b 0 put
  90.     /FontBBox
  91.     [
  92.     0 0 0 0
  93.     ] def
  94.     /FontMatrix mtx matrix copy def
  95.     /Encoding patternencoding def
  96.     /FontType 3 def
  97.     /BuildChar
  98.     {
  99.         exch
  100.      begin
  101.         /setstrokeadjust where {pop true setstrokeadjust} if
  102.         slice begin
  103.         dup q dup mul mod s idiv /i exch def
  104.         dup q dup mul mod s mod /j exch def
  105.         q dup mul idiv procarray exch get
  106.         /xl j width s div mul def
  107.         /xg j 1 add width s div mul def
  108.         /yl i height s div mul def
  109.         /yg i 1 add height s div mul def
  110.         uniform
  111.         {
  112.             1 1
  113.         }
  114.         {
  115.             width 0 dtransform
  116.             dup mul exch dup mul add sqrt dup 1 add exch div
  117.             0 height dtransform
  118.             dup mul exch dup mul add sqrt dup 1 add exch div
  119.         } ifelse
  120.         width 0 cache
  121.         {
  122.             xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
  123.             setcachedevice
  124.         }
  125.         {
  126.             setcharwidth
  127.         } ifelse
  128.         gsave
  129.         scale
  130.         newpath
  131.         xl yl moveto
  132.         xg yl lineto
  133.         xg yg lineto
  134.         xl yg lineto
  135.         closepath
  136.         clip
  137.         newpath
  138.      end
  139.      end
  140.         exec
  141.         grestore
  142.     } def
  143.     key currentdict definefont
  144.  end
  145. } def
  146. /patterncachesize
  147. {
  148.     gsave
  149.     newpath
  150.     0 0 moveto
  151.     width 0 lineto
  152.     width height lineto
  153.     0 height lineto
  154.     closepath
  155.     patternmatrix setmatrix
  156.     pathbbox
  157.     exch ceiling 4 -1 roll floor sub 3 1 roll
  158.     ceiling exch floor sub
  159.     mul 1 add
  160.     grestore
  161. } def
  162. /patterncachelimit
  163. {
  164.     cachestatus 7 1 roll 6 npop 8 mul
  165. } def
  166. /patternpath
  167. {
  168.     exch dup begin
  169.     setfont
  170.     ctm setmatrix
  171.     concat
  172.     slice exch /b exch slice /q get dup mul mul put
  173.     FontMatrix concat
  174.     uniform
  175.     {
  176.         width 0 dtransform round width div exch round width div exch
  177.         0 height dtransform round height div exch height div exch
  178.         0 0 transform round exch round exch
  179.         ptm astore setmatrix
  180.     }
  181.     {
  182.         ptm currentmatrix pop
  183.     } ifelse
  184.     {
  185.         currentpoint
  186.     } stopped not
  187.     {
  188.         2 npop
  189.         pathbbox
  190.         true
  191.         4 index 3 index eq
  192.         4 index 3 index eq
  193.         and
  194.         {
  195.             pop false
  196.             {
  197.                 {
  198.                     2 npop
  199.                 }
  200.                 {
  201.                     3 npop true
  202.                 }
  203.                 {
  204.                     7 npop true
  205.                 }
  206.                 {
  207.                     pop true
  208.                 } pathforall
  209.             } stopped
  210.             {
  211.                 5 npop true
  212.             } if
  213.         } if
  214.         {
  215.             height div ceiling height mul 4 1 roll
  216.             width div ceiling width mul 4 1 roll
  217.             height div floor height mul 4 1 roll
  218.             width div floor width mul 4 1 roll
  219.             2 index sub height div ceiling cvi exch
  220.             3 index sub width div ceiling cvi exch
  221.             4 2 roll moveto
  222.             FontMatrix mtx invertmatrix
  223.             dup dup 4 get exch 5 get rmoveto
  224.             ptm ptm concatmatrix pop
  225.             slice /s
  226.             patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
  227.             dup slice /q get gt
  228.             {
  229.                 pop slice /q get
  230.             } if
  231.             put
  232.             0 1 slice /s get dup mul 1 sub
  233.             {
  234.                 slice /b get add
  235.                 gsave
  236.                 0 1 str length 1 sub
  237.                 {
  238.                     str exch 2 index put
  239.                 } for
  240.                 pop
  241.                 dup
  242.                 {
  243.                     gsave
  244.                     ptm setmatrix
  245.                     1 index str length idiv
  246.                     {
  247.                         str show
  248.                     } repeat
  249.                     1 index str length mod str exch 0 exch getinterval show
  250.                     grestore
  251.                     0 height rmoveto
  252.                 } repeat
  253.                 grestore
  254.             } for
  255.             2 npop
  256.         }
  257.         {
  258.             4 npop
  259.         } ifelse
  260.     } if
  261.  end
  262. } def
  263. /patternclip
  264. {
  265.     clip
  266. } def
  267. /patternstrokepath
  268. {
  269.     strokepath
  270. } def
  271. /patternmatrix
  272. matrix def
  273. /patternfill
  274. {
  275.     dup type /dicttype eq
  276.     {
  277.         Adobe_pattern_AI5 /patternmatrix get
  278.     } if
  279.     gsave
  280.     patternclip
  281.     Adobe_pattern_AI5 /patternpath get exec
  282.     grestore
  283.     newpath
  284. } def
  285. /patternstroke
  286. {
  287.     dup type /dicttype eq
  288.     {
  289.         Adobe_pattern_AI5 /patternmatrix get
  290.     } if
  291.     gsave
  292.     patternstrokepath
  293.     true
  294.     {
  295.         {
  296.             {
  297.                 newpath
  298.                 moveto
  299.             }
  300.             {
  301.                 lineto
  302.             }
  303.             {
  304.                 curveto
  305.             }
  306.             {
  307.                 closepath
  308.                 3 copy
  309.                 Adobe_pattern_AI5 /patternfill get exec
  310.             } pathforall
  311.             3 npop
  312.         } stopped
  313.         {
  314.             5 npop
  315.             patternclip
  316.             Adobe_pattern_AI5 /patternfill get exec
  317.         } if
  318.     }
  319.     {
  320.         patternclip
  321.         Adobe_pattern_AI5 /patternfill get exec
  322.     } ifelse
  323.     grestore
  324.     newpath
  325. } def
  326. /patternashow
  327. {
  328.     3 index type /dicttype eq
  329.     {
  330.         Adobe_pattern_AI5 /patternmatrix get 4 1 roll
  331.     } if
  332.     {
  333.         2 npop (0) exch
  334.         2 copy 0 exch put pop
  335.         gsave
  336.         false charpath currentpoint
  337.         6 index 6 index 6 index
  338.         Adobe_pattern_AI5 /patternfill get exec
  339.         grestore
  340.         newpath moveto
  341.         2 copy rmoveto
  342.     } exch cshow
  343.     5 npop
  344. } def
  345. /patternawidthshow
  346. {
  347.     6 index type /dicttype eq
  348.     {
  349.         Adobe_pattern_AI5 /patternmatrix get 7 1 roll
  350.     } if
  351.     {
  352.         2 npop (0) exch
  353.         2 copy 0 exch put
  354.         gsave
  355.         _sp eq
  356.         {
  357.             5 index 5 index rmoveto
  358.         } if
  359.         false charpath currentpoint
  360.         9 index 9 index 9 index
  361.         Adobe_pattern_AI5 /patternfill get exec
  362.         grestore
  363.         newpath moveto
  364.         2 copy rmoveto
  365.     } exch cshow
  366.     8 npop
  367. } def
  368. /patternashowstroke
  369. {
  370.     4 index type /dicttype eq
  371.     {
  372.         patternmatrix /patternmatrix get 5 1 roll
  373.     } if
  374.     4 1 roll
  375.     {
  376.         2 npop (0) exch
  377.         2 copy 0 exch put pop
  378.         gsave
  379.         false charpath
  380.         currentpoint
  381.         4 index setmatrix
  382.         7 index 7 index 7 index
  383.         Adobe_pattern_AI5 /patternstroke get exec
  384.         grestore
  385.         newpath moveto
  386.         2 copy rmoveto
  387.     } exch cshow
  388.     6 npop
  389. } def
  390. /patternawidthshowstroke
  391. {
  392.     7 index type /dicttype eq
  393.     {
  394.         patternmatrix /patternmatrix get 8 1 roll
  395.     } if
  396.     7 1 roll
  397.     {
  398.         2 npop (0) exch
  399.         2 copy 0 exch put
  400.         gsave
  401.         _sp eq
  402.         {
  403.             5 index 5 index rmoveto
  404.         } if
  405.         false charpath currentpoint
  406.         7 index setmatrix
  407.         10 index 10 index 10 index
  408.         Adobe_pattern_AI5 /patternstroke get exec
  409.         grestore
  410.         newpath moveto
  411.         2 copy rmoveto
  412.     } exch cshow
  413.     9 npop
  414. } def
  415. currentdict readonly pop
  416. end
  417. setpacking
  418. %%EndResource
  419.