diff options
author | Don Bright <hugh.m.bright@gmail.com> | 2011-09-12 22:40:51 (GMT) |
---|---|---|
committer | Don Bright <hugh.m.bright@gmail.com> | 2011-09-12 22:40:51 (GMT) |
commit | f5f06c8e976ca45aebea42fe8c04bf7404357ac8 (patch) | |
tree | 8d0cdd2698e7806c1b12cc49e743b561e1082961 /src/render.cc | |
parent | 007c40848db9efd704694f2e7596cabed80da50f (diff) | |
parent | 5ac9162f1c67fd21737ead11d7ebc638bf4eef5f (diff) |
merge
Merge remote branch 'upstream/visitor' into visitortests
Conflicts:
src/export.cc
src/openscad.cc
src/polyset.cc
src/transform.cc
tests/CMakeLists.txt
tests/FindGLEW.cmake
tests/csgtermtest.cc
Diffstat (limited to 'src/render.cc')
-rw-r--r-- | src/render.cc | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/render.cc b/src/render.cc index a463c67..f08423a 100644 --- a/src/render.cc +++ b/src/render.cc @@ -26,19 +26,16 @@ #include "rendernode.h" #include "module.h" -#include "polyset.h" #include "context.h" -#include "dxfdata.h" -#include "dxftess.h" -#include "csgterm.h" #include "builtin.h" #include "printutils.h" #include "progress.h" #include "visitor.h" +#include "PolySetEvaluator.h" -#include <QApplication> -#include <QTime> #include <sstream> +#include <boost/assign/std/vector.hpp> +using namespace boost::assign; // bring 'operator+=()' into scope class RenderModule : public AbstractModule { @@ -51,8 +48,9 @@ AbstractNode *RenderModule::evaluate(const Context *ctx, const ModuleInstantiati { RenderNode *node = new RenderNode(inst); - QVector<QString> argnames = QVector<QString>() << "convexity"; - QVector<Expression*> argexpr; + std::vector<std::string> argnames; + argnames += "convexity"; + std::vector<Expression*> argexpr; Context c(ctx); c.args(argnames, argexpr, inst->argnames, inst->argvalues); @@ -61,15 +59,17 @@ AbstractNode *RenderModule::evaluate(const Context *ctx, const ModuleInstantiati if (v.type == Value::NUMBER) node->convexity = (int)v.num; - foreach (ModuleInstantiation *v, inst->children) { - AbstractNode *n = v->evaluate(inst->ctx); - if (n != NULL) - node->children.push_back(n); - } + std::vector<AbstractNode *> evaluatednodes = inst->evaluateChildren(); + node->children.insert(node->children.end(), evaluatednodes.begin(), evaluatednodes.end()); return node; } +class PolySet *RenderNode::evaluate_polyset(PolySetEvaluator *ps) const +{ + return ps->evaluatePolySet(*this); +} + void register_builtin_render() { builtin_modules["render"] = new RenderModule(); |