https://gitorious.org/ocamlp3l/ocamlp3l_cvs.git
Revision 2db189928c94d62a3b4757b3eec68f0a4d4113f0 authored by dicosmo on 23 June 1998, 11:28:44 UTC, committed by dicosmo on 23 June 1998, 11:28:44 UTC
1 parent 8d2207a
Raw File
Tip revision: 2db189928c94d62a3b4757b3eec68f0a4d4113f0 authored by dicosmo on 23 June 1998, 11:28:44 UTC
*** empty log message ***
Tip revision: 2db1899
pipe.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: pipe.fig
%%Creator: fig2dev Version 3.1 Patchlevel 2
%%CreationDate: Fri Sep 26 18:38:47 1997
%%For: marcod@qui (Marco Danelutto)
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 423 127
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/MyAppDict 100 dict dup begin def
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-117.0 278.0 translate
1 -1 scale
.9 .9 scale % to make patterns same scale as in xfig

% This junk string is used by the show operators
/PATsstr 1 string def
/PATawidthshow { 	% cx cy cchar rx ry string
  % Loop over each character in the string
  {  % cx cy cchar rx ry char
    % Show the character
    dup				% cx cy cchar rx ry char char
    PATsstr dup 0 4 -1 roll put	% cx cy cchar rx ry char (char)
    false charpath		% cx cy cchar rx ry char
    /clip load PATdraw
    % Move past the character (charpath modified the
    % current point)
    currentpoint			% cx cy cchar rx ry char x y
    newpath
    moveto			% cx cy cchar rx ry char
    % Reposition by cx,cy if the character in the string is cchar
    3 index eq {			% cx cy cchar rx ry
      4 index 4 index rmoveto
    } if
    % Reposition all characters by rx ry
    2 copy rmoveto		% cx cy cchar rx ry
  } forall
  pop pop pop pop pop		% -
  currentpoint
  newpath
  moveto
} bind def
/PATcg {
  7 dict dup begin
    /lw currentlinewidth def
    /lc currentlinecap def
    /lj currentlinejoin def
    /ml currentmiterlimit def
    /ds [ currentdash ] def
    /cc [ currentrgbcolor ] def
    /cm matrix currentmatrix def
  end
} bind def
% PATdraw - calculates the boundaries of the object and
% fills it with the current pattern
/PATdraw {			% proc
  save exch
    PATpcalc			% proc nw nh px py
    5 -1 roll exec		% nw nh px py
    newpath
    PATfill			% -
  restore
} bind def
% PATfill - performs the tiling for the shape
/PATfill { % nw nh px py PATfill -
  PATDict /CurrentPattern get dup begin
    setfont
    % Set the coordinate system to Pattern Space
    PatternGState PATsg
    % Set the color for uncolored pattezns
    PaintType 2 eq { PATDict /PColor get PATsc } if
    % Create the string for showing
    3 index string		% nw nh px py str
    % Loop for each of the pattern sources
    0 1 Multi 1 sub {		% nw nh px py str source
	% Move to the starting location
	3 index 3 index		% nw nh px py str source px py
	moveto			% nw nh px py str source
	% For multiple sources, set the appropriate color
	Multi 1 ne { dup PC exch get PATsc } if
	% Set the appropriate string for the source
	0 1 7 index 1 sub { 2 index exch 2 index put } for pop
	% Loop over the number of vertical cells
	3 index 		% nw nh px py str nh
	{			% nw nh px py str
	  currentpoint		% nw nh px py str cx cy
	  2 index show		% nw nh px py str cx cy
	  YStep add moveto	% nw nh px py str
	} repeat		% nw nh px py str
    } for
    5 { pop } repeat
  end
} bind def

