# Process configurations

#

#### AnimationRenderer

**Components**↑ AnimationRenderer- AxiomProvider[AxiomProvider]
- RandomGeneratorProvider[RandomGeneratorProvider]
- LsystemInLsystemProcessor[LsystemInLsystemProcessor]

**Containers**↑ AnimationRenderer- Rewriter[IRewriter] (default [SymbolRewriter])
- Iterator[IIterator] (default [MemoryBufferedIterator])
- InterpreterCaller[IInterpreterCaller] (default [InterpreterCaller])
- Interpreter[IInterpreter] (default [TurtleInterpreter])
- Renderer[IRenderer] (default [PngAnimationRenderer])

**Connections**↑ AnimationRenderer- RandomGeneratorProvider to Iterator.RandomGeneratorProvider
- AxiomProvider to Iterator.AxiomProvider
- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- InterpreterCaller to Iterator.OutputProcessor
- LsystemInLsystemProcessor to InterpreterCaller.LsystemInLsystemProcessor
- Renderer to Interpreter.Renderer

**Gettable properties**↑ AnimationRenderer- Consolidated list of gettable properties from all components (considers default components for containers).
- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
- If set to true, as internal random generator will be used true-random (cryptographic random) generator. For this random generator can not be set any seed and numbers are always unpredictably random. This will cause that measuring and process pass will not be the same and can cause unexpected behavior. Default random generator is pseudo-random generator.

- randomSeed of [RandomGeneratorProvider] (returns constant)
- Random seed for pseudo-random generator to be able to reproduce random L-systems. Do not work if TrueRandom property is set.

- currentIteration of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of current iteration. Zero is axiom (no iteration was done), first iteration have number 1 and last is equal to number of all iterations specified by Iterations property.

