private void UpdateFunction(IFunctionBase function)
 {
     functionsDropdown.ClearOptions();
     functionsDropdown.SetOptions(SceneDataManager.instance.GetByType(FunctionBase.ObjectType), e => $"{e.Name} ({((IFunctionBase)e).Expression})", @"No functions selected");
     functionsDropdown.SelectItem(function);
     functionBackground.color = function == null ? functionErrorColor : functionNormalColor;
 }
Пример #2
0
        public static OperationResult Calculate(this IFunctionBase function, params double[] vars)
        {
            Expression      expression = new Expression(function.Expression);
            OperationResult result     = expression.CheckSyntax();

            var args = expression.getArgumentsNumber();

            if (result.Result && vars.Length >= args)
            {
                Argument arg;
                for (int i = 0; i < args; i++)
                {
                    arg = expression.getArgument(i);
                    arg.setArgumentValue(vars[i]);
                }

                result.CalculationResult = expression.calculate();
            }

            return(result);
        }
Пример #3
0
 public static IEnumerable <string> GetArguments(this IFunctionBase function)
 {
     return(new Expression(function.Expression).getMissingUserDefinedArguments());
 }
Пример #4
0
 public static OperationResult CheckSyntax(this IFunctionBase function)
 {
     return(CheckSyntax(new Expression(function.Expression)));
 }