diff options
author | Marius Kintel <marius@kintel.net> | 2014-01-03 18:17:58 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2014-01-03 18:17:58 (GMT) |
commit | bee5233a916055d41bb4ee425f5df25b80f50f16 (patch) | |
tree | 7bfac9716f778ed685e62e2d0830d1905bc08fd2 /src/function.h | |
parent | f093b53c3edb08ee0d64c5d6c2a1df723acfca2d (diff) | |
parent | c5223417e3ffe965d09d971865797206080eb0ae (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.h | 9 |
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; |