diff options
-rw-r--r-- | tests/cgalpngtest.cc | 15 | ||||
-rw-r--r-- | tests/cgaltest.cc | 15 | ||||
-rw-r--r-- | tests/opencsgtest.cc | 15 | ||||
-rw-r--r-- | tests/regression/cgalpngtest/root-modifier-expected.png | bin | 0 -> 7433 bytes | |||
-rw-r--r-- | tests/regression/opencsgtest/root-modifier-expected.png | bin | 0 -> 7440 bytes |
5 files changed, 39 insertions, 6 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); diff --git a/tests/cgaltest.cc b/tests/cgaltest.cc index 44e87f9..f2fc169 100644 --- a/tests/cgaltest.cc +++ b/tests/cgaltest.cc @@ -66,6 +66,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; +} + int main(int argc, char **argv) { if (argc != 2) { @@ -121,7 +130,6 @@ int main(int argc, char **argv) AbstractModule *root_module; ModuleInstantiation root_inst; - AbstractNode *root_node; QFileInfo fileInfo(filename); handle_dep(filename); @@ -148,7 +156,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); diff --git a/tests/opencsgtest.cc b/tests/opencsgtest.cc index 7e85322..06b7647 100644 --- a/tests/opencsgtest.cc +++ b/tests/opencsgtest.cc @@ -43,6 +43,15 @@ struct CsgInfo OffscreenView *glview; }; +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; +} + int main(int argc, char *argv[]) { if (argc != 2) { @@ -99,7 +108,6 @@ int main(int argc, char *argv[]) AbstractModule *root_module; ModuleInstantiation root_inst; - AbstractNode *root_node; QFileInfo fileInfo(filename); handle_dep(filename); @@ -126,7 +134,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); diff --git a/tests/regression/cgalpngtest/root-modifier-expected.png b/tests/regression/cgalpngtest/root-modifier-expected.png Binary files differnew file mode 100644 index 0000000..550a71d --- /dev/null +++ b/tests/regression/cgalpngtest/root-modifier-expected.png diff --git a/tests/regression/opencsgtest/root-modifier-expected.png b/tests/regression/opencsgtest/root-modifier-expected.png Binary files differnew file mode 100644 index 0000000..1e4b471 --- /dev/null +++ b/tests/regression/opencsgtest/root-modifier-expected.png |