From 3366403d1df0cdf4f633194e9d2564756381763c Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Thu, 20 Oct 2011 18:59:34 +0200 Subject: Linux compile fix: include cstddef for NULL diff --git a/src/CSGTermEvaluator.h b/src/CSGTermEvaluator.h index cca6c91..3a8122b 100644 --- a/src/CSGTermEvaluator.h +++ b/src/CSGTermEvaluator.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "visitor.h" class CSGTermEvaluator : public Visitor -- cgit v0.10.1 From 7d9104e748aaf9f54a490a8ca143d2864ddb61d3 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sun, 23 Oct 2011 22:33:11 +0200 Subject: Evaluate expressions for the ternary operator the same way as for if-else, i.e. cast any value to bool diff --git a/src/expr.cc b/src/expr.cc index c9eda4e..fc1fbf0 100644 --- a/src/expr.cc +++ b/src/expr.cc @@ -75,9 +75,7 @@ Value Expression::evaluate(const Context *context) const return this->children[0]->evaluate(context) > this->children[1]->evaluate(context); if (this->type == "?:") { Value v = this->children[0]->evaluate(context); - if (v.type == Value::BOOL) - return this->children[v.b ? 1 : 2]->evaluate(context); - return Value(); + return this->children[v.toBool() ? 1 : 2]->evaluate(context); } if (this->type == "[]") { Value v1 = this->children[0]->evaluate(context); -- cgit v0.10.1 From ff6d6cda13040e69ef15bb8989ca0f436a8020cc Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Mon, 24 Oct 2011 13:46:46 +0200 Subject: Evaluate expressions for the ternary operator the same way as for if-else, i.e. cast any value to bool diff --git a/RELEASE_NOTES b/RELEASE_NOTES index aaeddb1..3af3c1a 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -8,7 +8,7 @@ o New import() statement reads the correct file format based on the filename ext (.stl, .dxf and .off is supported) o The color() statement now supports an alpha parameter, e.g. color(c=[1,0,0], alpha=0.4) o The color() statement now supports specifying colors as strings, e.g. color("Red") -o if() and else() can now take any value type as parameter. false, 0, empty string and empty vector or illegal value type will evaluate as false, everything else as true. +o if()/else() and the ternary operator can now take any value type as parameter. false, 0, empty string and empty vector or illegal value type will evaluate as false, everything else as true. o Strings can now be lexographically compared using the <, <=, >, >= operators o The version() function will return the OpenSCAD version as a vector, e.g. [2011, 09] o The version_num() function will return the OpenSCAD version as a number, e.g. 20110923 -- cgit v0.10.1