- iterations, i of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- origin of [TurtleInterpreter] (returns array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (returns array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (returns array)
- Up vector of "turtle".

- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
**Settable properties**↑ AnimationRenderer- Consolidated list of settable properties from all components (considers default components for containers).
- trueRandom of [RandomGeneratorProvider] (accepts constant)
- If set to true, as internal random generator will be used true-random (cryptographic random) generator. For this random generator can not be set any seed and numbers are always unpredictably random. This will cause that measuring and process pass will not be the same and can cause unexpected behavior. Default random generator is pseudo-random generator.

- randomSeed of [RandomGeneratorProvider] (accepts constant)
- Random seed for pseudo-random generator to be able to reproduce random L-systems. Do not work if TrueRandom property is set.

- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [MemoryBufferedIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [MemoryBufferedIterator] (accepts constant)
- If set to true iterator will send symbols from all iterations to connected interpret. Otherwise only result of last iteration is interpreted.

- interpretEveryIterationFrom of [MemoryBufferedIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be skipped (not interpreted). This field have priority over properties which are saying what iterations to interpret.

- debugInterpretation of [InterpreterCaller] (accepts constant)
- True if print debug information about interpretation converting.

- interpretWhileDebug of [InterpreterCaller] (accepts constant)
- If true, interpreter will interpret symbols while debugging.

- origin of [TurtleInterpreter] (accepts array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (accepts array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (accepts array)
- Up vector of "turtle".

- rotationQuaternion of [TurtleInterpreter] (accepts array)
- Initial rotation of turtle. Only for experienced users.

- initialAngle of [TurtleInterpreter] (accepts constant)
- Initial angle (in degrees) in 2D mode (angle in plane given by forward and up vectors).

- initialLineWidth of [TurtleInterpreter] (accepts constant)
- Initial width of drawn line.

- initialColor of [TurtleInterpreter] (accepts constant or array)
- Initial color of drawn line.

- continuousColoring of [TurtleInterpreter] (accepts constant or array)
- Continuous coloring gradient. If enabled all colors will be ignored and given gradient (or default gradient of rainbow) will be used to continuously color all objects.

- continuousColoringRepeat of [TurtleInterpreter] (accepts constant)
- How many times to repeat the gradient through entire L-system.

- reversePolygonOrder of [TurtleInterpreter] (accepts constant)
- Reverses order of drawn polygons from first-opened last-drawn to first-opened first-drawn. This in only valid when 2D renderer is attached (in 3D is order insignificant).

- tropismVector of [TurtleInterpreter] (accepts array)
- Tropism vector affects drawn or moved lines to derive to tropism vector.

- tropismCoefficient of [TurtleInterpreter] (accepts constant)
- Tropism coefficient affects speed of derivation to tropism vector.

- frameDelay of [PngAnimationRenderer] (accepts constant)
- Delay between frames in seconds.

- margin of [PngAnimationRenderer] (accepts constant or array)
- Margin of result image. Margin is not applied if canvas size is specified, however, it is used as margin for trimmed images (if AutoTrim is true).

- canvasOriginSize of [PngAnimationRenderer] (accepts array)
- When set it overrides measured dimensions of image and uses given values. Setting this value can significantly improve performance because this component will not need measure pass before rendering. However some other component in the system may need the measure pass as well so performance may not be improved.

- scaleOutputToFit of [PngAnimationRenderer] (accepts array)
- When set the output is scaled to fit given rectangle (width and height).

- scale of [PngAnimationRenderer] (accepts constant)
- Scale of result image.

- lineCap of [PngAnimationRenderer] (accepts constant)
- Cap of each rendered line.

- bgColor of [PngAnimationRenderer] (accepts constant or array)
- Background color of rendered image. Some output formats may not support transparent backgrounds.

- outputBitmapType of [PngAnimationRenderer] (accepts constant)
- Type of output bitmap.

- autoTrim of [PngAnimationRenderer] (accepts constant)
- Trims empty areas of the image. This option works only if canvas size and origin is explicitly set (otherwise result image is "trimmed" automatically). Moreover, metadata about original position in non-trimmed image are saved to allow reconstruct original image.

- antiAlias of [PngAnimationRenderer] (accepts constant)
- If set to false rendering will not be "anti-aliased (image may seem to be less detailed). However some images are "blurry" with anti-aliased rendering and also turning off anti-aliasing may improve performance and output size may be significantly smaller.

- trueRandom of [RandomGeneratorProvider] (accepts constant)
**Settable symbol properties**↑ AnimationRenderer- Consolidated list of settable symbol properties from all components (considers default components for containers).
- axiom of [AxiomProvider]
- Initial string of symbols. The value is provided to the connected component.

- Symbols of [AxiomProvider]
- Symbol string which is provided.

- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- List of symbols which are indicating start of branch. This symbols should be identical to symbols which are interpreted as start branch.

- endBranchSymbols of [SymbolRewriter]
- List of symbols which are indicating end of branch. This symbols should be identical to symbols which are interpreted as end branch.

- axiom of [AxiomProvider]
**Connectable properties**↑ AnimationRenderer- Consolidated list of connectable properties from all components (considers default components for containers).
- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- SymbolProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider] {optional}
- Iterator iterates symbols by reading all symbols from SymbolProvider every iteration. Rewriter should be connected as SymbolProvider and rewriters's SymbolProvider should be this Iterator. This setup creates loop and iterator rewrites string of symbols every iteration. When number of iterations is set to 0 (of left default as 0) only axiom is used and this that case this property can be left unconnected.

- AxiomProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider]
- Axiom provider component provides initial string of symbols. All symbols are read at begin of processing.

- OutputProcessor of [MemoryBufferedIterator], connectable type: [ISymbolProcessor]
- Result string of symbols is sent to connected output processor. It should be InterpretrCaller who calls Interpreter and interprets symbols.

- RandomGeneratorProvider of [MemoryBufferedIterator], connectable type: [RandomGeneratorProvider] {optional}
- Connected RandomGeneratorProvider's random generator is rested after each iteration if iterator is configured to do that (ResetRandomAfterEachIteration property is set to true).

- LsystemInLsystemProcessor of [InterpreterCaller], connectable type: [ILsystemInLsystemProcessor] {optional}
- Specialized component to allow interpret L-system symbol as another L-system.

- ExplicitInterpreters of [InterpreterCaller], connectable type: [IInterpreter] {optional} {allowed multiple}
- Renderer of [TurtleInterpreter], connectable type: [IRenderer]
- All render events will be called on connected renderer. Both IRenderer2D or IRenderer3D can be connected.

**Callable functions**↑ AnimationRenderer- Consolidated list of callable functions from all components (considers default components for containers).
- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value from 0.0 (inclusive) to 1.0 (exclusive).
- Parameters: 0

- random (2 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value within specified range.
- Parameters: 2
- The inclusive lower bound of the random number returned.
- The exclusive upper bound of the random number returned.

- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
**Interpretation methods**↑ AnimationRenderer- Consolidated list of interpretation methods from all components (considers default components for containers).
- Nothing of [TurtleInterpreter]
- Symbol is ignored.

- GoTo of [TurtleInterpreter]
- Moves turtle to given position. Rotation (orientation) is not changed. This method can be called both with coordinates as separate arguments or with array containing coordinates.

- MoveForward of [TurtleInterpreter]
- Moves forward in current direction (without drawing) by distance equal to value of the first parameter.

- DrawForward of [TurtleInterpreter]
- Draws line in current direction with length equal to value of first parameter.

- DrawCircle of [TurtleInterpreter]
- Draws circle with center in current position and radius equal to value of the first parameter.

- DrawSphere of [TurtleInterpreter]
- Draws sphere with center in current position and radius equal to value of the first parameter.

- TurnLeft of [TurtleInterpreter]
- Turns left by value of the first parameter (in degrees) (in X-Y plane, around axis Z).

- Yaw of [TurtleInterpreter]
- Turns left around up vector axis (default Y axis [0, 1, 0]) by value given in the first parameter (in degrees).

- Pitch of [TurtleInterpreter]
- Turns up around right-hand vector axis (default Z axis [0, 0, 1]) by value given in the first parameter (in degrees).

- Roll of [TurtleInterpreter]
- Rolls clock-wise around forward vector axis (default X axis [1, 0, 0]) by value given in the first parameter (in degrees).

- StartBranch of [TurtleInterpreter]
- Saves current state (on stack).

- EndBranch of [TurtleInterpreter]
- Loads previously saved state (returns to last saved position).

- StartPolygon of [TurtleInterpreter]
- Starts to record polygon vertices (do not saves current position as first vertex). If another polygon is opened, its state is saved and will be restored after closing of current polygon.

- RecordPolygonVertex of [TurtleInterpreter]
- Records current position to opened polygon.

- EndPolygon of [TurtleInterpreter]
- Ends current polygon (do not saves current position as last vertex).

- Nothing of [TurtleInterpreter]

#

#### BitmapRenderer

**Components**↑ BitmapRenderer- AxiomProvider[AxiomProvider]
- RandomGeneratorProvider[RandomGeneratorProvider]
- LsystemInLsystemProcessor[LsystemInLsystemProcessor]

**Containers**↑ BitmapRenderer- Rewriter[IRewriter] (default [SymbolRewriter])
- Iterator[IIterator] (default [MemoryBufferedIterator])
- InterpreterCaller[IInterpreterCaller] (default [InterpreterCaller])
- Interpreter[IInterpreter] (default [TurtleInterpreter])
- Renderer[IRenderer] (default [GdiBitmapRenderer])

**Connections**↑ BitmapRenderer- RandomGeneratorProvider to Iterator.RandomGeneratorProvider
- AxiomProvider to Iterator.AxiomProvider
- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- InterpreterCaller to Iterator.OutputProcessor
- LsystemInLsystemProcessor to InterpreterCaller.LsystemInLsystemProcessor
- Renderer to Interpreter.Renderer

**Gettable properties**↑ BitmapRenderer- Consolidated list of gettable properties from all components (considers default components for containers).
- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
- If set to true, as internal random generator will be used true-random (cryptographic random) generator. For this random generator can not be set any seed and numbers are always unpredictably random. This will cause that measuring and process pass will not be the same and can cause unexpected behavior. Default random generator is pseudo-random generator.

- randomSeed of [RandomGeneratorProvider] (returns constant)
- Random seed for pseudo-random generator to be able to reproduce random L-systems. Do not work if TrueRandom property is set.

- currentIteration of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of current iteration. Zero is axiom (no iteration was done), first iteration have number 1 and last is equal to number of all iterations specified by Iterations property.

- iterations, i of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- origin of [TurtleInterpreter] (returns array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (returns array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (returns array)
- Up vector of "turtle".

- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
**Settable properties**↑ BitmapRenderer- Consolidated list of settable properties from all components (considers default components for containers).
- trueRandom of [RandomGeneratorProvider] (accepts constant)
- randomSeed of [RandomGeneratorProvider] (accepts constant)
- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [MemoryBufferedIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [MemoryBufferedIterator] (accepts constant)
- If set to true iterator will send symbols from all iterations to connected interpret. Otherwise only result of last iteration is interpreted.

- interpretEveryIterationFrom of [MemoryBufferedIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be skipped (not interpreted). This field have priority over properties which are saying what iterations to interpret.

- debugInterpretation of [InterpreterCaller] (accepts constant)
- True if print debug information about interpretation converting.

- interpretWhileDebug of [InterpreterCaller] (accepts constant)
- If true, interpreter will interpret symbols while debugging.

- origin of [TurtleInterpreter] (accepts array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (accepts array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (accepts array)
- Up vector of "turtle".

- rotationQuaternion of [TurtleInterpreter] (accepts array)
- Initial rotation of turtle. Only for experienced users.

- initialAngle of [TurtleInterpreter] (accepts constant)
- Initial angle (in degrees) in 2D mode (angle in plane given by forward and up vectors).

- initialLineWidth of [TurtleInterpreter] (accepts constant)
- Initial width of drawn line.

- initialColor of [TurtleInterpreter] (accepts constant or array)
- Initial color of drawn line.

- continuousColoring of [TurtleInterpreter] (accepts constant or array)
- Continuous coloring gradient. If enabled all colors will be ignored and given gradient (or default gradient of rainbow) will be used to continuously color all objects.

- continuousColoringRepeat of [TurtleInterpreter] (accepts constant)
- How many times to repeat the gradient through entire L-system.

- reversePolygonOrder of [TurtleInterpreter] (accepts constant)
- Reverses order of drawn polygons from first-opened last-drawn to first-opened first-drawn. This in only valid when 2D renderer is attached (in 3D is order insignificant).

- tropismVector of [TurtleInterpreter] (accepts array)
- Tropism vector affects drawn or moved lines to derive to tropism vector.

- tropismCoefficient of [TurtleInterpreter] (accepts constant)
- Tropism coefficient affects speed of derivation to tropism vector.

- margin of [GdiBitmapRenderer] (accepts constant or array)
- Margin of result image. Margin is not applied if canvas size is specified, however, it is used as margin for trimmed images (if AutoTrim is true).

- canvasOriginSize of [GdiBitmapRenderer] (accepts array)
- When set it overrides measured dimensions of image and uses given values. Setting this value can significantly improve performance because this component will not need measure pass before rendering. However some other component in the system may need the measure pass as well so performance may not be improved.

- scaleOutputToFit of [GdiBitmapRenderer] (accepts array)
- When set the output is scaled to fit given rectangle (width and height).

- scale of [GdiBitmapRenderer] (accepts constant)
- Scale of result image.

- lineCap of [GdiBitmapRenderer] (accepts constant)
- Cap of each rendered line.

- bgColor of [GdiBitmapRenderer] (accepts constant or array)
- Background color of rendered image. Some output formats may not support transparent backgrounds.

- outputBitmapType of [GdiBitmapRenderer] (accepts constant)
- Type of output bitmap.

- autoTrim of [GdiBitmapRenderer] (accepts constant)
- Trims empty areas of the image. This option works only if canvas size and origin is explicitly set (otherwise result image is "trimmed" automatically). Moreover, metadata about original position in non-trimmed image are saved to allow reconstruct original image.

- antiAlias of [GdiBitmapRenderer] (accepts constant)
- If set to false rendering will not be "anti-aliased (image may seem to be less detailed). However some images are "blurry" with anti-aliased rendering and also turning off anti-aliasing may improve performance and output size may be significantly smaller.

- trueRandom of [RandomGeneratorProvider] (accepts constant)
**Settable symbol properties**↑ BitmapRenderer- Consolidated list of settable symbol properties from all components (considers default components for containers).
- axiom of [AxiomProvider]
- Initial string of symbols. The value is provided to the connected component.

- Symbols of [AxiomProvider]
- Symbol string which is provided.

- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- List of symbols which are indicating start of branch. This symbols should be identical to symbols which are interpreted as start branch.

- endBranchSymbols of [SymbolRewriter]
- List of symbols which are indicating end of branch. This symbols should be identical to symbols which are interpreted as end branch.

- axiom of [AxiomProvider]
**Connectable properties**↑ BitmapRenderer- Consolidated list of connectable properties from all components (considers default components for containers).
- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- SymbolProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider] {optional}
- Iterator iterates symbols by reading all symbols from SymbolProvider every iteration. Rewriter should be connected as SymbolProvider and rewriters's SymbolProvider should be this Iterator. This setup creates loop and iterator rewrites string of symbols every iteration. When number of iterations is set to 0 (of left default as 0) only axiom is used and this that case this property can be left unconnected.

- AxiomProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider]
- Axiom provider component provides initial string of symbols. All symbols are read at begin of processing.

- OutputProcessor of [MemoryBufferedIterator], connectable type: [ISymbolProcessor]
- Result string of symbols is sent to connected output processor. It should be InterpretrCaller who calls Interpreter and interprets symbols.

- RandomGeneratorProvider of [MemoryBufferedIterator], connectable type: [RandomGeneratorProvider] {optional}
- Connected RandomGeneratorProvider's random generator is rested after each iteration if iterator is configured to do that (ResetRandomAfterEachIteration property is set to true).

- LsystemInLsystemProcessor of [InterpreterCaller], connectable type: [ILsystemInLsystemProcessor] {optional}
- Specialized component to allow interpret L-system symbol as another L-system.

- ExplicitInterpreters of [InterpreterCaller], connectable type: [IInterpreter] {optional} {allowed multiple}
- Renderer of [TurtleInterpreter], connectable type: [IRenderer]
- All render events will be called on connected renderer. Both IRenderer2D or IRenderer3D can be connected.

**Callable functions**↑ BitmapRenderer- Consolidated list of callable functions from all components (considers default components for containers).
- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value from 0.0 (inclusive) to 1.0 (exclusive).
- Parameters: 0

- random (2 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value within specified range.
- Parameters: 2
- The inclusive lower bound of the random number returned.
- The exclusive upper bound of the random number returned.

- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
**Interpretation methods**↑ BitmapRenderer- Consolidated list of interpretation methods from all components (considers default components for containers).
- Nothing of [TurtleInterpreter]
- Symbol is ignored.

- GoTo of [TurtleInterpreter]
- Moves turtle to given position. Rotation (orientation) is not changed. This method can be called both with coordinates as separate arguments or with array containing coordinates.

- MoveForward of [TurtleInterpreter]
- Moves forward in current direction (without drawing) by distance equal to value of the first parameter.

- DrawForward of [TurtleInterpreter]
- Draws line in current direction with length equal to value of first parameter.

- DrawCircle of [TurtleInterpreter]
- Draws circle with center in current position and radius equal to value of the first parameter.

- DrawSphere of [TurtleInterpreter]
- Draws sphere with center in current position and radius equal to value of the first parameter.

- TurnLeft of [TurtleInterpreter]
- Turns left by value of the first parameter (in degrees) (in X-Y plane, around axis Z).

- Yaw of [TurtleInterpreter]
- Turns left around up vector axis (default Y axis [0, 1, 0]) by value given in the first parameter (in degrees).

- Pitch of [TurtleInterpreter]
- Turns up around right-hand vector axis (default Z axis [0, 0, 1]) by value given in the first parameter (in degrees).

- Roll of [TurtleInterpreter]
- Rolls clock-wise around forward vector axis (default X axis [1, 0, 0]) by value given in the first parameter (in degrees).

- StartBranch of [TurtleInterpreter]
- Saves current state (on stack).

- EndBranch of [TurtleInterpreter]
- Loads previously saved state (returns to last saved position).

- StartPolygon of [TurtleInterpreter]
- Starts to record polygon vertices (do not saves current position as first vertex). If another polygon is opened, its state is saved and will be restored after closing of current polygon.

- RecordPolygonVertex of [TurtleInterpreter]
- Records current position to opened polygon.

- EndPolygon of [TurtleInterpreter]
- Ends current polygon (do not saves current position as last vertex).

- Nothing of [TurtleInterpreter]

#

#### ConstantDumper

**Components**↑ ConstantDumper- Dumper[ConstantsDumper]

**Settable properties**↑ ConstantDumper- Consolidated list of settable properties from all components (considers default components for containers).
- DumpAllConstants of [ConstantsDumper] (accepts constant)
- Default behavior is to print only constants in main input. If this is set to true all constants will be printed.

- DumpAllConstants of [ConstantsDumper] (accepts constant)

#

#### HexAsciiRenderer

**Components**↑ HexAsciiRenderer- AxiomProvider[AxiomProvider]
- RandomGeneratorProvider[RandomGeneratorProvider]
- LsystemInLsystemProcessor[LsystemInLsystemProcessor]

**Containers**↑ HexAsciiRenderer- Rewriter[IRewriter] (default [SymbolRewriter])
- Iterator[IIterator] (default [MemoryBufferedIterator])
- InterpreterCaller[IInterpreterCaller] (default [InterpreterCaller])
- Interpreter[IInterpreter] (default [HexaAsciiInterpreter])
- Renderer[IRenderer] (default [TextRenderer])

**Connections**↑ HexAsciiRenderer- RandomGeneratorProvider to Iterator.RandomGeneratorProvider
- AxiomProvider to Iterator.AxiomProvider
- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- InterpreterCaller to Iterator.OutputProcessor
- LsystemInLsystemProcessor to InterpreterCaller.LsystemInLsystemProcessor
- Renderer to Interpreter.Renderer

**Gettable properties**↑ HexAsciiRenderer- Consolidated list of gettable properties from all components (considers default components for containers).
- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
- randomSeed of [RandomGeneratorProvider] (returns constant)
- currentIteration of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of current iteration. Zero is axiom (no iteration was done), first iteration have number 1 and last is equal to number of all iterations specified by Iterations property.

- iterations, i of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
**Settable properties**↑ HexAsciiRenderer- trueRandom of [RandomGeneratorProvider] (accepts constant)
- randomSeed of [RandomGeneratorProvider] (accepts constant)
- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [MemoryBufferedIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [MemoryBufferedIterator] (accepts constant)
- If set to true iterator will send symbols from all iterations to connected interpret. Otherwise only result of last iteration is interpreted.

- interpretEveryIterationFrom of [MemoryBufferedIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be skipped (not interpreted). This field have priority over properties which are saying what iterations to interpret.

- debugInterpretation of [InterpreterCaller] (accepts constant)
- True if print debug information about interpretation converting.

- interpretWhileDebug of [InterpreterCaller] (accepts constant)
- If true, interpreter will interpret symbols while debugging.

- scale of [HexaAsciiInterpreter] (accepts constant)
- Scale of result ASCII art. Value representing number of characters to draw per line.

- horizontalScaleMultiplier of [HexaAsciiInterpreter] (accepts constant)
- Horizontal scale multiplier is used to multiply number of characters per horizontal line. Default value is 2 because ordinary characters are 2 times taller than wider.

- rightAngleSlashMode of [HexaAsciiInterpreter] (accepts constant)
- If set to true, renderer will draw right angles using slashes only.

- trueRandom of [RandomGeneratorProvider] (accepts constant)
**Settable symbol properties**↑ HexAsciiRenderer- Consolidated list of settable symbol properties from all components (considers default components for containers).
- axiom of [AxiomProvider]
- Initial string of symbols. The value is provided to the connected component.

- Symbols of [AxiomProvider]
- Symbol string which is provided.

- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- List of symbols which are indicating start of branch. This symbols should be identical to symbols which are interpreted as start branch.

- endBranchSymbols of [SymbolRewriter]
- List of symbols which are indicating end of branch. This symbols should be identical to symbols which are interpreted as end branch.

- axiom of [AxiomProvider]
**Connectable properties**↑ HexAsciiRenderer- Consolidated list of connectable properties from all components (considers default components for containers).
- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- SymbolProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider] {optional}
- Iterator iterates symbols by reading all symbols from SymbolProvider every iteration. Rewriter should be connected as SymbolProvider and rewriters's SymbolProvider should be this Iterator. This setup creates loop and iterator rewrites string of symbols every iteration. When number of iterations is set to 0 (of left default as 0) only axiom is used and this that case this property can be left unconnected.

- AxiomProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider]
- Axiom provider component provides initial string of symbols. All symbols are read at begin of processing.

- OutputProcessor of [MemoryBufferedIterator], connectable type: [ISymbolProcessor]
- Result string of symbols is sent to connected output processor. It should be InterpretrCaller who calls Interpreter and interprets symbols.

- RandomGeneratorProvider of [MemoryBufferedIterator], connectable type: [RandomGeneratorProvider] {optional}
- Connected RandomGeneratorProvider's random generator is rested after each iteration if iterator is configured to do that (ResetRandomAfterEachIteration property is set to true).

- LsystemInLsystemProcessor of [InterpreterCaller], connectable type: [ILsystemInLsystemProcessor] {optional}
- Specialized component to allow interpret L-system symbol as another L-system.

- ExplicitInterpreters of [InterpreterCaller], connectable type: [IInterpreter] {optional} {allowed multiple}
- Renderer of [HexaAsciiInterpreter], connectable type: [IRenderer]
- Render for rendering of ASCII art. Connected renderer must implement ITextRenderer interface.

**Callable functions**↑ HexAsciiRenderer- Consolidated list of callable functions from all components (considers default components for containers).
- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value from 0.0 (inclusive) to 1.0 (exclusive).
- Parameters: 0

- random (2 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value within specified range.
- Parameters: 2
- The inclusive lower bound of the random number returned.
- The exclusive upper bound of the random number returned.

- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
**Interpretation methods**↑ HexAsciiRenderer- Consolidated list of interpretation methods from all components (considers default components for containers).
- Nothing of [HexaAsciiInterpreter]
- Symbol is ignored.

- MoveForward of [HexaAsciiInterpreter]
- Moves forward (without drawing) by one tile in current direction.

- DrawLine of [HexaAsciiInterpreter]
- Draws line (from characters) in current direction.

- TurnLeft of [HexaAsciiInterpreter]
- Turns left by 60 degrees.

- TurnRight of [HexaAsciiInterpreter]
- Turns right by 60 degrees.

- TurnAround of [HexaAsciiInterpreter]
- Turns by 180 degrees.

- StartBranch of [HexaAsciiInterpreter]
- Saves current state (on stack).

- EndBranch of [HexaAsciiInterpreter]
- Loads previously saved state (returns to last saved position).

- Nothing of [HexaAsciiInterpreter]

#

#### InnerLsystemConfig

**Components**↑ InnerLsystemConfig- Rewriter[SymbolRewriter]
- Iterator[InnerLsystemIterator]
- InterpreterCaller[InterpreterCaller]

**Connections**↑ InnerLsystemConfig- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- InterpreterCaller to Iterator.OutputProcessor
- __this__ to InterpreterCaller.LsystemInLsystemProcessor{virtual}

**Gettable properties**↑ InnerLsystemConfig- currentIteration of [InnerLsystemIterator] {run-time only} (returns constant)
- iterations, i of [InnerLsystemIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- currentIteration of [InnerLsystemIterator] {run-time only} (returns constant)
**Settable properties**↑ InnerLsystemConfig- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [InnerLsystemIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [InnerLsystemIterator] (accepts constant)
- interpretEveryIterationFrom of [InnerLsystemIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [InnerLsystemIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [InnerLsystemIterator] (accepts array)
- debugInterpretation of [InterpreterCaller] (accepts constant)
- True if print debug information about interpretation converting.

- interpretWhileDebug of [InterpreterCaller] (accepts constant)
- If true, interpreter will interpret symbols while debugging.

- reportStatistics of [SymbolRewriter] (accepts constant)
**Settable symbol properties**↑ InnerLsystemConfig- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- endBranchSymbols of [SymbolRewriter]
- axiom of [InnerLsystemIterator] {mandatory}
- Axiom is directly in iterator to optimize number of components.

- contextIgnore of [SymbolRewriter]
**Connectable properties**↑ InnerLsystemConfig- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- AxiomProvider of [InnerLsystemIterator], connectable type: [ISymbolProvider] {optional}
- To allow not connecting AxiomProvider component.

- SymbolProvider of [InnerLsystemIterator], connectable type: [ISymbolProvider] {optional}
- OutputProcessor of [InnerLsystemIterator], connectable type: [ISymbolProcessor]
- RandomGeneratorProvider of [InnerLsystemIterator], connectable type: [RandomGeneratorProvider] {optional}
- LsystemInLsystemProcessor of [InterpreterCaller], connectable type: [ILsystemInLsystemProcessor] {optional}
- Specialized component to allow interpret L-system symbol as another L-system.

#

#### ObjExporter

**Components**↑ ObjExporter- AxiomProvider[AxiomProvider]
- RandomGeneratorProvider[RandomGeneratorProvider]
- LsystemInLsystemProcessor[LsystemInLsystemProcessor]

**Containers**↑ ObjExporter- Rewriter[IRewriter] (default [SymbolRewriter])
- Iterator[IIterator] (default [MemoryBufferedIterator])
- InterpreterCaller[IInterpreterCaller] (default [InterpreterCaller])
- Interpreter[IInterpreter] (default [TurtleInterpreter])
- Renderer[IRenderer] (default [ObjExporter3D])

**Connections**↑ ObjExporter- RandomGeneratorProvider to Iterator.RandomGeneratorProvider
- AxiomProvider to Iterator.AxiomProvider
- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- InterpreterCaller to Iterator.OutputProcessor
- LsystemInLsystemProcessor to InterpreterCaller.LsystemInLsystemProcessor
- Renderer to Interpreter.Renderer

**Gettable properties**↑ ObjExporter- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
- randomSeed of [RandomGeneratorProvider] (returns constant)
- currentIteration of [MemoryBufferedIterator] {run-time only} (returns constant)
- iterations, i of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- origin of [TurtleInterpreter] (returns array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (returns array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (returns array)
- Up vector of "turtle".

- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
**Settable properties**↑ ObjExporter- trueRandom of [RandomGeneratorProvider] (accepts constant)
- randomSeed of [RandomGeneratorProvider] (accepts constant)
- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [MemoryBufferedIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [MemoryBufferedIterator] (accepts constant)
- interpretEveryIterationFrom of [MemoryBufferedIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [MemoryBufferedIterator] (accepts array)
- debugInterpretation of [InterpreterCaller] (accepts constant)
- True if print debug information about interpretation converting.

- interpretWhileDebug of [InterpreterCaller] (accepts constant)
- If true, interpreter will interpret symbols while debugging.

- origin of [TurtleInterpreter] (accepts array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (accepts array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (accepts array)
- Up vector of "turtle".

- rotationQuaternion of [TurtleInterpreter] (accepts array)
- Initial rotation of turtle. Only for experienced users.

- initialAngle of [TurtleInterpreter] (accepts constant)
- Initial angle (in degrees) in 2D mode (angle in plane given by forward and up vectors).

- initialLineWidth of [TurtleInterpreter] (accepts constant)
- Initial width of drawn line.

- initialColor of [TurtleInterpreter] (accepts constant or array)
- Initial color of drawn line.

- continuousColoring of [TurtleInterpreter] (accepts constant or array)
- Continuous coloring gradient. If enabled all colors will be ignored and given gradient (or default gradient of rainbow) will be used to continuously color all objects.

- continuousColoringRepeat of [TurtleInterpreter] (accepts constant)
- How many times to repeat the gradient through entire L-system.

- reversePolygonOrder of [TurtleInterpreter] (accepts constant)
- Reverses order of drawn polygons from first-opened last-drawn to first-opened first-drawn. This in only valid when 2D renderer is attached (in 3D is order insignificant).

- tropismVector of [TurtleInterpreter] (accepts array)
- Tropism vector affects drawn or moved lines to derive to tropism vector.

- tropismCoefficient of [TurtleInterpreter] (accepts constant)
- Tropism coefficient affects speed of derivation to tropism vector.

- polygonTriangulationStrategy of [ObjExporter3D] (accepts constant)
- Polygon triangulation strategy.

- addSuffixToFileNames of [ObjExporter3D] (accepts constant)
- detectPlanarPloygons of [ObjExporter3D] (accepts constant)
- Set to false to turn off (crappy) detection of planar polygons and potentially speedup processing.

- cameraPosition of [ObjExporter3D] (accepts array)
- Camera position. If not set it is counted automatically.

- cameraUpVector of [ObjExporter3D] (accepts array)
- Camera up vector.

- cameraTarget of [ObjExporter3D] (accepts array)
- Camera target. If not set it is counted automatically.

- bgColor of [ObjExporter3D] (accepts constant or array)
- Background color of rendered image. Some output formats may not support transparent backgrounds.

- trueRandom of [RandomGeneratorProvider] (accepts constant)
**Settable symbol properties**↑ ObjExporter- axiom of [AxiomProvider]
- Initial string of symbols. The value is provided to the connected component.

- Symbols of [AxiomProvider]
- Symbol string which is provided.

- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- endBranchSymbols of [SymbolRewriter]

- axiom of [AxiomProvider]
**Connectable properties**↑ ObjExporter- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- SymbolProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider] {optional}
- AxiomProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider]
- OutputProcessor of [MemoryBufferedIterator], connectable type: [ISymbolProcessor]
- RandomGeneratorProvider of [MemoryBufferedIterator], connectable type: [RandomGeneratorProvider] {optional}
- LsystemInLsystemProcessor of [InterpreterCaller], connectable type: [ILsystemInLsystemProcessor] {optional}
- Specialized component to allow interpret L-system symbol as another L-system.

- Renderer of [TurtleInterpreter], connectable type: [IRenderer]
- All render events will be called on connected renderer. Both IRenderer2D or IRenderer3D can be connected.

**Callable functions**↑ ObjExporter- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value from 0.0 (inclusive) to 1.0 (exclusive).
- Parameters: 0

- random (2 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value within specified range.
- Parameters: 2
- The inclusive lower bound of the random number returned.
- The exclusive upper bound of the random number returned.

- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
**Interpretation methods**↑ ObjExporter- Nothing of [TurtleInterpreter]
- Symbol is ignored.

- GoTo of [TurtleInterpreter]
- Moves turtle to given position. Rotation (orientation) is not changed. This method can be called both with coordinates as separate arguments or with array containing coordinates.

- MoveForward of [TurtleInterpreter]
- Moves forward in current direction (without drawing) by distance equal to value of the first parameter.

- DrawForward of [TurtleInterpreter]
- Draws line in current direction with length equal to value of first parameter.

- DrawCircle of [TurtleInterpreter]
- Draws circle with center in current position and radius equal to value of the first parameter.

- DrawSphere of [TurtleInterpreter]
- Draws sphere with center in current position and radius equal to value of the first parameter.

- TurnLeft of [TurtleInterpreter]
- Turns left by value of the first parameter (in degrees) (in X-Y plane, around axis Z).

- Yaw of [TurtleInterpreter]
- Turns left around up vector axis (default Y axis [0, 1, 0]) by value given in the first parameter (in degrees).

- Pitch of [TurtleInterpreter]
- Turns up around right-hand vector axis (default Z axis [0, 0, 1]) by value given in the first parameter (in degrees).

- Roll of [TurtleInterpreter]
- Rolls clock-wise around forward vector axis (default X axis [1, 0, 0]) by value given in the first parameter (in degrees).

- StartBranch of [TurtleInterpreter]
- Saves current state (on stack).

- EndBranch of [TurtleInterpreter]
- Loads previously saved state (returns to last saved position).

- StartPolygon of [TurtleInterpreter]
- Starts to record polygon vertices (do not saves current position as first vertex). If another polygon is opened, its state is saved and will be restored after closing of current polygon.

- RecordPolygonVertex of [TurtleInterpreter]
- Records current position to opened polygon.

- EndPolygon of [TurtleInterpreter]
- Ends current polygon (do not saves current position as last vertex).

- Nothing of [TurtleInterpreter]

#

#### SvgRenderer

**Components**↑ SvgRenderer- AxiomProvider[AxiomProvider]
- RandomGeneratorProvider[RandomGeneratorProvider]
- LsystemInLsystemProcessor[LsystemInLsystemProcessor]

**Containers**↑ SvgRenderer- Rewriter[IRewriter] (default [SymbolRewriter])
- Iterator[IIterator] (default [MemoryBufferedIterator])
- InterpreterCaller[IInterpreterCaller] (default [InterpreterCaller])
- Interpreter[IInterpreter] (default [TurtleInterpreter])
- Renderer[IRenderer] (default [SvgRenderer2D])

**Connections**↑ SvgRenderer- RandomGeneratorProvider to Iterator.RandomGeneratorProvider
- AxiomProvider to Iterator.AxiomProvider
- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- InterpreterCaller to Iterator.OutputProcessor
- LsystemInLsystemProcessor to InterpreterCaller.LsystemInLsystemProcessor
- Renderer to Interpreter.Renderer

**Gettable properties**↑ SvgRenderer- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
- randomSeed of [RandomGeneratorProvider] (returns constant)
- currentIteration of [MemoryBufferedIterator] {run-time only} (returns constant)
- iterations, i of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- origin of [TurtleInterpreter] (returns array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (returns array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (returns array)
- Up vector of "turtle".

- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
**Settable properties**↑ SvgRenderer- trueRandom of [RandomGeneratorProvider] (accepts constant)
- randomSeed of [RandomGeneratorProvider] (accepts constant)
- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [MemoryBufferedIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [MemoryBufferedIterator] (accepts constant)
- interpretEveryIterationFrom of [MemoryBufferedIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [MemoryBufferedIterator] (accepts array)
- debugInterpretation of [InterpreterCaller] (accepts constant)
- True if print debug information about interpretation converting.

- interpretWhileDebug of [InterpreterCaller] (accepts constant)
- If true, interpreter will interpret symbols while debugging.

- origin of [TurtleInterpreter] (accepts array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (accepts array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (accepts array)
- Up vector of "turtle".

- rotationQuaternion of [TurtleInterpreter] (accepts array)
- Initial rotation of turtle. Only for experienced users.

- initialAngle of [TurtleInterpreter] (accepts constant)
- Initial angle (in degrees) in 2D mode (angle in plane given by forward and up vectors).

- initialLineWidth of [TurtleInterpreter] (accepts constant)
- Initial width of drawn line.

- initialColor of [TurtleInterpreter] (accepts constant or array)
- Initial color of drawn line.

- continuousColoring of [TurtleInterpreter] (accepts constant or array)
- continuousColoringRepeat of [TurtleInterpreter] (accepts constant)
- How many times to repeat the gradient through entire L-system.

- reversePolygonOrder of [TurtleInterpreter] (accepts constant)
- tropismVector of [TurtleInterpreter] (accepts array)
- Tropism vector affects drawn or moved lines to derive to tropism vector.

- tropismCoefficient of [TurtleInterpreter] (accepts constant)
- Tropism coefficient affects speed of derivation to tropism vector.

- margin of [SvgRenderer2D] (accepts constant or array)
- Margin of result image. Margin is not applied if canvas size is specified.

- canvasOriginSize of [SvgRenderer2D] (accepts array)
- When set it overrides measured dimensions of image and uses given values. Setting this value can significantly improve performance because this component will not need measure pass before rendering. However some other component in the system may need the measure pass as well so performance may not be improved.

- scaleOutputToFit of [SvgRenderer2D] (accepts array)
- When set the output is scaled to fit given rectangle (width and height).

- compressSvg of [SvgRenderer2D] (accepts constant)
- If set to true result SVG image is compressed by GZip (resulting in SVGZ). GZipped SVG images are standard and all programs supporting SVG should be able to open it. GZipping SVG significantly reduces its size.

- optimizeSvg of [SvgRenderer2D] (accepts constant)
- If set to true, renderer will try to optimize result SVG markup to be as smallest as possible. Optimized and un-optimized SVGs might be rendered slightly differently.

- overoptimizeSvg of [SvgRenderer2D] (accepts constant)
- If set to true, renderer will try to group elements to save as much characters as possible. This will change z-order of rendered shapes and it is likely that over-optimized SVG will be rendered differently than non-optimized.

- scale of [SvgRenderer2D] (accepts constant)
- Scale of result image.

- lineCap of [SvgRenderer2D] (accepts constant)
- Cap of each rendered line.

- outputSignificantDigitsCount of [SvgRenderer2D] (accepts constant)
- Number of significant digits in of printed coordinates.

- bgColor of [SvgRenderer2D] (accepts constant or array)
- Background color of rendered image.

- trueRandom of [RandomGeneratorProvider] (accepts constant)
**Settable symbol properties**↑ SvgRenderer- axiom of [AxiomProvider]
- Initial string of symbols. The value is provided to the connected component.

- Symbols of [AxiomProvider]
- Symbol string which is provided.

- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- endBranchSymbols of [SymbolRewriter]

- axiom of [AxiomProvider]
**Connectable properties**↑ SvgRenderer- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- SymbolProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider] {optional}
- AxiomProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider]
- OutputProcessor of [MemoryBufferedIterator], connectable type: [ISymbolProcessor]
- RandomGeneratorProvider of [MemoryBufferedIterator], connectable type: [RandomGeneratorProvider] {optional}
- LsystemInLsystemProcessor of [InterpreterCaller], connectable type: [ILsystemInLsystemProcessor] {optional}
- Specialized component to allow interpret L-system symbol as another L-system.

- Renderer of [TurtleInterpreter], connectable type: [IRenderer]

**Callable functions**↑ SvgRenderer- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value from 0.0 (inclusive) to 1.0 (exclusive).
- Parameters: 0

- random (2 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value within specified range.
- Parameters: 2
- The inclusive lower bound of the random number returned.
- The exclusive upper bound of the random number returned.

- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
**Interpretation methods**↑ SvgRenderer- Nothing of [TurtleInterpreter]
- Symbol is ignored.

- GoTo of [TurtleInterpreter]
- MoveForward of [TurtleInterpreter]
- DrawForward of [TurtleInterpreter]
- Draws line in current direction with length equal to value of first parameter.

- DrawCircle of [TurtleInterpreter]
- Draws circle with center in current position and radius equal to value of the first parameter.

- DrawSphere of [TurtleInterpreter]
- Draws sphere with center in current position and radius equal to value of the first parameter.

- TurnLeft of [TurtleInterpreter]
- Turns left by value of the first parameter (in degrees) (in X-Y plane, around axis Z).

- Yaw of [TurtleInterpreter]
- Pitch of [TurtleInterpreter]
- Roll of [TurtleInterpreter]
- StartBranch of [TurtleInterpreter]
- Saves current state (on stack).

- EndBranch of [TurtleInterpreter]
- Loads previously saved state (returns to last saved position).

- StartPolygon of [TurtleInterpreter]
- RecordPolygonVertex of [TurtleInterpreter]
- Records current position to opened polygon.

- EndPolygon of [TurtleInterpreter]
- Ends current polygon (do not saves current position as last vertex).

- Nothing of [TurtleInterpreter]

#

#### SymbolPrinter

**Components**↑ SymbolPrinter- AxiomProvider[AxiomProvider]
- RandomGeneratorProvider[RandomGeneratorProvider]

**Containers**↑ SymbolPrinter- Rewriter[IRewriter] (default [SymbolRewriter])
- Iterator[IIterator] (default [MemoryBufferedIterator])
- SymbolProcessor[ISymbolProcessor] (default [SymbolsSaver])

**Connections**↑ SymbolPrinter- RandomGeneratorProvider to Iterator.RandomGeneratorProvider
- AxiomProvider to Iterator.AxiomProvider
- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- SymbolProcessor to Iterator.OutputProcessor

**Gettable properties**↑ SymbolPrinter- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
- randomSeed of [RandomGeneratorProvider] (returns constant)
- currentIteration of [MemoryBufferedIterator] {run-time only} (returns constant)
- iterations, i of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
**Settable properties**↑ SymbolPrinter- trueRandom of [RandomGeneratorProvider] (accepts constant)
- randomSeed of [RandomGeneratorProvider] (accepts constant)
- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [MemoryBufferedIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [MemoryBufferedIterator] (accepts constant)
- interpretEveryIterationFrom of [MemoryBufferedIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [MemoryBufferedIterator] (accepts array)

- trueRandom of [RandomGeneratorProvider] (accepts constant)
**Settable symbol properties**↑ SymbolPrinter- axiom of [AxiomProvider]
- Initial string of symbols. The value is provided to the connected component.

- Symbols of [AxiomProvider]
- Symbol string which is provided.

- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- endBranchSymbols of [SymbolRewriter]

- axiom of [AxiomProvider]
**Connectable properties**↑ SymbolPrinter- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- SymbolProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider] {optional}
- AxiomProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider]
- OutputProcessor of [MemoryBufferedIterator], connectable type: [ISymbolProcessor]
- RandomGeneratorProvider of [MemoryBufferedIterator], connectable type: [RandomGeneratorProvider] {optional}

**Callable functions**↑ SymbolPrinter- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value from 0.0 (inclusive) to 1.0 (exclusive).
- Parameters: 0

- random (2 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value within specified range.
- Parameters: 2
- The inclusive lower bound of the random number returned.
- The exclusive upper bound of the random number returned.

- random (0 parameters) of [RandomGeneratorProvider] (returns constant)

#

#### ThreeJsRenderer

**Components**↑ ThreeJsRenderer- AxiomProvider[AxiomProvider]
- RandomGeneratorProvider[RandomGeneratorProvider]
- LsystemInLsystemProcessor[LsystemInLsystemProcessor]

**Containers**↑ ThreeJsRenderer- Rewriter[IRewriter] (default [SymbolRewriter])
- Iterator[IIterator] (default [MemoryBufferedIterator])
- InterpreterCaller[IInterpreterCaller] (default [InterpreterCaller])
- Interpreter[IInterpreter] (default [TurtleInterpreter])
- Renderer[IRenderer] (default [ObjExporter3D])

**Connections**↑ ThreeJsRenderer- RandomGeneratorProvider to Iterator.RandomGeneratorProvider
- AxiomProvider to Iterator.AxiomProvider
- Iterator to Rewriter.SymbolProvider
- Rewriter to Iterator.SymbolProvider
- InterpreterCaller to Iterator.OutputProcessor
- LsystemInLsystemProcessor to InterpreterCaller.LsystemInLsystemProcessor
- Renderer to Interpreter.Renderer

**Gettable properties**↑ ThreeJsRenderer- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
- randomSeed of [RandomGeneratorProvider] (returns constant)
- currentIteration of [MemoryBufferedIterator] {run-time only} (returns constant)
- iterations, i of [MemoryBufferedIterator] {run-time only} (returns constant)
- Number of iterations to do with current L-system.

- origin of [TurtleInterpreter] (returns array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (returns array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (returns array)
- Up vector of "turtle".

- trueRandom of [RandomGeneratorProvider] {run-time only} (returns constant)
**Settable properties**↑ ThreeJsRenderer- trueRandom of [RandomGeneratorProvider] (accepts constant)
- randomSeed of [RandomGeneratorProvider] (accepts constant)
- reportStatistics of [SymbolRewriter] (accepts constant)
- Set to true to report statistics.

- iterations, i of [MemoryBufferedIterator] (accepts constant)
- Number of iterations to do with current L-system.

- interpretEveryIteration of [MemoryBufferedIterator] (accepts constant)
- interpretEveryIterationFrom of [MemoryBufferedIterator] (accepts constant)
- Sets interprets all iteration from given number.

- interpretFollowingIterations of [MemoryBufferedIterator] (accepts array)
- Array with numbers of iterations which will be interpreted.

- skipFollowingIterations of [MemoryBufferedIterator] (accepts array)
- debugInterpretation of [InterpreterCaller] (accepts constant)
- True if print debug information about interpretation converting.

- interpretWhileDebug of [InterpreterCaller] (accepts constant)
- If true, interpreter will interpret symbols while debugging.

- origin of [TurtleInterpreter] (accepts array)
- Origin (start position) of "turtle".

- forwardVector of [TurtleInterpreter] (accepts array)
- Forward vector of "turtle".

- upVector of [TurtleInterpreter] (accepts array)
- Up vector of "turtle".

- rotationQuaternion of [TurtleInterpreter] (accepts array)
- Initial rotation of turtle. Only for experienced users.

- initialAngle of [TurtleInterpreter] (accepts constant)
- Initial angle (in degrees) in 2D mode (angle in plane given by forward and up vectors).

- initialLineWidth of [TurtleInterpreter] (accepts constant)
- Initial width of drawn line.

- initialColor of [TurtleInterpreter] (accepts constant or array)
- Initial color of drawn line.

- continuousColoring of [TurtleInterpreter] (accepts constant or array)
- continuousColoringRepeat of [TurtleInterpreter] (accepts constant)
- How many times to repeat the gradient through entire L-system.

- reversePolygonOrder of [TurtleInterpreter] (accepts constant)
- tropismVector of [TurtleInterpreter] (accepts array)
- Tropism vector affects drawn or moved lines to derive to tropism vector.

- tropismCoefficient of [TurtleInterpreter] (accepts constant)
- Tropism coefficient affects speed of derivation to tropism vector.

- polygonTriangulationStrategy of [ObjExporter3D] (accepts constant)
- Polygon triangulation strategy.

- addSuffixToFileNames of [ObjExporter3D] (accepts constant)
- detectPlanarPloygons of [ObjExporter3D] (accepts constant)
- Set to false to turn off (crappy) detection of planar polygons and potentially speedup processing.

- cameraPosition of [ObjExporter3D] (accepts array)
- Camera position. If not set it is counted automatically.

- cameraUpVector of [ObjExporter3D] (accepts array)
- Camera up vector.

- cameraTarget of [ObjExporter3D] (accepts array)
- Camera target. If not set it is counted automatically.

- bgColor of [ObjExporter3D] (accepts constant or array)
- Background color of rendered image. Some output formats may not support transparent backgrounds.

- trueRandom of [RandomGeneratorProvider] (accepts constant)
**Settable symbol properties**↑ ThreeJsRenderer- axiom of [AxiomProvider]
- Initial string of symbols. The value is provided to the connected component.

- Symbols of [AxiomProvider]
- Symbol string which is provided.

- contextIgnore of [SymbolRewriter]
- List of symbols which are ignored in context checking.

- startBranchSymbols of [SymbolRewriter]
- endBranchSymbols of [SymbolRewriter]

- axiom of [AxiomProvider]
**Connectable properties**↑ ThreeJsRenderer- SymbolProvider of [SymbolRewriter], connectable type: [ISymbolProvider]
- SymbolProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider] {optional}
- AxiomProvider of [MemoryBufferedIterator], connectable type: [ISymbolProvider]
- OutputProcessor of [MemoryBufferedIterator], connectable type: [ISymbolProcessor]
- RandomGeneratorProvider of [MemoryBufferedIterator], connectable type: [RandomGeneratorProvider] {optional}
- LsystemInLsystemProcessor of [InterpreterCaller], connectable type: [ILsystemInLsystemProcessor] {optional}
- Specialized component to allow interpret L-system symbol as another L-system.

- Renderer of [TurtleInterpreter], connectable type: [IRenderer]

**Callable functions**↑ ThreeJsRenderer- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value from 0.0 (inclusive) to 1.0 (exclusive).
- Parameters: 0

- random (2 parameters) of [RandomGeneratorProvider] (returns constant)
- Returns random value within specified range.
- Parameters: 2
- The inclusive lower bound of the random number returned.
- The exclusive upper bound of the random number returned.

- random (0 parameters) of [RandomGeneratorProvider] (returns constant)
**Interpretation methods**↑ ThreeJsRenderer- Nothing of [TurtleInterpreter]
- Symbol is ignored.

- GoTo of [TurtleInterpreter]
- MoveForward of [TurtleInterpreter]
- DrawForward of [TurtleInterpreter]
- Draws line in current direction with length equal to value of first parameter.

- DrawCircle of [TurtleInterpreter]
- Draws circle with center in current position and radius equal to value of the first parameter.

- DrawSphere of [TurtleInterpreter]
- Draws sphere with center in current position and radius equal to value of the first parameter.

- TurnLeft of [TurtleInterpreter]
- Turns left by value of the first parameter (in degrees) (in X-Y plane, around axis Z).

- Yaw of [TurtleInterpreter]
- Pitch of [TurtleInterpreter]
- Roll of [TurtleInterpreter]
- StartBranch of [TurtleInterpreter]
- Saves current state (on stack).

- EndBranch of [TurtleInterpreter]
- Loads previously saved state (returns to last saved position).

- StartPolygon of [TurtleInterpreter]
- RecordPolygonVertex of [TurtleInterpreter]
- Records current position to opened polygon.

- EndPolygon of [TurtleInterpreter]
- Ends current polygon (do not saves current position as last vertex).

- Nothing of [TurtleInterpreter]