call method
Implementation
@override
Future<String> call({
required Agent agent,
required Map<String, dynamic> arguments,
}) async {
print("Expression! Args: $arguments");
try {
return const ExpressionEvaluator().eval(
Expression.parse(arguments["expression"]),
{
"sin": sin,
"pow": pow,
"min": min,
"max": max,
"abs": (num a) => a.abs(),
"sqrt": sqrt,
"log": log,
"exp": exp,
"tan": tan,
"cos": cos,
"asin": asin,
"acos": acos,
"atan": atan,
"atan2": atan2,
"ceil": (num a) => a.ceil(),
"floor": (num a) => a.floor(),
"round": (num a) => a.round(),
"deg2rad": (num a) => a * (pi / 180),
"rad2deg": (num a) => a * (180 / pi),
"lerp": (num a, num b, num f) => a + (b - a) * f,
"pi": pi,
"e": e,
"ln10": ln10,
"ln2": ln2,
"log2e": log2e,
},
).toString();
} catch (e) {
return "EXPRESSION ERROR: $e";
}
}