diff options
author | Marius Kintel <marius@kintel.net> | 2010-04-12 04:57:02 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2010-10-31 00:42:35 (GMT) |
commit | 1caf80e561819832092e67bd15ceba5d6f9a02f8 (patch) | |
tree | ac144b7659840529155c762794508bea018b2be3 /test-code/cgaltest.cc | |
parent | e8e213b3c9ce0580045ea6e7e86b00ab41d4c58b (diff) |
Added CSGTextCache for experimenting with cache-tree organization
Diffstat (limited to 'test-code/cgaltest.cc')
-rw-r--r-- | test-code/cgaltest.cc | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/test-code/cgaltest.cc b/test-code/cgaltest.cc index 147e390..ed646ce 100644 --- a/test-code/cgaltest.cc +++ b/test-code/cgaltest.cc @@ -23,6 +23,7 @@ * */ +#include "myqhash.h" #include "openscad.h" #include "node.h" #include "module.h" @@ -30,10 +31,9 @@ #include "value.h" #include "export.h" #include "builtin.h" -#include "nodedumper.h" +#include "Tree.h" #include "CGALRenderer.h" #include "PolySetCGALRenderer.h" -#include "Tree.h" #include <QApplication> #include <QFile> @@ -49,6 +49,8 @@ QString currentdir; QString examplesdir; QString librarydir; +using std::string; + void handle_dep(QString filename) { if (filename.startsWith("/")) @@ -63,20 +65,14 @@ void handle_dep(QString filename) } // FIXME: enforce some maximum cache size (old version had 100K vertices as limit) -QHash<string, CGAL_Nef_polyhedron> cache; +QHash<std::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); + assert(tree.root()); + + CGALRenderer renderer(cache, tree); + Traverser render(renderer, *tree.root(), Traverser::PRE_AND_POSTFIX); render.execute(); } @@ -170,16 +166,13 @@ int main(int argc, char **argv) cgalTree(tree); - std::cout << cache[tree.cache()[*root_node]] << "\n"; + std::cout << tree.getString(*root_node) << "\n"; - CGALRenderer cgalrenderer(dumper.getCache()); - PolySetCGALRenderer psrenderer(cgalrenderer); - PolySetRenderer::setRenderer(&psrenderer); +// CGALRenderer cgalrenderer(dumper.getCache()); +// PolySetCGALRenderer psrenderer(cgalrenderer); +// PolySetRenderer::setRenderer(&psrenderer); -// This is done in renderCGALMesh() for convenience, but can be overridden here -// Traverser render(cgalrenderer, *root_node, Traverser::PRE_AND_POSTFIX); -// render.execute(); - CGAL_Nef_polyhedron N = cgalrenderer.renderCGALMesh(*root_node); + CGAL_Nef_polyhedron N = cache[tree.getString(*root_node)]; QDir::setCurrent(original_path.absolutePath()); export_stl(&N, fileInfo.baseName() + ".stl", NULL); |