summaryrefslogtreecommitdiff
path: root/test-code/csgtexttest.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2010-04-12 00:16:36 (GMT)
committerMarius Kintel <marius@kintel.net>2010-10-31 00:42:35 (GMT)
commite8e213b3c9ce0580045ea6e7e86b00ab41d4c58b (patch)
treecb32e67b6334aa1f1dc62aa4a0686a22782e7f77 /test-code/csgtexttest.cc
parent53a9953b7dc4ab4a366046c91529b32fb6652551 (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/csgtexttest.cc')
-rw-r--r--test-code/csgtexttest.cc30
1 files changed, 19 insertions, 11 deletions
diff --git a/test-code/csgtexttest.cc b/test-code/csgtexttest.cc
index b07bc92..f464900 100644
--- a/test-code/csgtexttest.cc
+++ b/test-code/csgtexttest.cc
@@ -23,6 +23,7 @@
*
*/
+#include "CSGTextRenderer.h"
#include "openscad.h"
#include "node.h"
#include "module.h"
@@ -30,14 +31,14 @@
#include "value.h"
#include "export.h"
#include "builtin.h"
-#include "nodedumper.h"
-#include "CSGTextRenderer.h"
+#include "Tree.h"
#include <QApplication>
#include <QFile>
#include <QDir>
#include <QSet>
#include <getopt.h>
+#include <assert.h>
#include <iostream>
QString commandline_commands;
@@ -60,6 +61,17 @@ void handle_dep(QString filename)
}
}
+
+QHash<string, string> csgcache;
+void csgTree(Tree &tree)
+{
+ assert(tree.root());
+
+ CSGTextRenderer renderer(csgcache, tree);
+ Traverser render(renderer, *tree.root(), Traverser::PRE_AND_POSTFIX);
+ render.execute();
+}
+
int main(int argc, char **argv)
{
if (argc != 2) {
@@ -145,17 +157,13 @@ int main(int argc, char **argv)
AbstractNode::resetIndexCounter();
root_node = root_module->evaluate(&root_ctx, &root_inst);
+ Tree tree;
+ tree.setRoot(root_node);
- NodeDumper dumper;
- Traverser trav(dumper, *root_node, Traverser::PRE_AND_POSTFIX);
- trav.execute();
- std::string dumpstdstr = dumper.getDump() + "\n";
- std::cout << dumpstdstr << "\n";
+ csgTree(tree);
+ std::cout << tree.getString(*root_node) << "\n";
- CSGTextRenderer renderer(dumper.getCache());
- Traverser render(renderer, *root_node, Traverser::PRE_AND_POSTFIX);
- render.execute();
- std::cout << renderer.getCSGString() << "\n";
+ std::cout << csgcache[tree.getString(*root_node)] << "\n";
destroy_builtin_functions();
destroy_builtin_modules();
contact: Jan Huwald // Impressum