diff options
author | clifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-06 19:58:54 (GMT) |
---|---|---|
committer | clifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-06 19:58:54 (GMT) |
commit | c342e41e2f5084ac37b0a92f04c75949d5f352e9 (patch) | |
tree | dbf95429854f45b143b6b71a6fab2c79779d2a63 /func.cc | |
parent | 9326da227bffc063290edf7e272f70cccfc0339d (diff) |
Clifford Wolf:
Added polygon() statement
Added min/max functions
git-svn-id: http://svn.clifford.at/openscad/trunk@222 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'func.cc')
-rw-r--r-- | func.cc | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -100,6 +100,30 @@ static double rad2deg(double x) return x; } +Value builtin_min(const QVector<QString>&, const QVector<Value> &args) +{ + if (args.size() >= 1 && args[0].type == Value::NUMBER) { + double val = args[0].num; + for (int i = 1; i < args.size(); i++) + if (args[1].type == Value::NUMBER) + val = fmin(val, args[i].num); + return Value(val); + } + return Value(); +} + +Value builtin_max(const QVector<QString>&, const QVector<Value> &args) +{ + if (args.size() >= 1 && args[0].type == Value::NUMBER) { + double val = args[0].num; + for (int i = 1; i < args.size(); i++) + if (args[1].type == Value::NUMBER) + val = fmax(val, args[i].num); + return Value(val); + } + return Value(); +} + Value builtin_sin(const QVector<QString>&, const QVector<Value> &args) { if (args.size() == 1 && args[0].type == Value::NUMBER) @@ -171,6 +195,8 @@ Value builtin_str(const QVector<QString>&, const QVector<Value> &args) void initialize_builtin_functions() { + builtin_functions["min"] = new BuiltinFunction(&builtin_min); + builtin_functions["max"] = new BuiltinFunction(&builtin_max); builtin_functions["sin"] = new BuiltinFunction(&builtin_sin); builtin_functions["cos"] = new BuiltinFunction(&builtin_cos); builtin_functions["asin"] = new BuiltinFunction(&builtin_asin); |