| 1 | DESCRIPTION |
| 2 | ----------- |
| 3 | |
| 4 | LSystem3d is a experimental Lindenmayer System generator with 3d capabilities, |
| 5 | whose main goal is to generate all kinds of plants or whatever fractal |
| 6 | l-system structures the user desires. For now, LSystem3d is highly under |
| 7 | development and is considered alpha, that is, lots of things are missing and |
| 8 | it will probably not work 100% accurate. |
| 9 | |
| 10 | |
| 11 | |
| 12 | REQUIREMENTS |
| 13 | ------------ |
| 14 | |
| 15 | Currently tested in Debian GNU/Linux (Sid) only, but should compile fine on |
| 16 | other platforms without bigger modification. |
| 17 | |
| 18 | Necessary libs: |
| 19 | |
| 20 | OpenGL |
| 21 | GLU |
| 22 | GLUI User Interface Library |
| 23 | GLUT (freeglut) |
| 24 | libxml++ |
| 25 | glibmm |
| 26 | |
| 27 | |
| 28 | |
| 29 | USAGE |
| 30 | ----- |
| 31 | |
| 32 | Keys: |
| 33 | |
| 34 | Esc quit |
| 35 | + zoom in |
| 36 | - zoom out |
| 37 | y rotate around the y-axis |
| 38 | Up move camera up |
| 39 | Down move camera down |
| 40 | Left move camera left |
| 41 | Right move camera right |
| 42 | PageUp move camera forth |
| 43 | PageDown move camera back |
| 44 | |
| 45 | |
| 46 | Rules: |
| 47 | |
| 48 | = name/rule separator |
| 49 | A-Z rewrite operator, step forward |
| 50 | + turn left |
| 51 | - turn right |
| 52 | & pitch down |
| 53 | ^ pitch up |
| 54 | \ roll left |
| 55 | / roll right |
| 56 | | turn around 180 degrees |
| 57 | [ save state to stack |
| 58 | ] restore state from stack |
| 59 | { first vertex of a filled surface |
| 60 | } last vertex of a filled surface |
| 61 | f one vertex of a filled surface |
| 62 | ! decrement diameter of segment |
| 63 | |
| 64 | |
| 65 | Example: |
| 66 | |
| 67 | The GUI input |
| 68 | |
| 69 | Axiom: A |
| 70 | Rule #1: A=A/[!+A&A]/A |
| 71 | Angle: 30.0 |
| 72 | Iterations: 4 |
| 73 | |
| 74 | will render a simple l-system and create the xml-structure |
| 75 | |
| 76 | <?xml version="1.0"?> |
| 77 | <lsystem> |
| 78 | <axiom>A</axiom> |
| 79 | <rule name="A">A/[!+A&A]/A</rule> |
| 80 | <angle>30.0</angle> |
| 81 | <iterations>4</iterations> |
| 82 | </lsystem> |
| 83 | |
| 84 | and save it to the file named "lsystem.xml" when quitting. The same file will |
| 85 | be initially loaded every time LSystem3d is started. |