diff options
Diffstat (limited to 'support/flow/flowdoc.tex')
-rw-r--r-- | support/flow/flowdoc.tex | 783 |
1 files changed, 783 insertions, 0 deletions
diff --git a/support/flow/flowdoc.tex b/support/flow/flowdoc.tex new file mode 100644 index 0000000000..9a0e7469b1 --- /dev/null +++ b/support/flow/flowdoc.tex @@ -0,0 +1,783 @@ +% flowdoc.tex - a fairly plain LaTeX file, documentation for 'flow' +% created 15 Nov 1992, by Terry Brown +% last revised 2004-2-18 + +\documentstyle{article} + +\setlength{\unitlength}{2em} % for the picture environment + +\setlength{\parindent}{0pt} +\setlength{\parskip}{2ex} +\addtolength{\topmargin}{-1cm} +\addtolength{\textheight}{2cm} +\addtolength{\evensidemargin}{-1cm} +\addtolength{\oddsidemargin}{-1cm} +\addtolength{\textwidth}{2cm} +% 4 levels of headings +\newcommand{\headA}[1]{{\huge \vspace{1ex} \bf \hfill #1 \vspace{1ex}\hfill}} +\newcommand{\headB}[1]{{\Large \vspace{1ex} \bf #1 \vspace{1ex} }} +\newcommand{\headC}[1]{{\large \vspace{1ex} \bf #1 \vspace{1ex} }} +\newcommand{\headD}[1]{{\bf \vspace{1ex} #1 \vspace{1ex} }} + +\newcommand{\pushin}{\hspace*{1em}} + +\begin{document} + +\title{Flow -- a program to generate flowcharts in the \LaTeX\ + picture environment} +\author{Terry Brown} +\date{November 25, 1992 --- September 22, 2005} +\maketitle + +\headB{Summary} + +{\em Flow\/} is a small program which parses the flowchart description +explained in this document and translates it to the \LaTeX\ picture +environment. + +Flow acts as a filter, so a typical execution would be... + +\verb+flow +$<$\verb+myprog.flo +$>$\verb+myprog.pic+ + +...where \verb+myprog.flo+ is a plain text file containing a description of a +flowchart, and \verb+myprog.pic+ will be a plain text file containing the +body of a \LaTeX\ picture environment to draw the flowchart. Alternatively + +\verb+flow inputFile + or \verb+ flow inputFile outputFile+ + +may be used. VMS users see notes at end. + +\verb+myprog.pic+ could either be inserted into a picture environment in a +\LaTeX\ file with a text editor, or pulled in by the \verb+\input+ command as +\LaTeX\ is run. + +\headB{System requirements} + +Nothing in particular. Flow is in very plain C and should be portable to +pretty much anything without alteration. Check beginning of file for defines +if it gives trouble. + +\headB{Distribution and Bug Reports} + +Flow is free software covered by the GPL. See the file \verb+COPYING+ +for details. Email to \verb+terry_n_brown@yahoo.com+ with bug reports +etc. + +\newpage +\headB{Flowchart description syntax} + +\verb+[indented text]+ indicates the command accepts zero or more line of +text, these lines are identified by indentation. All lines after the command +starting with either a space or a tab are assumed to be text for that +command. The first line not starting with one of these characters is assumed +to be the next command. Distributed code / executeables are case +insensitive, but local compilations may vary. + +The flowchart is always ``going'' either up, down, left or right. The +initial direction is down. + +The flowchart description file is terminated either by an invalid command, +a blank line, or the end of the file. Keywords are case sensitive. + +% This bit became redundant with v 0.99 +% +%% The output from flow should appear inside a \LaTeX\ picture environment. +%% Use +%% +%% \pushin\verb+\begin{picture}(x,y)(0,-y)+ +%% +%% to start the environment (as the flow +%% chart starts at 0,0 and normally goes down, this put the pictures origin at +%% the top left corner). 10 and 10 are ok as initial values for x and y. The +%% positioning of the picture can be adjusted with the second pair as usual for +%% the picture environment. + +The output from flow will appear inside a \LaTeX\ picture environment. +The positioning of the picture can be adjusted with the second pair as usual +for the picture environment. + +\verb+\unitlength+ should be set for use with the picture environment, all +the examples in this document use \verb+2em+ (ie. put +\verb+\setlength{\unitlength}{2em}+ at the top of the \LaTeX\ file). +Smaller values make the boxes tighter around the text, larger values make +them more open. + +\headC{The commands} + +\verb_% comment to end of line_ + +If the first thing on a line is a '\verb_%_' symbol the line is +treated as a comment. Thanks to Joost Bruynooghe for adding this command. + +\begin{verbatim} +Box [x y] + [indented text] +\end{verbatim} + +Draws a text at the current position, including a line or arrow leading to it +if appropriate. If x and y are specified, the size of the box (in +\verb+\unitlength+s), and all subsequent boxes, is set to these. The +default size of a box is 4 by 2 \verb+\unitlength+s. + +{\small +\begin{verbatim} +Right +Box + This is + the first + box. +Box 8 1 + And this is the second +\end{verbatim} +} + +\begin{picture}(10,2)(0,-2) +% picture environment flowchart generated by flow 0.95 +\put(0.0000,-2.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +This is \\ +the first \\ +box. +}}} +\put(4.0000,-1.0000){\vector(1,0){1.0000}} +\put(5.0000,-1.5000){\framebox(8.0000,1.0000)[c]{\shortstack[c]{ +And this is the second +}}} +\end{picture} + +\newpage +\begin{verbatim} +Oval [x y] + [indented text] + +Tilt [x y] + [indented text] + +Text [x y] + [indented text] +\end{verbatim} + +\verb+Oval+, \verb+Tilt+ and \verb+Text+ are identical to \verb+Box+, except +for the shape of the frame. (\verb+Text+ is an invisible frame.) + +{\small +\begin{verbatim} +Right +Oval + This is + an Oval +Tilt + And this + is a + Tilt +Text + And this + is a + Text +\end{verbatim} +} + +\begin{picture}(10,3)(0,-3) +% picture environment flowchart generated by flow 0.95 +\put(2.0000,-1.0000){\oval(4.0000,2.0000)} +\put(0.0000,-2.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +This is \\ +an Oval +}}} +\put(4.0000,-1.0000){\vector(1,0){1.0000}} +\put(5.0000,-2.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +And this \\ +is a \\ +Tilt +}}} +\put(5.3333,0.0000){\line(1,0){4.0000}} +\put(4.6667,-2.0000){\line(1,0){4.0000}} +\put(4.6667,-2.0000){\line(1,3){0.6667}} +\put(8.6667,-2.0000){\line(1,3){0.6667}} +\put(9.0000,-1.0000){\vector(1,0){1.0000}} +\put(10.0000,-2.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +And this \\ +is a \\ +Text +}}} +\end{picture} + +\begin{verbatim} +Choice A B C D [x y] + [indented text] +\end{verbatim} + +Draws a choice diamond, with the corners labeled as illustrated by the left +diamond in the example. Periods (.) are not printed. The optional x an y +parameters alter the size of the choice. The default size is 4 by 4 +\verb+\unitlengh+s. Flow will report an error for non-square choice boxes +whose aspect ratio doesn't match one of the line slopes supported by \LaTeX\ +(-6 -- 6 : -6 -- 6, integers only). + +{\small +\begin{verbatim} +Right +Choice A B C D + Label + any + corner +Choice Yes . No . + Normally + only two. +\end{verbatim} +} + +\begin{picture}(10,5)(0,-5) +% picture environment flowchart generated by flow 0.95 +\put(0.0000,-2.0000){\line(1,1){2.0000}} +\put(0.0000,-2.0000){\line(1,-1){2.0000}} +\put(4.0000,-2.0000){\line(-1,-1){2.0000}} +\put(4.0000,-2.0000){\line(-1,1){2.0000}} +\put(0.0000,-4.0000){\makebox(4.0000,4.0000)[c]{\shortstack[c]{ +Label\\ +any\\ +corner +}}} +\put(2.6000,0.0000){\makebox(0,0)[lt]{A}} +\put(0.0000,-1.4000){\makebox(0,0)[rt]{B}} +\put(4.0000,-1.4000){\makebox(0,0)[lt]{C}} +\put(2.6000,-4.0000){\makebox(0,0)[lb]{D}} +\put(4.0000,-2.0000){\vector(1,0){1.0000}} +\put(5.0000,-2.0000){\line(1,1){2.0000}} +\put(5.0000,-2.0000){\line(1,-1){2.0000}} +\put(9.0000,-2.0000){\line(-1,-1){2.0000}} +\put(9.0000,-2.0000){\line(-1,1){2.0000}} +\put(5.0000,-4.0000){\makebox(4.0000,4.0000)[c]{\shortstack[c]{ +Normally\\ +only two. +}}} +\put(7.6000,0.0000){\makebox(0,0)[lt]{Yes}} +\put(9.0000,-1.4000){\makebox(0,0)[lt]{No}} +\end{picture} + +\verb+SetTrack none | arrow | line+ + +Use arrows, lines, or nothing for drawing connections between boxes. + +\verb+TxtPos P1 P2 [B [A]]+ + +\verb+P1+ is the \LaTeX\ position specification (eg. [c] or [l]) for the +lines of text that makes up the blocks of text in the boxes, \verb+P2+ is +the \LaTeX\ position specification for the whole block of text within the +box. \verb+B+ is the string (no white space) to be placed before each line +of text, \verb+A+ is the string to be placed after each line of text. The +example shows the use of \verb+B+ to keep text off the edge of the box. + +{\small +\begin{verbatim} +Right +SetTrack arrow +TxtPos [l] [l] +Box 3.5 2 + Needs some + space on the + left +TxtPos [l] [l] ~ +Box + Left justified + text with + space +SetTrack line +TxtPos [c] [c] +Box + Centred + Text +SetTrack none +TxtPos [r] [r] ~ \hspace*{1ex} +Box + Right justified + Text +\end{verbatim} +} + +\begin{picture}(10,3)(0,-2.5) +% picture environment flowchart generated by flow 0.95 +\put(0.0000,-2.0000){\framebox(3.5000,2.0000)[l]{\shortstack[l]{ +Needs some\\ +space on the\\ +left +}}} +\put(3.5000,-1.0000){\vector(1,0){1.0000}} +\put(4.5000,-2.0000){\framebox(3.5000,2.0000)[l]{\shortstack[l]{ +~Left justified\\ +~text with\\ +~space +}}} +\put(8.0000,-1.0000){\line(1,0){1.0000}} +\put(9.0000,-2.0000){\framebox(3.5000,2.0000)[c]{\shortstack[c]{ +Centred\\ +Text +}}} +\put(13.5000,-2.0000){\framebox(3.5000,2.0000)[r]{\shortstack[r]{ +~Right justified\hspace*{1ex}\\ +~Text\hspace*{1ex} +}}} +\end{picture} + +\newpage +\verb+Tag+ + +\verb+ToTag+ + +\verb+Tag+ stores the location and size of the last object drawn on a stack, +\verb+ToTag+ returns to that position (removing the item from the stack). This is +particularly useful with \verb+Choice+s, allowing a second chain to be built +from the diamond, but it can be used with any other item. Flow will complain +if it encounters more \verb+ToTag+s the \verb+Tag+s, but won't mention +\verb+Tag+s left on the stack when it finishes. + +{\small +\begin{verbatim} +Right 0 +Choice . . N Y + Ready to + stop? +Tag +Choice . . Right Down + Go right + or Down? +Tag +Right 1 +Box + To the + right +ToTag +Down +Box + Down here +ToTag +Down +Oval + STOP +\end{verbatim} +} + +\begin{picture}(10,7)(0,-5) +% picture environment flowchart generated by flow 0.95 +\put(0.0000,0.0000){\line(1,0){0.0000}} +\put(0.0000,0.0000){\vector(1,0){1.0000}} +\put(1.0000,0.0000){\line(1,1){2.0000}} +\put(1.0000,0.0000){\line(1,-1){2.0000}} +\put(5.0000,0.0000){\line(-1,-1){2.0000}} +\put(5.0000,0.0000){\line(-1,1){2.0000}} +\put(1.0000,-2.0000){\makebox(4.0000,4.0000)[c]{\shortstack[c]{ +Ready to\\ +stop? +}}} +\put(5.0000,0.6000){\makebox(0,0)[lt]{N}} +\put(3.6000,-2.0000){\makebox(0,0)[lb]{Y}} +\put(5.0000,0.0000){\vector(1,0){1.0000}} +\put(6.0000,0.0000){\line(1,1){2.0000}} +\put(6.0000,0.0000){\line(1,-1){2.0000}} +\put(10.0000,0.0000){\line(-1,-1){2.0000}} +\put(10.0000,0.0000){\line(-1,1){2.0000}} +\put(6.0000,-2.0000){\makebox(4.0000,4.0000)[c]{\shortstack[c]{ +Go right\\ +or Down? +}}} +\put(10.0000,0.6000){\makebox(0,0)[lt]{Right}} +\put(8.6000,-2.0000){\makebox(0,0)[lb]{Down}} +\put(10.0000,0.0000){\line(1,0){1.0000}} +\put(11.0000,0.0000){\vector(1,0){1.0000}} +\put(12.0000,-1.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +To the\\ +right +}}} +\put(8.0000,-2.0000){\vector(0,-1){1.0000}} +\put(6.0000,-5.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Down here +}}} +\put(3.0000,-2.0000){\vector(0,-1){1.0000}} +\put(3.0000,-4.0000){\oval(4.0000,2.0000)} +\put(1.0000,-5.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +STOP +}}} +\end{picture} + +\newpage +\begin{verbatim} +Up [d [*]] +Down [d [*]] +Left [d [*]] +Right [d [*]] +\end{verbatim} + +With or without the optional parameter, these command change the current +direction of the flowchart. With the optional parameter, they draw a line, +if \verb+SetTrack+ is \verb+line+ {\em or\/} \verb+arrow+, or leave a gap, if +\verb+SetTrack+ in \verb+none+. The length of the line (or gap) is $d$. By +default \verb+Box+es, \verb+Oval+s, \verb+Tilt+s and \verb+Text+s are 4 units +wide and 2 units high. A \verb+Choice+ is 4 by 4 units. The arrows that +connect things together are 1 unit. So a box drawn while the current +direction is down would occupy 2 + 1 = 3 vertical units. + +To force the line to end in a arrow head, use the ``*'', which must be +separated from the ``d'' by a space. + +{\small +\begin{verbatim} +Right 1 +Box + Flowing + along. +Right 1 +Tag +Down 2 +Left 6 +Up 2 * +ToTag +Right 3 +Down +Oval + STOP +\end{verbatim} +} + +\begin{picture}(10,4)(0,-3) +% picture environment flowchart generated by flow 0.95 +\put(0.0000,0.0000){\line(1,0){1.0000}} +\put(1.0000,0.0000){\vector(1,0){1.0000}} +\put(2.0000,-1.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Flowing \\ +along. +}}} +\put(6.0000,0.0000){\line(1,0){1.0000}} +\put(7.0000,0.0000){\line(0,-1){2.0000}} +\put(7.0000,-2.0000){\line(-1,0){6.0000}} +\put(1.0000,-2.0000){\vector(0,1){2.0000}} +\put(7.0000,0.0000){\line(1,0){3.0000}} +\put(10.0000,0.0000){\vector(0,-1){1.0000}} +\put(10.0000,-2.0000){\oval(4.0000,2.0000)} +\put(8.0000,-3.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +STOP +}}} +\end{picture} + +\verb+Scale x y+ + +Scale the {\em next\/} item by the specified values + +{\small +\begin{verbatim} +Right +Oval + Normal + Oval +Scale 2 1 +Box + A smaller oval is a better stop +Scale 0.5 0.5 +Oval + STOP +\end{verbatim} +} + +\begin{picture}(10,3)(0,-3) +% picture environment flowchart generated by flow 0.95 +\put(2.0000,-1.0000){\oval(4.0000,2.0000)} +\put(0.0000,-2.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +Normal\\ +Oval +}}} +\put(4.0000,-1.0000){\vector(1,0){1.0000}} +\put(5.0000,-2.0000){\framebox(8.0000,2.0000)[c]{\shortstack[c]{ +A smaller oval is a better stop +}}} +\put(13.0000,-1.0000){\vector(1,0){1.0000}} +\put(15.0000,-1.0000){\oval(2.0000,1.0000)} +\put(14.0000,-1.5000){\makebox(2.0000,1.0000)[c]{\shortstack[c]{ +STOP +}}} +\end{picture} + +\begin{verbatim} +Skip x0 y0 x1 x1 +\end{verbatim} + +\begin{tabular}{r@{~~}p{4in}} +\tt x0 & Horizontal separation between boxes, default 1 \verb+\unitlength+ \\ +\tt y0 & Vertical separation between boxes, default 1 \verb+\unitlength+ \\ +\tt x1 & Multiplier for \verb+Left+ and \verb+Right+ commands, default 1 \\ +\tt y1 & Multiplier for \verb+Up+ and \verb+Down+ commands, default 1 \\ +\end{tabular} + +{\small +\begin{verbatim} +Skip 0 0 1 1 +SetTrack none +Box + After this + Box +Box + Is another + with no + gap +SetTrack arrow +Right 5 +Up 1 * +Left 1 * +Down 1 * +Right 1 * +Skip 0 0 3 3 +Up 1 * +Left 1 * +Down 1 * +Right 1 * +\end{verbatim} +} + +\begin{picture}(10,5)(0,-5) +% picture environment flowchart generated by flow 0.95 +\put(0.0000,-2.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +After this\\ +Box +}}} +\put(0.0000,-4.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Is another\\ +with no\\ +gap +}}} +\put(4.0000,-3.0000){\line(1,0){5.0000}} +\put(9.0000,-3.0000){\vector(0,1){1.0000}} +\put(9.0000,-2.0000){\vector(-1,0){1.0000}} +\put(8.0000,-2.0000){\vector(0,-1){1.0000}} +\put(8.0000,-3.0000){\vector(1,0){1.0000}} +\put(9.0000,-3.0000){\vector(0,1){3.0000}} +\put(9.0000,0.0000){\vector(-1,0){3.0000}} +\put(6.0000,0.0000){\vector(0,-1){3.0000}} +\put(6.0000,-3.0000){\vector(1,0){3.0000}} +\end{picture} + +\newpage +\headB{VMS notes} + +I don't know much VMS, but this is one way of getting it to work. Compile +and link as normal, then + +{\tt flow :== \$\fbox{\$1\$DIA3:}[brownt1.usr.flow]flow.exe} + +where the bit in the box is the name of the drive you're working on, and +\verb+[brownt1.usr.flow]+ is the appropriate path. Then use the + +\verb+flow infile outfile+ + +form, as the redirection form doesn't seem to work. + +\newpage +\headB{An example} + +The instructions that generated this flow chart are included in +a commented section in \verb+flowdoc.tex+. Note the block of text is part of +the picture environment (a \verb+Text+). + +% THIS IS THE FLOW DATA FOR THE EXAMPLE AT THE END +% Box +% Initialise +% st +% Oval +% Begin +% RootParse +% Tag +% Box +% Initialise +% A \& B +% Down 1 +% Box +% Call client +% with A, B \& st +% Choice . . Y N +% Is B a +% New-Root +% Node? +% Tag +% Down 1 +% Choice . . Y N +% Is B a +% Fungi +% Node? +% Tag +% Down 1 +% Choice . N . Y +% Is B the +% Current-End +% Node? +% Tag +% Oval +% Return +% ToTag +% Left 3 +% Up 2 +% Box +% Update +% direction +% data in st +% Box +% A = B +% B = B.next +% Up 10 +% Right 5 * +% ToTag +% Right 1 +% Box +% Adjust fungi +% values in st +% Down 2 +% Left 6 * +% ToTag +% Right +% Box +% Increment +% st order +% Tilt +% Recursively +% call RootParse +% Box +% Decrement +% st order +% Down 2 +% Left 15 * +% ToTag +% SetTrack none +% Down 2 +% Right 8 +% TxtPos [l] [c] +% Text +% A and B are the node records at the +% start and end of the internode being +% processed. `st' is a record containing +% information about the current fungal +% population, position in 3-space, root +% order etc. It is cloned during the +% recursive descent. + +\scriptsize +\setlength{\unitlength}{1.8em} +%% start of flow output +\begin{picture}(24.000000,32.000000)(-5.000000,-32.000000) +% picture environment flowchart generated by flow 0.99e +\put(0.0000,-2.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Initialise\\ +st +}}} +\put(2.0000,-2.0000){\vector(0,-1){1.0000}} +\put(2.0000,-4.0000){\oval(4.0000,2.0000)} +\put(0.0000,-5.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +Begin\\ +RootParse +}}} +\put(2.0000,-5.0000){\vector(0,-1){1.0000}} +\put(0.0000,-8.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Initialise\\ +A \& B +}}} +\put(2.0000,-8.0000){\line(0,-1){1.0000}} +\put(2.0000,-9.0000){\vector(0,-1){1.0000}} +\put(0.0000,-12.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Call client\\ +with A, B \& st +}}} +\put(2.0000,-12.0000){\vector(0,-1){1.0000}} +\put(0.0000,-15.0000){\line(1,1){2.0000}} +\put(0.0000,-15.0000){\line(1,-1){2.0000}} +\put(4.0000,-15.0000){\line(-1,-1){2.0000}} +\put(4.0000,-15.0000){\line(-1,1){2.0000}} +\put(0.0000,-17.0000){\makebox(4.0000,4.0000)[c]{\shortstack[c]{ +Is B a\\ +New-Root\\ +Node? +}}} +\put(4.0000,-14.4000){\makebox(0,0)[lt]{Y}} +\put(2.6000,-17.0000){\makebox(0,0)[lb]{N}} +\put(2.0000,-17.0000){\line(0,-1){1.0000}} +\put(2.0000,-18.0000){\vector(0,-1){1.0000}} +\put(0.0000,-21.0000){\line(1,1){2.0000}} +\put(0.0000,-21.0000){\line(1,-1){2.0000}} +\put(4.0000,-21.0000){\line(-1,-1){2.0000}} +\put(4.0000,-21.0000){\line(-1,1){2.0000}} +\put(0.0000,-23.0000){\makebox(4.0000,4.0000)[c]{\shortstack[c]{ +Is B a\\ +Fungi\\ +Node? +}}} +\put(4.0000,-20.4000){\makebox(0,0)[lt]{Y}} +\put(2.6000,-23.0000){\makebox(0,0)[lb]{N}} +\put(2.0000,-23.0000){\line(0,-1){1.0000}} +\put(2.0000,-24.0000){\vector(0,-1){1.0000}} +\put(0.0000,-27.0000){\line(1,1){2.0000}} +\put(0.0000,-27.0000){\line(1,-1){2.0000}} +\put(4.0000,-27.0000){\line(-1,-1){2.0000}} +\put(4.0000,-27.0000){\line(-1,1){2.0000}} +\put(0.0000,-29.0000){\makebox(4.0000,4.0000)[c]{\shortstack[c]{ +Is B the\\ +Current-End\\ +Node? +}}} +\put(0.0000,-26.4000){\makebox(0,0)[rt]{N}} +\put(2.6000,-29.0000){\makebox(0,0)[lb]{Y}} +\put(2.0000,-29.0000){\vector(0,-1){1.0000}} +\put(2.0000,-31.0000){\oval(4.0000,2.0000)} +\put(0.0000,-32.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +Return +}}} +\put(0.0000,-27.0000){\line(-1,0){3.0000}} +\put(-3.0000,-27.0000){\line(0,1){2.0000}} +\put(-3.0000,-25.0000){\vector(0,1){1.0000}} +\put(-5.0000,-24.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Update\\ +direction\\ +data in st +}}} +\put(-3.0000,-22.0000){\vector(0,1){1.0000}} +\put(-5.0000,-21.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +A = B\\ +B = B.next +}}} +\put(-3.0000,-19.0000){\line(0,1){10.0000}} +\put(-3.0000,-9.0000){\vector(1,0){5.0000}} +\put(4.0000,-21.0000){\line(1,0){1.0000}} +\put(5.0000,-21.0000){\vector(1,0){1.0000}} +\put(6.0000,-22.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Adjust fungi\\ +values in st +}}} +\put(8.0000,-22.0000){\line(0,-1){2.0000}} +\put(8.0000,-24.0000){\vector(-1,0){6.0000}} +\put(4.0000,-15.0000){\vector(1,0){1.0000}} +\put(5.0000,-16.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Increment\\ +st order +}}} +\put(9.0000,-15.0000){\vector(1,0){1.0000}} +\put(10.0000,-16.0000){\makebox(4.0000,2.0000)[c]{\shortstack[c]{ +Recursively\\ +call RootParse +}}} +\put(10.3333,-14.0000){\line(1,0){4.0000}} +\put(9.6667,-16.0000){\line(1,0){4.0000}} +\put(9.6667,-16.0000){\line(1,3){0.6667}} +\put(13.6667,-16.0000){\line(1,3){0.6667}} +\put(14.0000,-15.0000){\vector(1,0){1.0000}} +\put(15.0000,-16.0000){\framebox(4.0000,2.0000)[c]{\shortstack[c]{ +Decrement\\ +st order +}}} +\put(17.0000,-16.0000){\line(0,-1){2.0000}} +\put(17.0000,-18.0000){\vector(-1,0){15.0000}} +\put(11.0000,-8.0000){\makebox(4.0000,2.0000)[c]{\shortstack[l]{ +A and B are the node records at the\\ +start and end of the internode being\\ +processed. `st' is a record containing\\ +information about the current fungal\\ +population, position in 3-space, root \\ +order etc. It is cloned during the \\ +recursive descent. +}}} +\end{picture} + +%% end of flow output + +\end{document} |