summaryrefslogtreecommitdiff
path: root/src/openscad.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/openscad.cc')
-rw-r--r--src/openscad.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/openscad.cc b/src/openscad.cc
index 2f1c4d8..f796136 100644
--- a/src/openscad.cc
+++ b/src/openscad.cc
@@ -265,6 +265,7 @@ int main(int argc, char **argv)
Module *root_module;
ModuleInstantiation root_inst;
AbstractNode *root_node;
+ AbstractNode *absolute_root_node;
handle_dep(filename);
@@ -286,7 +287,13 @@ int main(int argc, char **argv)
fs::current_path(fparent);
AbstractNode::resetIndexCounter();
+ absolute_root_node = root_module->evaluate(&root_ctx, &root_inst);
root_node = root_module->evaluate(&root_ctx, &root_inst);
+
+ // Do we have an explicit root node (! modifier)?
+ if (!(root_node = find_root_tag(absolute_root_node)))
+ root_node = absolute_root_node;
+
tree.setRoot(root_node);
if (csg_output_file) {
contact: Jan Huwald // Impressum