Short: Trees,Plants...from grammars(rayshade)

README.AMIGA  (2nd Version 12.93)
============= 

- To compile Graphtal on the Amiga you need GCC-233, the os-includes 
  and a lot of memory. (compilation without optimizer: about 6MB)
  Don't forget to set a large stack size (256000 is fine) !
  Because AmigaDOS isn't case sensitive you must edit string.h 
  (for more information on this read the header of string.h)
  (NEW) Do also read the file IMPORTANT.README.AMIGA 

- Graphtal has a device for Rayshade output.

- I have include some tools to convert PPM output to IFF24 in bin
  (to convert PPM output to IFF get the the PBM plus package)

- Note: some examples for Graphtal need a lot of memory (over 10MB) !

- Note: Graphtal needs the cpp to process the inputfile.
  (NEW) cpp and sh are now included in the directory Unix

- GCC-233 and Rayshade are available by anonymous FTP in ftp.luth.se 
  or any other Aminet site

- (NEW) Note: setting the environment variable COLORFILE now works
  (see changes in file color.C)

- (NEW) examples how to use graphtal can be found in the file EXAMPLE.SCRIPT


Lucas Ammon (lammon@iamexwi.unibe.ch)


DESCRIPTION
     graphtal is a tool for manipulating  spT0L-systems  (context
     free, table oriented L-systems with stochastic productions).
     graphtal reads a file containing an L-system description and
     starts  the interpretation. In addition, graphtal is able to
     interpret the result graphically, producing different  kinds
     of output.

     The main reference for the program is the book  The  Virtual
     Laboratory:  The Algorithmic Beauty of Plants by P. Prusink-
     iewicz and A. Lindenmayer. The language used in graphtal  is
     different  from  the  one  in the book and will be described
     completely in this document.


DEVICE DRIVERS
  EXAMPLE DEVICE
     The example driver produces a ASCII dump of  the  primitives
     generated.  It shows the easiest way to implement a driver.

  BBOX DEVICE
     The bbox driver computes the bounding box and gives  a  hint
     for  the viewing parameters of the objects defined by the L-
     system description.  This is useful  for  the  flat  device,
     which does no automatic view computations.

  LINE DEVICE (X11,AMIGA)
     This driver generates a simple line drawing  of  the  object
     defined  by  the  L-system.  Line  width,  color,  textures,
     spheres, macros and library object are not supported by this
     driver.  Viewing parameters are automatically set, when none
     are provided by the user.

  WIRE DEVICE (X11,AMIGA)
     The wire device driver draws a more realistic image  of  the
     object  than line device. Not supported are colors, textures
     and  library  objects.   Viewing  parameters  are  also  set
     automatically, when none are provided.

  FLAT DEVICE
     The flat device works with a z-buffer  algorithm,  which  is
     able  to shade convex and concave polygons. Shading calcula-
     tions are done with regard to the light  source  located  at
     the  eyepoint.  The  driver does not depend on the number of
     polygons, therefore even very large scenes  can  be  visual-
     ized.  As a drawback of this feature, the viewing parameters
     have to be provided by the user (use BBOX DEVICE  to  calcu-
     late  them).  Textures and library objects are not supported
     by this driver.  The output of the rendering process  is  an
     image in ppm format (portable pixmap). 


  RAYSHADE DEVICE
     The rayshade device is the most complete of all the drivers.
     It  generates  output for the raytracer rayshade. The driver
     produces at least two output files:

     graphtal -d rayshade anExample.lsys
     generates the files default.ray and default.ray.def

     graphtal -d rayshade -O anExample.ray
     generates the files anExample.ray and anExample.ray.def.

     The file name.ray contains the  options  for  the  rendering
     process  and  in  the name.ray.def file the geometric primi-
     tives are stored.  For each macro definition,  the  rayshade
     driver    produces    it's    own   file   with   the   name
     macrName.ray.def. If library objects are used, a  file  with
     the  name  libraryName.ray.lib  must be provided by the user
     for each object.


AUTHOR
     Christoph Streit (streit@iam.unibe.ch)

AMIGA PORT
     Lucas Ammon (lammon@iamexwi.unibe.ch)


