summaryrefslogtreecommitdiff
path: root/src/module.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/module.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/module.h')
-rw-r--r--src/module.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/module.h b/src/module.h
index 8414706..81e5f10 100644
--- a/src/module.h
+++ b/src/module.h
@@ -13,6 +13,7 @@
#include "value.h"
#include "typedefs.h"
#include "localscope.h"
+#include "feature.h"
class ModuleInstantiation
{
@@ -60,8 +61,13 @@ public:
class AbstractModule
{
+private:
+ const Feature *feature;
public:
+ AbstractModule() : feature(NULL) {}
+ AbstractModule(const Feature& feature) : feature(&feature) {}
virtual ~AbstractModule();
+ virtual bool is_enabled() const { return (feature == NULL) || feature->is_enabled(); };
virtual class AbstractNode *instantiate(const Context *ctx, const ModuleInstantiation *inst, const class EvalContext *evalctx = NULL) const;
virtual std::string dump(const std::string &indent, const std::string &name) const;
};
@@ -70,6 +76,7 @@ class Module : public AbstractModule
{
public:
Module() { }
+ Module(const Feature& feature) : AbstractModule(feature) { }
virtual ~Module();
virtual AbstractNode *instantiate(const Context *ctx, const ModuleInstantiation *inst, const EvalContext *evalctx = NULL) const;
contact: Jan Huwald // Impressum