Godot Nature of Code  1.2.0
Nature of Code implemented in Godot Engine
Public Member Functions | Public Attributes | Protected Member Functions | Properties | List of all members
Fractals.LSystem Class Reference

L-System. More...

Inheritance diagram for Fractals.LSystem:
Fractals.StochasticLSystem

Public Member Functions

void GenerateOne ()
 Generate one generation. More...
 

Public Attributes

string Current
 Current string. More...
 
List< LSystemRuleRules
 Rules. More...
 

Protected Member Functions

List< LSystemRuleGetMatchingRules (char letter)
 Get matching rules for a letter. More...
 
virtual string ApplyRules (char letter)
 Apply rules on a letter. More...
 

Properties

int Generation [get]
 Generation count. More...
 

Detailed Description

L-System.

Definition at line 10 of file LSystem.cs.

Member Function Documentation

◆ ApplyRules()

virtual string Fractals.LSystem.ApplyRules ( char  letter)
inlineprotectedvirtual

Apply rules on a letter.

Parameters
letterLetter
Returns
Output text.

Reimplemented in Fractals.StochasticLSystem.

Definition at line 63 of file LSystem.cs.

64  {
65  var matchingRules = GetMatchingRules(letter);
66  if (matchingRules.Count > 0)
67  {
68  return matchingRules[0].Output;
69  }
70 
71  return letter.ToString();
72  }
List< LSystemRule > GetMatchingRules(char letter)
Get matching rules for a letter.
Definition: LSystem.cs:43

◆ GenerateOne()

void Fractals.LSystem.GenerateOne ( )
inline

Generate one generation.

Definition at line 24 of file LSystem.cs.

25  {
26  _generation++;
27 
28  var builder = new StringBuilder();
29  for (var i = 0; i < Current.Length; ++i)
30  {
31  var letter = Current[i];
32  builder.Append(ApplyRules(letter));
33  }
34 
35  Current = builder.ToString();
36  }
virtual string ApplyRules(char letter)
Apply rules on a letter.
Definition: LSystem.cs:63
string Current
Current string.
Definition: LSystem.cs:13

◆ GetMatchingRules()

List<LSystemRule> Fractals.LSystem.GetMatchingRules ( char  letter)
inlineprotected

Get matching rules for a letter.

Parameters
letterLetter
Returns
Matching rules.

Definition at line 43 of file LSystem.cs.

44  {
45  var rules = new List<LSystemRule>();
46 
47  foreach (var rule in Rules)
48  {
49  if (rule.Input == letter)
50  {
51  rules.Add(rule);
52  }
53  }
54 
55  return rules;
56  }
List< LSystemRule > Rules
Rules.
Definition: LSystem.cs:15

Member Data Documentation

◆ Current

string Fractals.LSystem.Current

Current string.

Definition at line 13 of file LSystem.cs.

◆ Rules

List<LSystemRule> Fractals.LSystem.Rules

Rules.

Definition at line 15 of file LSystem.cs.

Property Documentation

◆ Generation

int Fractals.LSystem.Generation
get

Generation count.

Definition at line 17 of file LSystem.cs.


The documentation for this class was generated from the following file: