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

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