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; }
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); }
public static IEnumerable <string> GetArguments(this IFunctionBase function) { return(new Expression(function.Expression).getMissingUserDefinedArguments()); }
public static OperationResult CheckSyntax(this IFunctionBase function) { return(CheckSyntax(new Expression(function.Expression))); }