예제 #1
0
    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);
            }
        }
    }
예제 #2
0
 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);
     }
 }