summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-10-19 22:03:09 (GMT)
committerMarius Kintel <marius@kintel.net>2013-10-19 22:03:09 (GMT)
commit448f8b4142acb00efb7e57e575fe6d5aaabec47c (patch)
treea6ae671b444c39ce8d954be65e09e29a5e5e70ee
parentd2a729bdfa91e2463cfb03e3177147f043ae0dc9 (diff)
Fixed an issue which caused us to traverse the entire tree for OpenCSG rendering traversals, where we didn't actually use the traversal results (for all nodes requiring CGAL)
-rw-r--r--src/CSGTermEvaluator.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/CSGTermEvaluator.cc b/src/CSGTermEvaluator.cc
index 71cf149..4441561 100644
--- a/src/CSGTermEvaluator.cc
+++ b/src/CSGTermEvaluator.cc
@@ -108,7 +108,7 @@ static shared_ptr<CSGTerm> evaluate_csg_term_from_ps(const State &state,
Response CSGTermEvaluator::visit(State &state, const AbstractPolyNode &node)
{
- if (state.isPostfix()) {
+ if (state.isPrefix()) {
shared_ptr<CSGTerm> t1;
if (this->psevaluator) {
shared_ptr<PolySet> ps = this->psevaluator->getPolySet(node, true);
@@ -121,7 +121,7 @@ Response CSGTermEvaluator::visit(State &state, const AbstractPolyNode &node)
this->stored_term[node.index()] = t1;
addToParent(state, node);
}
- return ContinueTraversal;
+ return PruneTraversal;
}
Response CSGTermEvaluator::visit(State &state, const CsgNode &node)
@@ -174,7 +174,7 @@ 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)
{
- if (state.isPostfix()) {
+ if (state.isPrefix()) {
shared_ptr<CSGTerm> t1;
shared_ptr<PolySet> ps;
if (this->psevaluator) {
@@ -188,12 +188,12 @@ Response CSGTermEvaluator::visit(State &state, const RenderNode &node)
this->stored_term[node.index()] = t1;
addToParent(state, node);
}
- return ContinueTraversal;
+ return PruneTraversal;
}
Response CSGTermEvaluator::visit(State &state, const CgaladvNode &node)
{
- if (state.isPostfix()) {
+ if (state.isPrefix()) {
shared_ptr<CSGTerm> t1;
// FIXME: Calling evaluator directly since we're not a PolyNode. Generalize this.
shared_ptr<PolySet> ps;
@@ -208,7 +208,7 @@ Response CSGTermEvaluator::visit(State &state, const CgaladvNode &node)
this->stored_term[node.index()] = t1;
addToParent(state, node);
}
- return ContinueTraversal;
+ return PruneTraversal;
}
/*!
contact: Jan Huwald // Impressum