summaryrefslogtreecommitdiff
path: root/func.cc
diff options
context:
space:
mode:
Diffstat (limited to 'func.cc')
-rw-r--r--func.cc22
1 files changed, 15 insertions, 7 deletions
diff --git a/func.cc b/func.cc
index 352f0ae..203ad6b 100644
--- a/func.cc
+++ b/func.cc
@@ -102,53 +102,60 @@ static double rad2deg(double x)
Value builtin_sin(const QVector<QString>&, const QVector<Value> &args)
{
- if (args[0].type == Value::NUMBER)
+ if (args.size() == 1 && args[0].type == Value::NUMBER)
return Value(sin(deg2rad(args[0].num)));
return Value();
}
Value builtin_cos(const QVector<QString>&, const QVector<Value> &args)
{
- if (args[0].type == Value::NUMBER)
+ if (args.size() == 1 && args[0].type == Value::NUMBER)
return Value(cos(deg2rad(args[0].num)));
return Value();
}
Value builtin_asin(const QVector<QString>&, const QVector<Value> &args)
{
- if (args[0].type == Value::NUMBER)
+ if (args.size() == 1 && args[0].type == Value::NUMBER)
return Value(rad2deg(asin(args[0].num)));
return Value();
}
Value builtin_acos(const QVector<QString>&, const QVector<Value> &args)
{
- if (args[0].type == Value::NUMBER)
+ if (args.size() == 1 && args[0].type == Value::NUMBER)
return Value(rad2deg(acos(args[0].num)));
return Value();
}
Value builtin_tan(const QVector<QString>&, const QVector<Value> &args)
{
- if (args[0].type == Value::NUMBER)
+ if (args.size() == 1 && args[0].type == Value::NUMBER)
return Value(tan(deg2rad(args[0].num)));
return Value();
}
Value builtin_atan(const QVector<QString>&, const QVector<Value> &args)
{
- if (args[0].type == Value::NUMBER)
+ if (args.size() == 1 && args[0].type == Value::NUMBER)
return Value(rad2deg(atan(args[0].num)));
return Value();
}
Value builtin_atan2(const QVector<QString>&, const QVector<Value> &args)
{
- if (args[0].type == Value::NUMBER && args[1].type == Value::NUMBER)
+ if (args.size() == 2 && args[0].type == Value::NUMBER && args[1].type == Value::NUMBER)
return Value(rad2deg(atan2(args[0].num, args[1].num)));
return Value();
}
+Value builtin_pow(const QVector<QString>&, const QVector<Value> &args)
+{
+ if (args.size() == 2 && args[0].type == Value::NUMBER && args[1].type == Value::NUMBER)
+ return Value(pow(args[0].num, args[1].num));
+ return Value();
+}
+
void initialize_builtin_functions()
{
builtin_functions["sin"] = new BuiltinFunction(&builtin_sin);
@@ -158,6 +165,7 @@ void initialize_builtin_functions()
builtin_functions["tan"] = new BuiltinFunction(&builtin_tan);
builtin_functions["atan"] = new BuiltinFunction(&builtin_atan);
builtin_functions["atan2"] = new BuiltinFunction(&builtin_atan2);
+ builtin_functions["pow"] = new BuiltinFunction(&builtin_pow);
initialize_builtin_dxf_dim();
}
contact: Jan Huwald // Impressum