| 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 on Debian GNU/Linux (Sid) only, but should compile fine on |
| 16 | other platforms without bigger modifications. |
| 17 | |
| 18 | A fast computer with HW accelerated 3D would be nice. |
| 19 | |
| 20 | |
| 21 | Dependencies: |
| 22 | |
| 23 | OpenGL |
| 24 | FOX toolkit |
| 25 | libxml++ |
| 26 | |
| 27 | |
| 28 | |
| 29 | USAGE |
| 30 | ----- |
| 31 | |
| 32 | Rendering window: |
| 33 | |
| 34 | Left mouse button: Move model in z-plane |
| 35 | Middle mouse button: Zoom in/out |
| 36 | Right mouse button: Rotate around y-axis |
| 37 | |
| 38 | |
| 39 | Controller window: |
| 40 | |
| 41 | Axiom: Initial rule |
| 42 | Rules: The L-system rules |
| 43 | Angle: Turn/pitch/roll angle |
| 44 | Depth: Depth of recursion |
| 45 | Diameter: Initial diameter of segment |
| 46 | Factor: For each recursion level, multiply segment diameter with this value |
| 47 | Generate: Generate the L-system |
| 48 | |
| 49 | |
| 50 | Rules: |
| 51 | |
| 52 | F Walk forward, creating a segment |
| 53 | A-Z Replacement rule |
| 54 | A(0.33) Probability factor 0.33 for rule A |
| 55 | = Rule assignment |
| 56 | + Turn left |
| 57 | - Turn right |
| 58 | & Pitch down |
| 59 | ^ Pitch up |
| 60 | \ Roll left |
| 61 | / Roll right |
| 62 | | Turn around 180 degrees |
| 63 | [ Save state to stack |
| 64 | ] Load state from stack |
| 65 | { Create a planar surface |
| 66 | } Close a planar surface |
| 67 | f One vertex in a planar surface, specified CCW |
| 68 | ! Decrement segment diameter |
| 69 | ' Increment current index to color table |
| 70 | , Decrement current index to color table |
| 71 | |
| 72 | Example: |
| 73 | |
| 74 | F(0.33)=[+FL]F/[-FL]F! |
| 75 | F(0.33)=F[&FL]F! |
| 76 | F(0.34)=F/[-FL]&F! |
| 77 | L={,-f++f-|-f++f-'} |