DESCRIPTION
-----------
-LSystem3d is a experimental Lindenmayer System generator with 3d capabilities,
+LSystem3D is a experimental Lindenmayer System generator with 3D capabilities,
whose main goal is to generate all kinds of plants or whatever fractal
-l-system structures the user desires. For now, LSystem3d is highly under
+L-system structures the user desires. For now, LSystem3D is highly under
development and is considered alpha, that is, lots of things are missing and
it will probably not work 100% accurate.
REQUIREMENTS
------------
-Currently tested in Debian GNU/Linux (Sid) only, but should compile fine on
-other platforms without bigger modification.
+Currently tested on Debian GNU/Linux (Sid) only, but should compile fine on
+other platforms without bigger modifications.
-Necessary libs:
+A fast computer with HW accelerated 3D would be nice.
+
+
+Dependencies:
OpenGL
-GLU
-GLUI User Interface Library
-GLUT (freeglut)
+FOX toolkit
libxml++
-glibmm
USAGE
-----
-Keys:
-
-Esc quit
-+ zoom in
-- zoom out
-y rotate around the y-axis
-Up move camera up
-Down move camera down
-Left move camera left
-Right move camera right
-PageUp move camera forth
-PageDown move camera back
-
+Rendering window:
-Rules:
+Left mouse button: Move model in z-plane
+Middle mouse button: Zoom in/out
+Right mouse button: Rotate around y-axis
-= name/rule separator
-A-Z rewrite operator, step forward
-+ turn left
-- turn right
-& pitch down
-^ pitch up
-\ roll left
-/ roll right
-| turn around 180 degrees
-[ save state to stack
-] restore state from stack
-{ first vertex of a filled surface
-} last vertex of a filled surface
-f one vertex of a filled surface
-! decrement diameter of segment
+Controller window:
-Example:
+Axiom: Initial rule
+Rules: The L-system rules
+Angle: Turn/pitch/roll angle
+Depth: Depth of recursion
+Diameter: Initial diameter of segment
+Factor: For each recursion level, multiply segment diameter with this value
+Generate: Generate the L-system
-The GUI input
-Axiom: A
-Rule #1: A=A/[!+A&A]/A
-Angle: 30.0
-Iterations: 4
+Rules:
-will render a simple l-system and create the xml-structure
+F Walk forward, creating a segment
+A-Z Replacement rule
+A(0.33) Probability factor 0.33 for rule A
+= Rule assignment
++ Turn left
+- Turn right
+& Pitch down
+^ Pitch up
+\ Roll left
+/ Roll right
+| Turn around 180 degrees
+[ Save state to stack
+] Load state from stack
+{ Create a planar surface
+} Close a planar surface
+f One vertex in a planar surface, specified CCW
+! Decrement segment diameter
+' Increment current index to color table
+, Decrement current index to color table
-<?xml version="1.0"?>
-<lsystem>
- <axiom>A</axiom>
- <rule name="A">A/[!+A&A]/A</rule>
- <angle>30.0</angle>
- <iterations>4</iterations>
-</lsystem>
+Example:
-and save it to the file named "lsystem.xml" when quitting. The same file will
-be initially loaded every time LSystem3d is started.
+F(0.33)=[+FL]F/[-FL]F!
+F(0.33)=F[&FL]F!
+F(0.34)=F/[-FL]&F!
+L={,-f++f-|-f++f-'}