summaryrefslogtreecommitdiff
path: root/src/function.h
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2014-01-03 18:17:58 (GMT)
committerMarius Kintel <marius@kintel.net>2014-01-03 18:17:58 (GMT)
commitbee5233a916055d41bb4ee425f5df25b80f50f16 (patch)
tree7bfac9716f778ed685e62e2d0830d1905bc08fd2 /src/function.h
parentf093b53c3edb08ee0d64c5d6c2a1df723acfca2d (diff)
parentc5223417e3ffe965d09d971865797206080eb0ae (diff)
Merge branch 'vector-concat' of git://github.com/t-paul/openscad into t-paul-vector-concat
Conflicts: src/Preferences.ui
Diffstat (limited to 'src/function.h')
-rw-r--r--src/function.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/function.h b/src/function.h
index a1fde3c..2491809 100644
--- a/src/function.h
+++ b/src/function.h
@@ -3,13 +3,21 @@
#include "value.h"
#include "typedefs.h"
+#include "feature.h"
+
#include <string>
#include <vector>
+
class AbstractFunction
{
+private:
+ const Feature *feature;
public:
+ AbstractFunction() : feature(NULL) {}
+ AbstractFunction(const Feature& feature) : feature(&feature) {}
virtual ~AbstractFunction();
+ virtual bool is_enabled() const { return (feature == NULL) || feature->is_enabled(); };
virtual Value evaluate(const class Context *ctx, const class EvalContext *evalctx) const;
virtual std::string dump(const std::string &indent, const std::string &name) const;
};
@@ -21,6 +29,7 @@ public:
eval_func_t eval_func;
BuiltinFunction(eval_func_t f) : eval_func(f) { }
+ BuiltinFunction(eval_func_t f, const Feature& feature) : AbstractFunction(feature), eval_func(f) { }
virtual ~BuiltinFunction();
virtual Value evaluate(const Context *ctx, const EvalContext *evalctx) const;
contact: Jan Huwald // Impressum