diff options
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); |