public static VariationModel[] GetVariationsFromFlameModel(FlameModel model)
        {
            var length        = model.VariationIds.Count;
            var variations    = new VariationModel[length];
            var hasParameters = model.Parameters != null;
            var hasWeights    = model.Weights != null;

            for (var i = 0; i < length; i++)
            {
                if (!VariationFactoryModel.StaticVariationFactory.TryGet(model.VariationIds[i], out var v))
                {
                    throw new ArgumentOutOfRangeException(nameof(model), @"UNKNOWN VARIATION ID");
                }
                if (hasParameters)
                {
                    v.SetParameters(model.Parameters[i]);
                }
                if (hasWeights)
                {
                    v.W = model.Weights[i];
                }
                variations[i] = v;
            }

            return(variations);
        }
Esempio n. 2
0
        private static double[] GetParameters(VariationModel variationModel)
        {
            var parameters = new double[variationModel.HasParameters];

            for (var i = 0; i < parameters.Length; i++)
            {
                switch (i)
                {
                case 0:
                    parameters[i] = variationModel.P1;
                    break;

                case 1:
                    parameters[i] = variationModel.P2;
                    break;

                case 2:
                    parameters[i] = variationModel.P3;
                    break;

                case 3:
                    parameters[i] = variationModel.P4;
                    break;
                }
            }

            return(parameters);
        }
Esempio n. 3
0
        private static string[] GetParameterNames(VariationModel variationModel)
        {
            var names = new string[variationModel.HasParameters];

            for (var i = 0; i < names.Length; i++)
            {
                switch (i)
                {
                case 0:
                    names[i] = variationModel.P1Name;
                    break;

                case 1:
                    names[i] = variationModel.P2Name;
                    break;

                case 2:
                    names[i] = variationModel.P3Name;
                    break;

                case 3:
                    names[i] = variationModel.P4Name;
                    break;
                }
            }

            return(names);
        }
Esempio n. 4
0
 public bool TryGet(string name, out VariationModel variation)
 {
     variation = null;
     if (!TryGetType(name, out var type))
     {
         return(false);
     }
     variation = (VariationModel)Activator.CreateInstance(type);
     return(true);
 }
 public string GetString(VariationModel variation)
 {
     return($"[{variation.Id:00}] {variation.Name}");
 }