summaryrefslogtreecommitdiff
path: root/test-code/cgaltest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test-code/cgaltest.cc')
-rw-r--r--test-code/cgaltest.cc30
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);
contact: Jan Huwald // Impressum