summaryrefslogtreecommitdiff
path: root/test-code/csgtexttest.cc
diff options
context:
space:
mode:
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