summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/cgalpngtest.cc15
-rw-r--r--tests/cgaltest.cc15
-rw-r--r--tests/opencsgtest.cc15
-rw-r--r--tests/regression/cgalpngtest/root-modifier-expected.pngbin0 -> 7433 bytes
-rw-r--r--tests/regression/opencsgtest/root-modifier-expected.pngbin0 -> 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
new file mode 100644
index 0000000..550a71d
--- /dev/null
+++ b/tests/regression/cgalpngtest/root-modifier-expected.png
Binary files differ
diff --git a/tests/regression/opencsgtest/root-modifier-expected.png b/tests/regression/opencsgtest/root-modifier-expected.png
new file mode 100644
index 0000000..1e4b471
--- /dev/null
+++ b/tests/regression/opencsgtest/root-modifier-expected.png
Binary files differ
contact: Jan Huwald // Impressum