summaryrefslogtreecommitdiff
path: root/tests/cgalpngtest.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2011-09-04 16:53:09 (GMT)
committerMarius Kintel <marius@kintel.net>2011-09-04 16:53:09 (GMT)
commit723c6b7cf28c54b93746dc99d58e16180f831e3a (patch)
treed3384b3cfc2a68006d99ad346f917aaf95f5043f /tests/cgalpngtest.cc
parentbdd7c1f583c8b37a5cbd302d66f8b5e55c5c85b8 (diff)
bugfix: root modifier now works with test apps
Diffstat (limited to 'tests/cgalpngtest.cc')
-rw-r--r--tests/cgalpngtest.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/tests/cgalpngtest.cc b/tests/cgalpngtest.cc
index 31bbbe1..8e3859b 100644
--- a/tests/cgalpngtest.cc
+++ b/tests/cgalpngtest.cc
@@ -71,6 +71,15 @@ void cgalTree(Tree &tree)
evaluate.execute();
}
+AbstractNode *find_root_tag(AbstractNode *n)
+{
+ foreach(AbstractNode *v, n->children) {
+ if (v->modinst->tag_root) return v;
+ if (AbstractNode *vroot = find_root_tag(v)) return vroot;
+ }
+ return NULL;
+}
+
struct CsgInfo
{
OffscreenView *glview;
@@ -131,7 +140,6 @@ int main(int argc, char **argv)
AbstractModule *root_module;
ModuleInstantiation root_inst;
- AbstractNode *root_node;
QFileInfo fileInfo(filename);
handle_dep(filename);
@@ -158,7 +166,10 @@ int main(int argc, char **argv)
QDir::setCurrent(fileInfo.absolutePath());
AbstractNode::resetIndexCounter();
- root_node = root_module->evaluate(&root_ctx, &root_inst);
+ AbstractNode *absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
+ AbstractNode *root_node;
+ // Do we have an explicit root node (! modifier)?
+ if (!(root_node = find_root_tag(absolute_root_node))) root_node = absolute_root_node;
Tree tree(root_node);
contact: Jan Huwald // Impressum