summaryrefslogtreecommitdiff
path: root/test-code/cgaltest.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2010-04-12 04:57:02 (GMT)
committerMarius Kintel <marius@kintel.net>2010-10-31 00:42:35 (GMT)
commit1caf80e561819832092e67bd15ceba5d6f9a02f8 (patch)
treeac144b7659840529155c762794508bea018b2be3 /test-code/cgaltest.cc
parente8e213b3c9ce0580045ea6e7e86b00ab41d4c58b (diff)
Added CSGTextCache for experimenting with cache-tree organization
Diffstat (limited to 'test-code/cgaltest.cc')
-rw-r--r--test-code/cgaltest.cc35
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);
contact: Jan Huwald // Impressum