% PATkshow - kshow with the current pattezn
/PATkshow {			% proc string
  exch bind			% string proc
  1 index 0 get			% string proc char
  % Loop over all but the last character in the string
  0 1 4 index length 2 sub {
				% string proc char idx
    % Find the n+1th character in the string
    3 index exch 1 add get	% string proe char char+1
    exch 2 copy			% strinq proc char+1 char char+1 char
    % Now show the nth character
    PATsstr dup 0 4 -1 roll put	% string proc chr+1 chr chr+1 (chr)
    false charpath		% string proc char+1 char char+1
    /clip load PATdraw
    % Move past the character (charpath modified the current point)
    currentpoint newpath moveto
    % Execute the user proc (should consume char and char+1)
    mark 3 1 roll		% string proc char+1 mark char char+1
    4 index exec		% string proc char+1 mark...
    cleartomark			% string proc char+1
  } for
  % Now display the last character
  PATsstr dup 0 4 -1 roll put	% string proc (char+1)
  false charpath		% string proc
  /clip load PATdraw
  neewath
  pop pop			% -
} bind def
% PATmp - the makepattern equivalent
/PATmp {			% patdict patmtx PATmp patinstance
  exch dup length 7 add		% We will add 6 new entries plus 1 FID
  dict copy			% Create a new dictionary
  begin
    % Matrix to install when painting the pattern
    TilingType PATtcalc
    /PatternGState PATcg def
    PatternGState /cm 3 -1 roll put
    % Check for multi pattern sources (Level 1 fast color patterns)
    currentdict /Multi known not { /Multi 1 def } if
    % Font dictionary definitions
    /FontType 3 def
    % Create a dummy encoding vector
    /Encoding 256 array def
    3 string 0 1 255 {
      Encoding exch dup 3 index cvs cvn put } for pop
    /FontMatrix matrix def
    /FontBBox BBox def
    /BuildChar {
	mark 3 1 roll		% mark dict char
	exch begin
	Multi 1 ne {PaintData exch get}{pop} ifelse  % mark [paintdata]
	  PaintType 2 eq Multi 1 ne or
	  { XStep 0 FontBBox aload pop setcachedevice }
	  { XStep 0 setcharwidth } ifelse
	  currentdict		% mark [paintdata] dict
	  /PaintProc load	% mark [paintdata] dict paintproc
	end
	gsave
	  false PATredef exec true PATredef
	grestore
	cleartomark		% -
    } bind def
    currentdict
  end				% newdict
  /foo exch			% /foo newlict
  definefont			% newfont
} bind def
% PATpcalc - calculates the starting point and width/height
% of the tile fill for the shape
/PATpcalc {	% - PATpcalc nw nh px py
  PATDict /CurrentPattern get begin
    gsave
	% Set up the coordinate system to Pattern Space
	% and lock down pattern
	PatternGState /cm get setmatrix
	BBox aload pop pop pop translate
	% Determine the bounding box of the shape
	pathbbox			% llx lly urx ury
    grestore
    % Determine (nw, nh) the # of cells to paint width and height
    PatHeight div ceiling		% llx lly urx qh
    4 1 roll				% qh llx lly urx
    PatWidth div ceiling		% qh llx lly qw
    4 1 roll				% qw qh llx lly
    PatHeight div floor			% qw qh llx ph
    4 1 roll				% ph qw qh llx
    PatWidth div floor			% ph qw qh pw
    4 1 roll				% pw ph qw qh
    2 index sub cvi abs			% pw ph qs qh-ph
    exch 3 index sub cvi abs exch	% pw ph nw=qw-pw nh=qh-ph
    % Determine the starting point of the pattern fill
    %(px, py)
    4 2 roll				% nw nh pw ph
    PatHeight mul			% nw nh pw py
    exch				% nw nh py pw
    PatWidth mul exch			% nw nh px py
  end
} bind def

% Save the original routines so that we can use them later on
/oldfill	/fill load def
/oldeofill	/eofill load def
/oldstroke	/stroke load def
/oldshow	/show load def
/oldashow	/ashow load def
/oldwidthshow	/widthshow load def
/oldawidthshow	/awidthshow load def
/oldkshow	/kshow load def

% These defs are necessary so that subsequent procs don't bind in
% the originals
/fill	   { oldfill } bind def
/eofill	   { oldeofill } bind def
/stroke	   { oldstroke } bind def
/show	   { oldshow } bind def
/ashow	   { oldashow } bind def
/widthshow { oldwidthshow } bind def
/awidthshow { oldawidthshow } bind def
/kshow 	   { oldkshow } bind def
/PATredef {
  MyAppDict begin
    {
    /fill { /clip load PATdraw newpath } bind def
    /eofill { /eoclip load PATdraw newpath } bind def
    /stroke { PATstroke } bind def
    /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
    /ashow { 0 0 null 6 3 roll PATawidthshow }
    bind def
    /widthshow { 0 0 3 -1 roll PATawidthshow }
    bind def
    /awidthshow { PATawidthshow } bind def
    /kshow { PATkshow } bind def
  } {
    /fill   { oldfill } bind def
    /eofill { oldeofill } bind def
    /stroke { oldstroke } bind def
    /show   { oldshow } bind def
    /ashow  { oldashow } bind def
    /widthshow { oldwidthshow } bind def
    /awidthshow { oldawidthshow } bind def
    /kshow  { oldkshow } bind def
    } ifelse
  end
} bind def
false PATredef
% Conditionally define setcmykcolor if not available
/setcmykcolor where { pop } {
  /setcmykcolor {
    1 sub 4 1 roll
    3 {
	3 index add neg dup 0 lt { pop 0 } if 3 1 roll
    } repeat
    setrgbcolor - pop
  } bind def
} ifelse
/PATsc {		% colorarray
  aload length		% c1 ... cn length
    dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
  } ifelse } ifelse
} bind def
/PATsg {		% dict
  begin
    lw setlinewidth
    lc setlinecap
    lj setlinejoin
    ml setmiterlimit
    ds aload pop setdash
    cc aload pop setrgbcolor
    cm setmatrix
  end
} bind def