COPYRIGHT NOTICE
     Copyright (C) 1992 Christoph Streit

     All rights reserved.

     This software may be freely copied, modified, and  redistri-
     buted  provided  that  this copyright notice is preserved on
     all copies.

     You may not distribute this software, in whole or  in  part,
     as  part  of any commercial product without the express con-
     sent of the authors.

     There is no warranty or other guarantee of fitness  of  this
     software for any purpose.  It is provided solely "as is".






============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
    3148    1253 60.1% 02-Feb-80 13:36:38  Graphtal.Amiga/AMIGA_Window.C
    1677     723 56.8% 02-Feb-80 13:36:36  Graphtal.Amiga/AMIGA_Window.h
    5371    1613 69.9% 17-Nov-92 09:14:08  Graphtal.Amiga/BaseWindow.C
    2150     893 58.4% 17-Nov-92 09:10:04  Graphtal.Amiga/BaseWindow.h
    1431     649 54.6% 17-Nov-92 09:14:10  Graphtal.Amiga/BBoxDevice.C
    1188     569 52.1% 17-Nov-92 09:10:08  Graphtal.Amiga/BBoxDevice.h
  380672  128268 66.3% 13-Dec-93 00:02:28  Graphtal.Amiga/Bin/graphtal
    7916    4484 43.3% 03-Aug-90 20:21:02  Graphtal.Amiga/Bin/PPMprev
    5416    3510 35.1% 03-Feb-91 20:45:28  Graphtal.Amiga/Bin/PPMto24
     713     384 46.1% 17-Nov-92 09:07:12  Graphtal.Amiga/boolean.h
    1930     708 63.3% 17-Nov-92 09:14:04  Graphtal.Amiga/BoundingBox.C
    1300     571 56.0% 17-Nov-92 09:10:00  Graphtal.Amiga/BoundingBox.h
    2758    1160 57.9% 12-Dec-93 23:49:26  Graphtal.Amiga/Color.C
    1373     638 53.5% 12-Dec-93 21:52:26  Graphtal.Amiga/Color.h
   14715    4324 70.6% 10-Nov-92 08:38:26  Graphtal.Amiga/colors.def
   36688    5820 84.1% 13-Oct-92 10:50:10  Graphtal.Amiga/colors.ray.def
    5473    2042 62.6% 19-Nov-92 09:56:04  Graphtal.Amiga/Cone.C
    1312     641 51.1% 19-Nov-92 09:56:10  Graphtal.Amiga/Cone.h
     465     277 40.4% 27-Oct-92 14:33:12  Graphtal.Amiga/COPYRIGHT
    3813    1541 59.5% 19-Nov-92 09:56:12  Graphtal.Amiga/Cylinder.C
    1184     580 51.0% 19-Nov-92 09:56:18  Graphtal.Amiga/Cylinder.h
    1778     687 61.3% 02-Feb-80 18:48:48  Graphtal.Amiga/DeviceDriver.C
    3075    1165 62.1% 20-Nov-92 08:09:20  Graphtal.Amiga/DeviceDriver.h
    1288     618 52.0% 20-Nov-92 08:22:36  Graphtal.Amiga/Error.C
     873     496 43.1% 20-Nov-92 08:22:42  Graphtal.Amiga/Error.h
    3057     384 87.4% 13-Dec-93 00:00:24  Graphtal.Amiga/EXAMPLE.SCRIPT
    1631     665 59.2% 17-Nov-92 09:13:42  Graphtal.Amiga/ExampleDevice.C
    1106     516 53.3% 17-Nov-92 09:09:36  Graphtal.Amiga/ExampleDevice.h
     571     310 45.7% 02-Nov-92 13:53:08  Graphtal.Amiga/Examples/3D_Hilbert.lsys
     645     356 44.8% 30-Oct-92 14:34:48  Graphtal.Amiga/Examples/aono.lsys
     632     352 44.3% 30-Oct-92 13:02:16  Graphtal.Amiga/Examples/balls.anim.sys
    2639     994 62.3% 03-Nov-92 09:21:22  Graphtal.Amiga/Examples/birchanim
     747     257 65.5% 30-Oct-92 13:45:28  Graphtal.Amiga/Examples/birchleaf1.ray.lib
     747     257 65.5% 30-Oct-92 13:45:40  Graphtal.Amiga/Examples/birchleaf2.ray.lib
     747     257 65.5% 30-Oct-92 13:45:52  Graphtal.Amiga/Examples/birchleaf3.ray.lib
    3280    1115 66.0% 03-Nov-92 13:17:28  Graphtal.Amiga/Examples/birchtree.anim.lsys
    3205    1057 67.0% 10-Nov-92 08:04:26  Graphtal.Amiga/Examples/birchtree.lsys
    3008      70 97.6% 30-Oct-92 14:22:14  Graphtal.Amiga/Examples/birchtrunk.map
    2537     986 61.1% 03-Nov-92 09:21:04  Graphtal.Amiga/Examples/bouncingball
   14715    4324 70.6% 10-Nov-92 08:38:26  Graphtal.Amiga/Examples/colors.def
   36688    5820 84.1% 30-Oct-92 13:46:14  Graphtal.Amiga/Examples/colors.ray.def
    5185    1223 76.4% 17-Nov-92 12:47:48  Graphtal.Amiga/Examples/firtree.lsys
     759     387 49.0% 30-Oct-92 13:59:32  Graphtal.Amiga/Examples/honda.lsys
     646     357 44.7% 02-Nov-92 16:54:18  Graphtal.Amiga/Examples/leaf.lsys
     699     266 61.9% 10-Nov-92 11:28:00  Graphtal.Amiga/Examples/leaf.ray.def
     389     245 37.0% 03-Nov-92 08:57:10  Graphtal.Amiga/Examples/macroDemo.lsys
    2080     696 66.5% 02-Nov-92 15:34:58  Graphtal.Amiga/Examples/mountain.lsys
    4760    1100 76.8% 02-Nov-92 16:27:12  Graphtal.Amiga/Examples/needle.ray.lib
    1581     414 73.8% 10-Nov-92 11:42:20  Graphtal.Amiga/Examples/performance.txt
     858     379 55.8% 02-Nov-92 16:54:28  Graphtal.Amiga/Examples/plant.lsys
     886     402 54.6% 30-Oct-92 15:03:22  Graphtal.Amiga/Examples/roseleaf.lsys
     824     417 49.3% 29-Oct-92 15:50:24  Graphtal.Amiga/Examples/skyscraper.lsys
     297     193 35.0% 30-Oct-92 15:12:38  Graphtal.Amiga/Examples/spiral.lsys
     526     306 41.8% 30-Oct-92 13:18:00  Graphtal.Amiga/Examples/sqrt.lsys
     996     397 60.1% 30-Oct-92 14:43:46  Graphtal.Amiga/Examples/sunflower.lsys
     113      89 21.2% 30-Oct-92 14:45:58  Graphtal.Amiga/Examples/template.lsys
     200     139 30.5% 30-Oct-92 15:10:42  Graphtal.Amiga/Examples/torus.lsys
    2625     990 62.2% 03-Nov-92 09:20:52  Graphtal.Amiga/Examples/treecone
     835     349 58.2% 30-Oct-92 14:20:50  Graphtal.Amiga/Examples/treecone.anim.lsys
    2376     964 59.4% 30-Oct-92 15:14:34  Graphtal.Amiga/Examples/treeWithLeafs.lsys
    1020     488 52.1% 02-Nov-92 13:20:48  Graphtal.Amiga/Examples/treeWithTexture.lsys
    6082    1563 74.3% 26-Aug-93 00:52:16  Graphtal.Amiga/Expression.C
    2823    1070 62.0% 17-Nov-92 09:09:30  Graphtal.Amiga/Expression.h
   13456    2202 83.6% 17-Nov-92 09:13:38  Graphtal.Amiga/ExprItems.C
    7828    1079 86.2% 20-Nov-92 08:17:46  Graphtal.Amiga/ExprItems.h
    6067    2006 66.9% 17-Nov-92 09:13:32  Graphtal.Amiga/FlatDevice.C
    1847     826 55.2% 17-Nov-92 09:09:26  Graphtal.Amiga/FlatDevice.h
    1746     788 54.8% 17-Nov-92 09:13:28  Graphtal.Amiga/GeoObject.C
    1889     745 60.5% 17-Nov-92 09:09:22  Graphtal.Amiga/GeoObject.h
     884     488 44.7% 20-Nov-92 08:11:32  Graphtal.Amiga/globals.h
   24281    9057 62.6% 03-Nov-92 10:02:24  Graphtal.Amiga/graphtal.1
   30857   10021 67.5% 20-Nov-92 12:30:38  Graphtal.Amiga/graphtal.cat
     984     542 44.9% 17-Nov-92 09:13:24  Graphtal.Amiga/Hash.C
     758     415 45.2% 17-Nov-92 09:09:14  Graphtal.Amiga/Hash.h
    2964    1267 57.2% 17-Nov-92 09:13:20  Graphtal.Amiga/Hull.C
    1216     606 50.1% 17-Nov-92 09:09:10  Graphtal.Amiga/Hull.h
     399     228 42.8% 13-Dec-93 00:13:40  Graphtal.Amiga/IMPORTANT.README.AMIGA
   19584    5381 72.5% 17-Nov-92 12:47:56  Graphtal.Amiga/Interpreter.C
    3081    1157 62.4% 20-Nov-92 08:19:04  Graphtal.Amiga/Interpreter.h
   58286   14896 74.4% 20-Nov-92 13:33:16  Graphtal.Amiga/lex.C
    2033     849 58.2% 17-Nov-92 09:11:40  Graphtal.Amiga/LineDevice.C
    1409     649 53.9% 17-Nov-92 09:08:58  Graphtal.Amiga/LineDevice.h
    1923    1055 45.1% 22-Sep-92 12:56:14  Graphtal.Amiga/list.C
    5434    1772 67.3% 28-Oct-92 13:14:48  Graphtal.Amiga/list.h
    6751    2216 67.1% 17-Nov-92 09:11:44  Graphtal.Amiga/LSystem.C
    3457    1257 63.6% 20-Nov-92 08:19:32  Graphtal.Amiga/LSystem.h
    3880    1384 64.3% 09-Mar-93 22:43:48  Graphtal.Amiga/main.C
     925     503 45.6% 13-Dec-93 11:27:44  Graphtal.Amiga/makefile
    3454    1314 61.9% 20-Nov-92 13:48:16  Graphtal.Amiga/Makefile.unix
    4223    1455 65.5% 20-Nov-92 08:25:24  Graphtal.Amiga/MANIFEST
    1229     635 48.3% 02-Feb-80 18:42:28  Graphtal.Amiga/mathutilities.h
     122      80 34.4% 28-Oct-92 13:14:20  Graphtal.Amiga/mkdep
    3117    1097 64.8% 17-Nov-92 09:11:36  Graphtal.Amiga/Module.C
    2898    1140 60.6% 17-Nov-92 09:08:54  Graphtal.Amiga/Module.h
    1737     773 55.4% 20-Nov-92 07:59:48  Graphtal.Amiga/Name.C
    1680     730 56.5% 20-Nov-92 07:59:36  Graphtal.Amiga/Name.h
    5394    1689 68.6% 10-Mar-93 01:21:48  Graphtal.Amiga/Options.C
    1538     674 56.1% 17-Nov-92 09:08:36  Graphtal.Amiga/Options.h
    5049    1744 65.4% 19-Nov-92 09:56:02  Graphtal.Amiga/Plane.C
    1271     613 51.7% 19-Nov-92 09:51:30  Graphtal.Amiga/Plane.h
    2449     906 63.0% 17-Nov-92 09:11:20  Graphtal.Amiga/Polygon.C
    1462     650 55.5% 17-Nov-92 09:08:22  Graphtal.Amiga/Polygon.h
     976     493 49.4% 19-Nov-92 10:12:32  Graphtal.Amiga/Predecessor.C
    1180     564 52.2% 19-Nov-92 15:53:42  Graphtal.Amiga/Predecessor.h
     773     405 47.6% 17-Nov-92 09:08:20  Graphtal.Amiga/Primitives.h
    2970    1202 59.5% 19-Nov-92 10:11:18  Graphtal.Amiga/Production.C
    1842     823 55.3% 20-Nov-92 08:20:02  Graphtal.Amiga/Production.h
    1111     551 50.4% 17-Nov-92 09:11:12  Graphtal.Amiga/Ray.C
    1125     545 51.5% 17-Nov-92 09:08:10  Graphtal.Amiga/Ray.h
    8379    2280 72.7% 17-Nov-92 09:11:08  Graphtal.Amiga/RayshadeDevice.C
    2183     877 59.8% 17-Nov-92 09:08:06  Graphtal.Amiga/RayshadeDevice.h
    5086    1404 72.3% 26-Aug-93 00:54:40  Graphtal.Amiga/rcString.C
    2078     717 65.4% 17-Nov-92 09:07:04  Graphtal.Amiga/rcString.h
    1819     991 45.5% 20-Nov-92 13:47:20  Graphtal.Amiga/README
    6970    1686 75.8% 13-Dec-93 11:19:32  Graphtal.Amiga/README.AMIGA
     251     140 44.2% 04-Sep-92 08:21:30  Graphtal.Amiga/rgb2rayshade.awk
    3398    1423 58.1% 19-Nov-92 09:56:24  Graphtal.Amiga/Sphere.C
    1317     638 51.5% 19-Nov-92 09:56:30  Graphtal.Amiga/Sphere.h
     244     167 31.5% 26-Aug-93 01:06:32  Graphtal.Amiga/string.h
    1575     693 56.0% 19-Nov-92 10:12:00  Graphtal.Amiga/Successor.C
    1207     579 52.0% 19-Nov-92 10:09:56  Graphtal.Amiga/Successor.h
    6640    1944 70.7% 28-Oct-92 13:14:54  Graphtal.Amiga/table.h
    2449    1016 58.5% 19-Nov-92 10:15:22  Graphtal.Amiga/transform.C
     991     472 52.3% 19-Nov-92 10:15:34  Graphtal.Amiga/transform.h
    9889    2557 74.1% 19-Nov-92 10:17:34  Graphtal.Amiga/TransMatrix.C
    2644     922 65.1% 20-Nov-92 08:20:22  Graphtal.Amiga/TransMatrix.h
    2990    1265 57.6% 19-Nov-92 09:56:34  Graphtal.Amiga/Triangle.C
    1346     640 52.4% 20-Nov-92 08:22:26  Graphtal.Amiga/Triangle.h
    6617    2173 67.1% 17-Nov-92 09:10:54  Graphtal.Amiga/Turtle.C
    4258    1382 67.5% 17-Nov-92 09:07:48  Graphtal.Amiga/Turtle.h
  104164   56295 45.9% 10-Aug-92 19:38:18  Graphtal.Amiga/Unix/bin/sh
   87104   36396 58.2% 30-Dec-92 00:34:38  Graphtal.Amiga/Unix/usr/lib/cpp
    6813    1422 79.1% 20-Nov-92 08:00:14  Graphtal.Amiga/Value.C
    1969     762 61.3% 20-Nov-92 08:20:56  Graphtal.Amiga/Value.h
     747     383 48.7% 17-Nov-92 09:10:46  Graphtal.Amiga/ValueStack.C
    1343     636 52.6% 17-Nov-92 09:07:38  Graphtal.Amiga/ValueStack.h
    3986    1188 70.1% 19-Nov-92 10:20:38  Graphtal.Amiga/Vector.C
    2596     906 65.1% 20-Nov-92 08:21:14  Graphtal.Amiga/Vector.h
    3397    1225 63.9% 17-Nov-92 09:10:40  Graphtal.Amiga/ViewTransform.C
    1761     708 59.7% 17-Nov-92 09:07:30  Graphtal.Amiga/ViewTransform.h
    5342    1892 64.5% 17-Nov-92 09:10:36  Graphtal.Amiga/WireDevice.C
    1825     811 55.5% 17-Nov-92 09:07:26  Graphtal.Amiga/WireDevice.h
    4063    1569 61.3% 09-Mar-93 23:00:14  Graphtal.Amiga/X11_Window.C
    1288     636 50.6% 17-Nov-92 09:07:22  Graphtal.Amiga/X11_Window.h
    3308     460 86.0% 14-Sep-92 13:35:34  Graphtal.Amiga/X11_Window_icon
   66154   15683 76.2% 20-Nov-92 13:32:10  Graphtal.Amiga/yacc.C
    1744     678 61.1% 20-Nov-92 13:32:08  Graphtal.Amiga/yacc.tab.h
    1423     697 51.0% 17-Nov-92 09:10:12  Graphtal.Amiga/yyerror.C
     728     405 44.3% 17-Nov-92 09:06:46  Graphtal.Amiga/yyerror.h
    7681    2593 66.2% 26-Aug-93 00:54:38  Graphtal.Amiga/Z_Buffer.C
    1894     829 56.2% 17-Nov-92 09:07:18  Graphtal.Amiga/Z_Buffer.h
-------- ------- ----- --------- --------
 1229422  423380 65.5% 14-Dec-93 15:37:22   151 files
