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/cgaltest.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/cgaltest.cc')
-rw-r--r-- | test-code/cgaltest.cc | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/test-code/cgaltest.cc b/test-code/cgaltest.cc index 8529da8..147e390 100644 --- a/test-code/cgaltest.cc +++ b/test-code/cgaltest.cc @@ -33,6 +33,7 @@ #include "nodedumper.h" #include "CGALRenderer.h" #include "PolySetCGALRenderer.h" +#include "Tree.h" #include <QApplication> #include <QFile> @@ -61,6 +62,24 @@ void handle_dep(QString filename) } } +// FIXME: enforce some maximum cache size (old version had 100K vertices as limit) +QHash<string, CGAL_Nef_polyhedron> cache; + +void cgalTree(Tree &tree) +{ + const AbstractNode *root = tree.root(); + assert(root); + NodeCache<string> &cache = tree.cache(); + NodeDumper dumper(cache, false); + Traverser trav(dumper, *root, Traverser::PRE_AND_POSTFIX); + trav.execute(); + assert(!cache[*root].empty()); + + CSGTextRenderer renderer(csgcache, cache); + Traverser render(renderer, *root, Traverser::PRE_AND_POSTFIX); + render.execute(); +} + int main(int argc, char **argv) { if (argc != 2) { @@ -146,11 +165,12 @@ int main(int argc, char **argv) AbstractNode::resetIndexCounter(); root_node = root_module->evaluate(&root_ctx, &root_inst); - NodeDumper dumper; - Traverser trav(dumper, *root_node, Traverser::PRE_AND_POSTFIX); - trav.execute(); - std::string dumpstdstr = dumper.getDump() + "\n"; - std::cout << dumpstdstr << "\n"; + Tree tree; + tree.setRoot(root_node); + + cgalTree(tree); + + std::cout << cache[tree.cache()[*root_node]] << "\n"; CGALRenderer cgalrenderer(dumper.getCache()); PolySetCGALRenderer psrenderer(cgalrenderer); |