diff options
author | Marius Kintel <marius@kintel.net> | 2011-09-06 16:31:22 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-09-06 16:31:22 (GMT) |
commit | 0e7c6473fa6541fee741d0019ba498747fd6e364 (patch) | |
tree | 7f7f673e7ba272ef0258ab7e2620593bbe76ba6c /src/CSGTermEvaluator.cc | |
parent | 3b16fdafd2235e8bcaec0c2be06949f61bc4047d (diff) |
Implemented render()
Diffstat (limited to 'src/CSGTermEvaluator.cc')
-rw-r--r-- | src/CSGTermEvaluator.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/CSGTermEvaluator.cc b/src/CSGTermEvaluator.cc index b59f4db..f280b2b 100644 --- a/src/CSGTermEvaluator.cc +++ b/src/CSGTermEvaluator.cc @@ -178,9 +178,18 @@ Response CSGTermEvaluator::visit(State &state, const ColorNode &node) // FIXME: If we've got CGAL support, render this node as a CGAL union into a PolySet Response CSGTermEvaluator::visit(State &state, const RenderNode &node) { - PRINT("WARNING: render() statement not implemented"); if (state.isPostfix()) { - applyToChildren(node, CSGT_UNION); + CSGTerm *t1 = NULL; + // FIXME: Calling evaluator directly since we're not a PolyNode. Generalize this. + PolySet *ps = NULL; + if (this->psevaluator) { + ps = this->psevaluator->evaluatePolySet(node, AbstractPolyNode::RENDER_OPENCSG); + } + if (ps) { + t1 = evaluate_csg_term_from_ps(state, this->highlights, this->background, + ps, node.modinst, node); + } + this->stored_term[node.index()] = t1; addToParent(state, node); } return ContinueTraversal; |