home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
VRML & 3D on the Web for Dummies
/
VRML4DMYZ.iso
/
pc
/
pc_stuff
/
build
/
caligari
/
truespc2
/
set14
< prev
next >
Wrap
Text File
|
1995-03-02
|
6KB
|
342 lines
%%BeginProcSet: Adobe_pattern 1.10 0
currentpacking true setpacking
userdict /Adobe_pattern 14 dict dup begin put
/initialize
{
/definepattern where
{
pop
}
{
Adobe_pattern begin
Adobe_pattern
{
dup xcheck
{
bind
} if
pop pop
} forall
mark
cachestatus 7 1 roll pop pop pop pop exch pop exch
{
{
10000 add
dup 2 index gt
{
break
} if
dup setcachelimit
} loop
} stopped
cleartomark
} ifelse
} def
/terminate
{
currentdict Adobe_pattern eq
{
end
} if
} def
errordict
/nocurrentpoint
{
pop
stop
} put
errordict
/invalidaccess
{
pop
stop
} put
/patternencoding
256 array def
0 1 255
{
patternencoding exch ( ) 2 copy exch 0 exch put cvn put
} for
/definepattern
{
17 dict begin
/uniform exch def
/cache exch def
/key exch def
/procarray exch def
/mtx exch matrix invertmatrix def
/height exch def
/width exch def
/ctm matrix currentmatrix def
/ptm matrix def
/str 32 string def
/slice 9 dict def
slice /s 1 put
slice /q 256 procarray length div sqrt floor cvi put
slice /b 0 put
/FontBBox [0 0 0 0] def
/FontMatrix mtx matrix copy def
/Encoding patternencoding def
/FontType 3 def
/BuildChar
{
exch
begin
/setstrokeadjust where {pop true setstrokeadjust} if
slice begin
dup q dup mul mod s idiv /i exch def
dup q dup mul mod s mod /j exch def
q dup mul idiv procarray exch get
/xl j width s div mul def
/xg j 1 add width s div mul def
/yl i height s div mul def
/yg i 1 add height s div mul def
uniform
{
1 1
}
{
width 0 dtransform
dup mul exch dup mul add sqrt dup 1 add exch div
0 height dtransform
dup mul exch dup mul add sqrt dup 1 add exch div
} ifelse
width 0 cache
{
xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
setcachedevice
}
{
setcharwidth
} ifelse
gsave
scale
newpath
xl yl moveto
xg yl lineto
xg yg lineto
xl yg lineto
closepath
clip
newpath
end
end
exec
grestore
} def
key currentdict definefont
end
} def
/patterncachesize
{
gsave
newpath
0 0 moveto
width 0 lineto
width height lineto
0 height lineto
closepath
patternmatrix setmatrix
pathbbox
exch ceiling 4 -1 roll floor sub 3 1 roll
ceiling exch floor sub
mul 1 add
grestore
} def
/patterncachelimit
{
cachestatus 7 1 roll pop pop pop pop pop pop 8 mul
} def
/patternpath
{
exch dup begin setfont
ctm setmatrix
concat
slice exch /b exch slice /q get dup mul mul put
FontMatrix concat
uniform
{
width 0 dtransform round width div exch round width div exch
0 height dtransform round height div exch height div exch
0 0 transform round exch round exch
ptm astore setmatrix
}
{
ptm currentmatrix pop
} ifelse
{currentpoint} stopped not
{
pop pop
pathbbox
true
4 index 3 index eq
4 index 3 index eq
and
{
pop false
{
{pop pop}
{pop pop pop true}
{pop pop pop pop pop pop pop true}
{pop true}
pathforall
} stopped
{
pop pop pop pop pop true
} if
} if
{
height div ceiling height mul 4 1 roll
width div ceiling width mul 4 1 roll
height div floor height mul 4 1 roll
width div floor width mul 4 1 roll
2 index sub height div ceiling cvi exch
3 index sub width div ceiling cvi exch
4 2 roll moveto
FontMatrix mtx invertmatrix
dup dup 4 get exch 5 get rmoveto
ptm ptm concatmatrix pop
slice /s
patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
dup slice /q get gt
{
pop slice /q get
} if
put
0 1 slice /s get dup mul 1 sub
{
slice /b get add
gsave
0 1 str length 1 sub
{
str exch 2 index put
} for
pop
dup
{
gsave
ptm setmatrix
1 index str length idiv {str show} repeat
1 index str length mod str exch 0 exch getinterval show
grestore
0 height rmoveto
} repeat
grestore
} for
pop pop
}
{
pop pop pop pop
} ifelse
} if
end
} def
/patternclip
{
clip
} def
/patternstrokepath
{
strokepath
} def
/patternmatrix
matrix def
/patternfill
{
dup type /dicttype eq
{
Adobe_pattern /patternmatrix get
} if
gsave
patternclip
Adobe_pattern /patternpath get exec
grestore
newpath
} def
/patternstroke
{
dup type /dicttype eq
{
Adobe_pattern /patternmatrix get
} if
gsave
patternstrokepath
true
{
{
{
newpath
moveto
}
{
lineto
}
{
curveto
}
{
closepath
3 copy
Adobe_pattern /patternfill get exec
} pathforall
pop pop pop
} stopped
{
pop pop pop pop pop
patternclip
Adobe_pattern /patternfill get exec
} if
}
{
patternclip
Adobe_pattern /patternfill get exec
} ifelse
grestore
newpath
} def
/patternashow
{
3 index type /dicttype eq
{
Adobe_pattern /patternmatrix get 4 1 roll
} if
{
pop pop (0) exch
2 copy 0 exch put pop
gsave
false charpath
currentpoint
6 index 6 index 6 index
Adobe_pattern /patternfill get exec
grestore
newpath moveto
2 copy rmoveto
} exch cshow
pop pop pop pop pop
} def
/patternashowstroke
{
4 index type /dicttype eq
{
patternmatrix /patternmatrix get 5 1 roll
} if
4 1 roll
{
pop pop (0) exch
2 copy 0 exch put pop
gsave
false charpath
currentpoint
4 index setmatrix
7 index 7 index 7 index
Adobe_pattern /patternstroke get exec
grestore
newpath moveto
2 copy rmoveto
} exch cshow
pop pop pop pop pop pop
} def
currentdict readonly pop end
setpacking
%%EndProcSet