summaryrefslogtreecommitdiff
path: root/src/openscad.cc
diff options
context:
space:
mode:
authordon bright <hugh.m.bright@gmail.com>2013-01-26 18:31:37 (GMT)
committerdon bright <hugh.m.bright@gmail.com>2013-01-26 18:31:37 (GMT)
commit6535b16a31cf23d65f9c4c44a2e97dfdcdd69419 (patch)
treeecca4e1f641cdd5d75716b3ef41ba5ce282b6209 /src/openscad.cc
parent6bac08c33a6c5111efe1f322ae8f6628403b3467 (diff)
enable root-modifier (! character) on gui-cmdline output. reduce duplicate code.
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