diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-01-26 18:31:37 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-01-26 18:31:37 (GMT) |
commit | 6535b16a31cf23d65f9c4c44a2e97dfdcdd69419 (patch) | |
tree | ecca4e1f641cdd5d75716b3ef41ba5ce282b6209 /src/openscad.cc | |
parent | 6bac08c33a6c5111efe1f322ae8f6628403b3467 (diff) |
enable root-modifier (! character) on gui-cmdline output. reduce duplicate code.
Diffstat (limited to 'src/openscad.cc')
-rw-r--r-- | src/openscad.cc | 7 |
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) { |