diff options
author | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-07-09 09:35:19 (GMT) |
---|---|---|
committer | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-07-09 09:35:19 (GMT) |
commit | 4dceada8f4380913cfded94a845abf59a6a4d3ee (patch) | |
tree | cf6306ee1c813e0dc65fec227cd3caf7e09f8120 /src/func.cc | |
parent | 9f6a3da9bd9160b89c50007d1a2b2c77acc29806 (diff) |
sign() function suggested by Dan Zuras and implemented by Giles Bathgate
git-svn-id: http://svn.clifford.at/openscad/trunk@568 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'src/func.cc')
-rw-r--r-- | src/func.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/func.cc b/src/func.cc index 9f1b8e7..eb0afcd 100644 --- a/src/func.cc +++ b/src/func.cc @@ -117,6 +117,13 @@ Value builtin_abs(const Context *, const QVector<QString>&, const QVector<Value> return Value(); } +Value builtin_sign(const Context *, const QVector<QString>&, const QVector<Value> &args) +{ + if (args.size() == 1 && args[0].type == Value::NUMBER) + return Value((args[0].num<0) ? -1.0 : ((args[0].num>0) ? 1.0 : 0.0)); + return Value(); +} + Value builtin_min(const Context *, const QVector<QString>&, const QVector<Value> &args) { if (args.size() >= 1 && args[0].type == Value::NUMBER) { @@ -292,6 +299,7 @@ Value builtin_lookup(const Context *, const QVector<QString>&, const QVector<Val void initialize_builtin_functions() { builtin_functions["abs"] = new BuiltinFunction(&builtin_abs); + builtin_functions["sign"] = new BuiltinFunction(&builtin_sign); builtin_functions["min"] = new BuiltinFunction(&builtin_min); builtin_functions["max"] = new BuiltinFunction(&builtin_max); builtin_functions["sin"] = new BuiltinFunction(&builtin_sin); |