Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EffectPermutation"/> class.
 /// </summary>
 public EffectPermutation()
 {
     Keys     = new EffectParameterKeyStandardGenerator();
     Children = new List <EffectPermutation>();
 }
Esempio n. 2
0
 private IEnumerable <CompilerParameters> GeneratePermutation(CompilerParameters parameters, EffectParameterKeyStandardGenerator keys, List <EffectPermutation> permutations, ILogger log)
 {
     if (keys == null || keys.Count == 0)
     {
         if (permutations == null || permutations.Count == 0)
         {
             foreach (var newParameters in GenerateCompilerParametersPermutation(parameters, 0, log))
             {
                 yield return(newParameters);
             }
         }
         else
         {
             foreach (var permutation in permutations)
             {
                 foreach (var parametersPerPermutations in GeneratePermutation(parameters, permutation.Keys, permutation.Children, log))
                 {
                     yield return(parametersPerPermutations);
                 }
             }
         }
     }
     else
     {
         foreach (var parametersPerKeyValuePermutations in GenerateKeysPermutation(parameters, keys.GenerateKeyValues()))
         {
             foreach (var subParameters in GeneratePermutation(parametersPerKeyValuePermutations, null, permutations, log))
             {
                 yield return(subParameters);
             }
         }
     }
 }