summaryrefslogtreecommitdiff
path: root/openscad.h
diff options
context:
space:
mode:
authorclifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c>2009-06-29 20:30:43 (GMT)
committerclifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c>2009-06-29 20:30:43 (GMT)
commited687599bf1ca36869dc64dab2b9969f1d96b4c1 (patch)
treec0aa344d2dd28e03eddd8b5cfdb2f47cdea807d3 /openscad.h
parent934e2cef98bc16d2552641314dae1f17a8841079 (diff)
Clifford Wolf:
Restructured AST evaluation for control statements git-svn-id: http://svn.clifford.at/openscad/trunk@37 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'openscad.h')
-rw-r--r--openscad.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/openscad.h b/openscad.h
index c139d6e..0a8fa5c 100644
--- a/openscad.h
+++ b/openscad.h
@@ -192,7 +192,7 @@ class AbstractModule
{
public:
virtual ~AbstractModule();
- virtual AbstractNode *evaluate(const Context *ctx, const QVector<QString> &call_argnames, const QVector<Value> &call_argvalues, const QVector<AbstractNode*> child_nodes) const;
+ virtual AbstractNode *evaluate(const Context *ctx, const QVector<QString> &call_argnames, const QVector<Value> &call_argvalues, const QVector<ModuleInstanciation*> arg_children, const Context *arg_context) const;
virtual QString dump(QString indent, QString name) const;
};
@@ -229,7 +229,7 @@ public:
Module() { }
virtual ~Module();
- virtual AbstractNode *evaluate(const Context *ctx, const QVector<QString> &call_argnames, const QVector<Value> &call_argvalues, const QVector<AbstractNode*> child_nodes) const;
+ virtual AbstractNode *evaluate(const Context *ctx, const QVector<QString> &call_argnames, const QVector<Value> &call_argvalues, const QVector<ModuleInstanciation*> arg_children, const Context *arg_context) const;
virtual QString dump(QString indent, QString name) const;
};
@@ -237,9 +237,10 @@ extern QHash<QString, AbstractModule*> builtin_modules;
extern void initialize_builtin_modules();
extern void destroy_builtin_modules();
-extern void register_builtin_csg();
-extern void register_builtin_trans();
-extern void register_builtin_primitive();
+extern void register_builtin_csgops();
+extern void register_builtin_transform();
+extern void register_builtin_primitives();
+extern void register_builtin_control();
class Context
{
@@ -261,7 +262,7 @@ public:
Value lookup_variable(QString name) const;
Value evaluate_function(QString name, const QVector<QString> &argnames, const QVector<Value> &argvalues) const;
- AbstractNode *evaluate_module(QString name, const QVector<QString> &argnames, const QVector<Value> &argvalues, const QVector<AbstractNode*> child_nodes) const;
+ AbstractNode *evaluate_module(QString name, const QVector<QString> &argnames, const QVector<Value> &argvalues, const QVector<ModuleInstanciation*> arg_children, const Context *arg_context = NULL) const;
};
// The CGAL template magic slows down the compilation process by a factor of 5.
contact: Jan Huwald // Impressum