diff options
author | Marius Kintel <marius@kintel.net> | 2010-04-12 00:16:36 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2010-10-31 00:42:35 (GMT) |
commit | e8e213b3c9ce0580045ea6e7e86b00ab41d4c58b (patch) | |
tree | cb32e67b6334aa1f1dc62aa4a0686a22782e7f77 /test-code/csgtexttest.cc | |
parent | 53a9953b7dc4ab4a366046c91529b32fb6652551 (diff) |
Another refactoring session:
o mk_cache_id() obsoleted by removing the node index from the dump
o node index output removed from each node and make optional in NodeDumper
o The visitors are no longer global, but associated with a tree
o Added Tree class to manage node trees and the (now implicit) dump cache
o Moved PolySet cache into PolySetRenderer
Diffstat (limited to 'test-code/csgtexttest.cc')
-rw-r--r-- | test-code/csgtexttest.cc | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/test-code/csgtexttest.cc b/test-code/csgtexttest.cc index b07bc92..f464900 100644 --- a/test-code/csgtexttest.cc +++ b/test-code/csgtexttest.cc @@ -23,6 +23,7 @@ * */ +#include "CSGTextRenderer.h" #include "openscad.h" #include "node.h" #include "module.h" @@ -30,14 +31,14 @@ #include "value.h" #include "export.h" #include "builtin.h" -#include "nodedumper.h" -#include "CSGTextRenderer.h" +#include "Tree.h" #include <QApplication> #include <QFile> #include <QDir> #include <QSet> #include <getopt.h> +#include <assert.h> #include <iostream> QString commandline_commands; @@ -60,6 +61,17 @@ void handle_dep(QString filename) } } + +QHash<string, string> csgcache; +void csgTree(Tree &tree) +{ + assert(tree.root()); + + CSGTextRenderer renderer(csgcache, tree); + Traverser render(renderer, *tree.root(), Traverser::PRE_AND_POSTFIX); + render.execute(); +} + int main(int argc, char **argv) { if (argc != 2) { @@ -145,17 +157,13 @@ int main(int argc, char **argv) AbstractNode::resetIndexCounter(); root_node = root_module->evaluate(&root_ctx, &root_inst); + Tree tree; + tree.setRoot(root_node); - NodeDumper dumper; - Traverser trav(dumper, *root_node, Traverser::PRE_AND_POSTFIX); - trav.execute(); - std::string dumpstdstr = dumper.getDump() + "\n"; - std::cout << dumpstdstr << "\n"; + csgTree(tree); + std::cout << tree.getString(*root_node) << "\n"; - CSGTextRenderer renderer(dumper.getCache()); - Traverser render(renderer, *root_node, Traverser::PRE_AND_POSTFIX); - render.execute(); - std::cout << renderer.getCSGString() << "\n"; + std::cout << csgcache[tree.getString(*root_node)] << "\n"; destroy_builtin_functions(); destroy_builtin_modules(); |