void processModules(char[] currentStringChar, int param, int iteration) { int paramoffset = 1; iteration--; if (iteration < 0) { createModulesFromString(currentStringChar, param - paramoffset); return; } for (int i = 0; i < currentStringChar.Length; i++) { char currentChar = currentStringChar[i]; if (rules.ContainsKey(currentChar)) { string ruleString = rules[currentChar]; newString += ruleString; processModules(ruleString.ToCharArray(), param + paramoffset, iteration); } else { newString += currentChar.ToString(); LSystemRuleSet.ParametricModule module = new LSystemRuleSet.ParametricModule(currentChar, param, parametricChar.Contains(currentChar)); modules.Add(module); } } }
void createModulesFromString(char[] inputChar, int param) { foreach (char c in inputChar) { LSystemRuleSet.ParametricModule module = new LSystemRuleSet.ParametricModule(c, param, parametricChar.Contains(c)); modules.Add(module); } }