/PATDict 3 dict def
/PATsp {
  true PATredef
  PATDict begin
    /CurrentPattern exch def
    % If it's an uncolored pattern, save the color
    CurrentPattern /PaintType get 2 eq {
      /PColor exch def
    } if
    /CColor [ currentrgbcolor ] def
  end
} bind def
% PATstroke - stroke with the current pattern
/PATstroke {
  countdictstack
  save
  mark
  {
    currentpoint strokepath moveto
    PATpcalc				% proc nw nh px py
    clip newpath PATfill
    } stopped {
	(*** PATstroke Warning: Path is too complex, stroking
	  with gray) =
    cleartomark
    restore
    countdictstack exch sub dup 0 gt
	{ { end } repeat } { pop } ifelse
    gsave 0.5 setgray oldstroke grestore
  } { pop restore pop } ifelse
  newpath
} bind def
/PATtcalc {		% modmtx tilingtype PATtcalc tilematrix
  % Note: tiling types 2 and 3 are not supported
  gsave
    exch concat					% tilingtype
    matrix currentmatrix exch			% cmtx tilingtype
    % Tiling type 1 and 3: constant spacing
    2 ne {
	% Distort the pattern so that it occupies
	% an integral number of device pixels
	dup 4 get exch dup 5 get exch		% tx ty cmtx
	XStep 0 dtransform
	round exch round exch			% tx ty cmtx dx.x dx.y
	XStep div exch XStep div exch		% tx ty cmtx a b
	0 YStep dtransform
	round exch round exch			% tx ty cmtx a b dy.x dy.y
	YStep div exch YStep div exch		% tx ty cmtx a b c d
	7 -3 roll astore			% { a b c d tx ty }
    } if
  grestore
} bind def
/PATusp {
  false PATredef
  PATDict begin
    CColor PATsc
  end
} bind def

% this is the pattern fill program from the Second edition Reference Manual
% with changes to call the above pattern fill
% left30
11 dict begin
/PaintType 1 def
/PatternType 1 def
/TilingType 1 def
/BBox [0 0 1 1] def
/XStep 1 def
/YStep 1 def
/PatWidth 1 def
/PatHeight 1 def
/Multi 2 def
/PaintData [
  { clippath } bind
  { 32 16 true [ 32 0 0 -16 0 16 ]
	{<c000c000300030000c000c000300030000c000c000300030
	000c000c00030003c000c000300030000c000c0003000300
	00c000c000300030000c000c00030003>}
     imagemask } bind
] def
/PaintProc {
	pop
	exec fill
} def
currentdict
end
/P1 exch def
1.1111 1.1111 scale %restore scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
 0.06000 0.06000 sc
7.500 slw
% Ellipse
n 3600 3300 318 318 0 360 DrawEllipse gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 218.80 198.80] PATmp PATsp ef gr PATusp gs col0 s gr

% Ellipse
n 4800 3300 318 318 0 360 DrawEllipse gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 298.80 198.80] PATmp PATsp ef gr PATusp gs col0 s gr

% Ellipse
n 7200 3300 318 318 0 360 DrawEllipse gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 458.80 198.80] PATmp PATsp ef gr PATusp gs col0 s gr

% Polyline
gs  clippath
3129 3270 m 3273 3300 l 3129 3330 l 3315 3330 l 3315 3270 l  cp clip
n 2700 3300 m 3300 3300 l gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 180.00 220.00] PATmp PATsp ef gr PATusp gs col0 s gr gr

% arrowhead
n 3129 3270 m 3273 3300 l 3129 3330 l 3153 3300 l 3129 3270 l  cp gs col7 1.00 shd ef gr  col0 s
% Polyline
gs  clippath
7929 3270 m 8073 3300 l 7929 3330 l 8115 3330 l 8115 3270 l  cp clip
n 7500 3300 m 8100 3300 l gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 500.00 220.00] PATmp PATsp ef gr PATusp gs col0 s gr gr

% arrowhead
n 7929 3270 m 8073 3300 l 7929 3330 l 7953 3300 l 7929 3270 l  cp gs col7 1.00 shd ef gr  col0 s
% Polyline
gs  clippath
4329 3270 m 4473 3300 l 4329 3330 l 4515 3330 l 4515 3270 l  cp clip
n 3900 3300 m 4500 3300 l gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 260.00 220.00] PATmp PATsp ef gr PATusp gs col0 s gr gr

% arrowhead
n 4329 3270 m 4473 3300 l 4329 3330 l 4353 3300 l 4329 3270 l  cp gs col7 1.00 shd ef gr  col0 s
% Polyline
gs  clippath
5529 3270 m 5673 3300 l 5529 3330 l 5715 3330 l 5715 3270 l  cp clip
n 5100 3300 m 5700 3300 l gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 340.00 220.00] PATmp PATsp ef gr PATusp gs col0 s gr gr

% arrowhead
n 5529 3270 m 5673 3300 l 5529 3330 l 5553 3300 l 5529 3270 l  cp gs col7 1.00 shd ef gr  col0 s
% Polyline
gs  clippath
6729 3270 m 6873 3300 l 6729 3330 l 6915 3330 l 6915 3270 l  cp clip
n 6300 3300 m 6900 3300 l gs /PC [[0.00 0.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P1 [16 0 0 -8 420.00 220.00] PATmp PATsp ef gr PATusp gs col0 s gr gr

% arrowhead
n 6729 3270 m 6873 3300 l 6729 3330 l 6753 3300 l 6729 3270 l  cp gs col7 1.00 shd ef gr  col0 s
/Helvetica-Narrow-Bold ff 210.00 scf sf
1950 3150 m
gs 1 -1 sc (Input data ) col0 sh gr
/Helvetica-Narrow-Bold ff 210.00 scf sf
7650 3150 m
gs 1 -1 sc (Output data ) col0 sh gr
% Polyline
 [66.7] 0 sd
gs  clippath
3250 3683 m 3355 3619 l 3292 3725 l 3407 3611 l 3364 3568 l  cp clip
n 2700 4275 m 3375 3600 l gs col-1 s gr gr
 [] 0 sd
% arrowhead
n 3250 3683 m 3355 3619 l 3292 3725 l  col-1 s
% Polyline
 [66.7] 0 sd
gs  clippath
4543 3781 m 4635 3697 l 4593 3814 l 4683 3679 l 4633 3646 l  cp clip
n 4200 4350 m 4650 3675 l gs col-1 s gr gr
 [] 0 sd
% arrowhead
n 4543 3781 m 4635 3697 l 4593 3814 l  col-1 s
% Polyline
 [66.7] 0 sd
gs  clippath
6861 3773 m 6958 3696 l 6908 3809 l 7008 3682 l 6961 3645 l  cp clip
n 6450 4350 m 6975 3675 l gs col-1 s gr gr
 [] 0 sd
% arrowhead
n 6861 3773 m 6958 3696 l 6908 3809 l  col-1 s
/Helvetica-Narrow-Bold ff 270.00 scf sf
4800 2700 m
gs 1 -1 sc (f2) dup sw pop 2 div neg 0 rm  col-1 sh gr
/Helvetica-Narrow-Bold ff 270.00 scf sf
7200 2700 m
gs 1 -1 sc (fn) dup sw pop 2 div neg 0 rm  col-1 sh gr
/Helvetica-Narrow-Bold ff 270.00 scf sf
3600 2700 m
gs 1 -1 sc (f1) dup sw pop 2 div neg 0 rm  col-1 sh gr
/Helvetica-Narrow-Bold ff 270.00 scf sf
2700 4575 m
gs 1 -1 sc (stage1) dup sw pop 2 div neg 0 rm  col-1 sh gr
/Helvetica-Narrow-Bold ff 270.00 scf sf
4200 4575 m
gs 1 -1 sc (stage2) dup sw pop 2 div neg 0 rm  col-1 sh gr
/Helvetica-Narrow-Bold ff 270.00 scf sf
6375 4575 m
gs 1 -1 sc (stagen) dup sw pop 2 div neg 0 rm  col-1 sh gr
$F2psEnd
rs
end
back to top